monsieurbiz / sylius-settings-plugin
为您的Sylius添加设置面板。
Requires
- php: ^8.0
- sylius/sylius: >=1.11 <1.14
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- phpmd/phpmd: ^2.15
- phpspec/phpspec: ^7.0
- phpstan/phpstan: ^1.8.4
- phpstan/phpstan-doctrine: ^1.3.2
- phpstan/phpstan-webmozart-assert: ^1.1
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-08-30 08:06:31 UTC
README
Sylius设置
此插件为您提供了在您喜欢的电子商务平台Sylius中拥有插件化设置的权限。
兼容性
安装
如果您想使用我们的食谱,可以通过运行以下命令来配置您的composer.json:
composer config --no-plugins --json extra.symfony.endpoint '["https://api.github.com/repos/monsieurbiz/symfony-recipes/contents/index.json?ref=flex/master","flex://defaults"]'
composer require monsieurbiz/sylius-settings-plugin
⚠️ 警告:对于Doctrine DBAL < 3.0
如果您使用的是Doctrine DBAL < 3.0,则必须忽略迁移Version20240710130300.php
。
console doctrine:migrations:version 'MonsieurBiz\SyliusSettingsPlugin\Migrations\Version20240710130300' --add
如果您不使用flex进行安装,请按照以下额外步骤操作:
将您的config/bundles.php
文件更改为添加以下行以声明插件:
<?php return [ //.. MonsieurBiz\SyliusSettingsPlugin\MonsieurBizSyliusSettingsPlugin::class => ['all' => true], ];
然后在config/packages/monsieurbiz_settings_plugin.yaml
中创建配置文件
imports: - { resource: "@MonsieurBizSyliusSettingsPlugin/Resources/config/config.yaml" }
最后在config/routes/monsieurbiz_settings_plugin.yaml
中导入路由
monsieurbiz_sylius_settings_admin: resource: "@MonsieurBizSyliusSettingsPlugin/Resources/config/routes/admin.yaml" prefix: /%sylius_admin.path_name%
更新您的数据库
bin/console doctrine:migration:migrate
继续到 "工作原理",为您的商店添加第一个设置。
注意:如果您让composer运行脚本,在安装过程中可能会遇到错误。
复制配置文件并重新运行composer require
,它应该会工作。这是由于DI中使用了其他插件。然后必须运行任何控制台命令。
工作原理
作为一个良好的开始,您可以查看以下内容:
然后您可以使用twig函数setting()
来获取您的设置。
请查看此示例。
您也可以使用DI来获取您的设置,例如在测试应用程序的设置app.default
中。
$ ./bin/console debug:container | grep app.settings.default MonsieurBiz\SyliusSettingsPlugin\Settings\Settings $defaultSettings alias for "app.settings.default" MonsieurBiz\SyliusSettingsPlugin\Settings\SettingsInterface $defaultSettings alias for "app.settings.default" app.settings.default MonsieurBiz\SyliusSettingsPlugin\Settings\Settings
注意:只有当您至少有一个设置时,“设置”菜单才会显示。
获取设置
use MonsieurBiz\SyliusSettingsPlugin\Provider\SettingsProviderInterface; //... private SettingsProviderInterface $settingsProvider; public function __construct(SettingsProviderInterface $settingsProvider) { $this->settingsProvider = $settingsProvider; } public function myAwesomeMethod() { return $this->settingsProvider->getSettingValue('app.default', 'demo_message') }
使用固定数据
我们已经实现了一个固定数据加载器,以帮助您在需要为测试或项目(按渠道、按区域等)具有不同设置的情况下创建设置。
您需要创建一个yaml文件来存储您的固定数据,如Sylius文档中所述。
您可以在源代码中的sylius_fixtures
部分找到我们的示例配置文件。
在开发中,您还可以运行本地套件的测试固定数据:make sylius.fixtures.local
。
默认情况下,固定数据将替换设置的值,如果该值已存在。如果您想在运行此固定数据时保留数据库中的值,您可以为要保留的每个元素使用ignore_if_exists: true
标志。
扩展现有的设置表单
如果您想向现有的设置表单添加字段(例如在另一个插件中),您可以查看测试应用程序中的示例。
使用CLI
您可以使用CLI命令直接从控制台设置设置值:$ ./bin/console monsieurbiz:settings:set {别名} {路径} {值} --channel="FASHION_WEB" --locale="en_US" --type="text"
示例
$ ./bin/console monsieurbiz:settings:set app.default demo_message 'fashion message' --channel="FASHION_WEB" --locale="en_US" $ ./bin/console monsieurbiz:settings:set app.default demo_json '{"foo":"baz"}' --channel="FASHION_WEB" --locale="en_US" --type="json" $ ./bin/console monsieurbiz:settings:set app.default demo_datetime '2023-07-24 01:02:03' --channel="FASHION_WEB" --locale="en_US" --type="datetime" $ ./bin/console monsieurbiz:settings:set app.default enabled 0
如果您想设置全局范围内的值,可以省略channel和locale选项。如果给定范围内已存在值,则可以省略type,因为它将与现有值相同,除非您想更改类型。对于新值,您需要指定类型。
⚠️ 指定类型时,请确保您知道自己在做什么,因为它应与字段的表单类型一致。
使用缓存
设置默认使用cache.adapter.array
适配器。如果您想提高性能,可以使用cache.adapter.apcu
、cache.adapter.redis
或任何其他适配器。
您需要将以下行添加到您的配置文件中
monsieurbiz_sylius_settings: cache_adapter: cache.adapter.apcu
贡献
您可以在DEVELOPMENT.md
文件中找到运行插件的方法,无需费力:DEVELOPMENT.md。
然后,如果您想,可以开启一个问题或拉取请求!😘
谢谢!
许可协议
此插件完全免费,并按照MIT许可协议发布。