klev / yandex-market-yml

Yandex市场创建yml

dev-master 2017-08-26 20:05 UTC

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 的属性匹配

您可以从这些类继承并添加属性。所有属性都应该有 gettersetter

您也可以添加处理属性的方法。

例如,如果您有其他格式的输入数据。为此,您需要在您的类中创建以 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);