hexanet/settings-bundle
最新稳定版本:v2.0.0
Composer 安装命令:
composer require hexanet/settings-bundle
包简介
settings system
README 文档
README
Settings system.
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require hexanet/settings-bundle
Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require hexanet/settings-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Hexanet\SettingsBundle\HexanetSettingsBundle(), ); // ... } // ... }
Database
You have to create the table in the database, to do this we generate a migration:
bin/console doctrine:migrations:diff --filter-expression="/setting$/"
bin/console doctrine:migrations:migrate
Usage
Define the settings
A schema allows you to initialize the settings by giving them a default value.
First you need to create a class that extends from the SchemaInterface interface:
<?php namespace App\Settings\AppSchema; use Hexanet\SettingsBundle\Schema\SettingsBuilder; use Hexanet\SettingsBundle\Schema\SchemaInterface; class AppSchema implements SchemaInterface { public function build(SettingsBuilder $settingsBuilder): void { $settingsBuilder->addSetting('itemsPerPage', 25); } }
Then declare it as service with the hexanet.settings_schema tag :
App\Settings\AppSchema: tags: [hexanet.settings_schema]
The bundle provide autoconfiguration for class that implement
SchemaInterface.
After that we can use the php bin/console hexanet:settings:setup command to generate all the settings, if a setting already exists the command ignores it.
Examples
public function indexAction(SettinsManagerInterface $settingsManager) { // set and get $settingsManager->set('tva', 19.6); $settingsManager->get('tva'); // check if settign exists $settingsManager->has('tva'); // get all settings $settingsManager->all(); // retrieve a non-existent setting $settingsManager->get('not here'); // SettingNotFoundException is throw }
Production
For production it's possible to activate the cache by modifying the config of the bundle:
// config/packages/prod/hexanet_settings.yaml hexanet_settings: cache: true
The Symfony cache app is used (@cache.app)
Credits
Developed by Hexanet.
License
SettingsBundle is licensed under the MIT license.
hexanet/settings-bundle 适用场景与选型建议
hexanet/settings-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8.91k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 03 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 hexanet/settings-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hexanet/settings-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 8.91k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-03-13