klev / yandex-market-yml
Yandex市场创建yml
Requires
- php: ^5.3.3 || ^7.0
This package is not auto-updated.
Last update: 2024-09-29 04:08:37 UTC
README
Yandex市场Yml
用于生成YML文件的库
https://yandex.ru/support/partnermarket/yml/about-yml.html
这个库尚未完全准备就绪,不能使用!没有进行单元测试!理论上,在有正确输入数据的情况下,这个库应该可以正常工作。如果您在代码中看到不良的解决方案,请通过klevunin@gmail.com告知我。
MIT许可证
使用
您可以使用Composer安装这个库 https://composer.php.ac.cn/
"repositories": [ { "type": "git", "url": "git@github.com:klevunin/YandexMarketYml.git" } ], "require-dev": { "klev/yandex-market-yml": "*" },
您应该有一组商品数据。您需要向库提供数据数组 $shop=[]; 这些数据将形成
<shop></shop>。您可能需要遍历您的商品并使用一些条件将它们写入YML。因此,我实现了添加一个<offer/>的功能。您需要传递包含数据的数组 $offer=[];
数组 $shop 应该与类
MarketYandexShop的属性匹配
数组 $offer 应该与类
MarketYandexOffer的属性匹配
您可以从这些类继承并添加属性。所有属性都应该有
getter和setter。
您也可以添加处理属性的方法。
例如,如果您有其他格式的输入数据。为此,您需要在您的类中创建以
getBuilderGet{NameProperty}开始的protected方法。您可以在trait MarketYandexBuilder中看到示例。
use Klev\Yandex\YmlCreate\Yml\YandexYml; require_once __DIR__ . '/../vendor/autoload.php'; $Yml = new YandexYml(); $Yml->setShop(new MarketYandexShopValidation($shop)); foreach ($offers as $offer) { $Yml->setOffers(new MarketYandexOfferValidation($offer)); }
或者不进行数据验证就做同样的事情
$Yml = new YandexYml(); $Yml->setShop(new MarketYandexShop($shop)); foreach ($offers as $offer) { $Yml->setOffers(new MarketYandexOffer($offer)); }
如果验证失败,我会抛出子类
KlevYandexYmlCreateException的异常。这可能在配置阶段很有用。
您可以请求一个方法来查看当前结果
$Yml->getEchoXML();
要保存到文件,需要调用带有文件名的方法
$Yml->saveToFile($file);