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.
统计信息
- 总下载量: 8.74k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-03-13