justbetter/laravel-akeneo

Akeneo 的 Laravel 封装

0.0.3 2022-05-20 08:46 UTC

This package is auto-updated.

Last update: 2024-09-11 15:09:47 UTC


README

⚠️ 已弃用:此包已弃用,我们已经开发了一个新的客户端

Akeneo 的 Laravel 封装

Latest Version on Packagist GitHub Code Quality Action Status GitHub Code Style Action Status Total Downloads

此包允许您以更类似 Laravel 的方式与 Akeneo 一起工作。

要求

  • PHP 8 或更高版本
  • Akeneo 安装

安装

您可以通过 composer 安装此包

composer require justbetter/laravel-akeneo

配置

将以下值添加到您的 .env 文件中

AKENEO_URL=
AKENEO_CLIENT_ID=
AKENEO_SECRET=
AKENEO_USERNAME=
AKENEO_PASSWORD=

您可以选择通过以下方式发布配置文件

php artisan vendor:publish --provider="JustBetter\Akeneo\AkeneoServiceProvider" --tag="akeneo-config"

这是已发布配置文件的内容

return [
    'models' => [
        'product_model' => \JustBetter\Akeneo\Models\ProductModel::class,
        'product'       => \JustBetter\Akeneo\Models\Product::class,
        'attribute'     => \JustBetter\Akeneo\Models\Attribute::class,
        'channel'       => \JustBetter\Akeneo\Models\Channel::class,

        'attribute_types' => [
            'Simpleselect' => \JustBetter\Akeneo\Models\Attribute\Simpleselect::class,
            'Multiselect'  => \JustBetter\Akeneo\Models\Attribute\Multiselect::class,
            'Text'         => \JustBetter\Akeneo\Models\Attribute\Text::class,
            'Date'         => \JustBetter\Akeneo\Models\Attribute\Date::class,
        ],
    ],

    'connections' => [
        'default' => [
            'url'       => env('AKENEO_URL'),
            'client_id' => env('AKENEO_CLIENT_ID'),
            'secret'    => env('AKENEO_SECRET'),
            'username'  => env('AKENEO_USERNAME'),
            'password'  => env('AKENEO_PASSWORD'),
        ],
    ],

    'cache_ttl' => 30,
];

使用方法

支持的功能

  • 多个 Akeneo 连接(进行中)
  • 自定义模型类
  • 产品模型
    • 获取所有
    • 懒加载获取所有
    • 按代码查找
    • 保存
  • 产品
    • 获取所有
    • 懒加载获取所有
    • 按代码查找
    • 保存

如何使用

所有

从 Akeneo 获取所有资源

$models = ProductModel::all();

默认情况下,这将返回一个 Collection,但可以通过覆盖您自定义模型上的 newCollection 方法进行修改。

您还可以通过设置配置中的 TTL 来缓存 all() 方法

懒加载

从 Akeneo 懒加载获取所有资源将返回一个 LazyCollection

$models = ProductModel::lazy();

有关方法的完整列表,请参阅 Laravel 文档中的 懒加载集合

查找

通过代码查找资源

$product = Product::find('code-123');

属性

在模型上调用属性代码将返回该属性类型的类。这些在配置中定义,并且可以轻松扩展。

$product->product_name->setValue(
    data: 'test product 3',
    locale: null, # default
    scope: null # default
);
选项

可以构造并传递与它们兼容的选项给属性

$option = \JustBetter\Akeneo\DataObjects\Option::make(
    data: 'tag 1',
    locale: null,
    scope: null  
)

$product->tags->addOption($option);

$product->tags->removeOption($option);

$product->tags->syncOptions([$option1, $option2]);

保存

保存更改后的模型并将其持久化到 akeneo

$product = Product::find('code-123');

$product->product_name->setValue(
    data: 'test product 3',
    locale: null, # default
    scope: null # default
);

$product->save();

测试

工作流程需要测试包的 99%

make test
# -- OR --
make coverage

请确保还运行静态分析检查

make analysis

或结合这两个要求

make all

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

请参阅 CONTRIBUTING 了解详情。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可协议

MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件