trinity / settings
Trinity 设置包
v1.2.9
2017-08-02 10:15 UTC
Requires
- php: >=7.1
- doctrine/orm: ~2.5
- symfony/config: ~2.8|~3.0
- symfony/dependency-injection: ~2.8|~3.0
- symfony/http-kernel: ~2.8|~3.0
- twig/extensions: ~1.3
- twig/twig: ~1.20|~2.0
Requires (Dev)
- doctrine/doctrine-bundle: ~1.6
- fzaninotto/faker: ~1.5
- mockery/mockery: ~0.9
- phpstan/phpstan: ~0.7
- phpunit/phpunit: ~6
- satooshi/php-coveralls: ~1
- symfony/browser-kit: ~2.8|~3.0
- symfony/form: ~3
- symfony/twig-bundle: ~2.8|~3.0
- symfony/validator: ~3
- symfony/var-dumper: ~3.0
README
#Trinity Settings
使用 Doctrine2 ORM 将 Symfony 参数存储到数据库中,并从 Symfony 控制器和 twig 中轻松访问的包。
##安装
1. 将 trinity/settings 添加到您的 composer.json 文件中
//composer.json
{
//..
"require": {
//..
"trinity/settings": "~1.0",
//..
}
//..
}
2. 在内核中启用 trinity/settings
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new \Trinity\Bundle\SettingsBundle\SettingsBundle(),
// ...
);
}
##用法
###设置默认变量
在某些 config.yml 文件中
trinity_settings:
settings:
null_value: ~
key: "value"
group.key: "value"
注意:点号用于定义组。
在控制器中使用
//Global Setting
$this->get('trinity.settings')->set('parameter', $parameter);
$this->get('trinity.settings')->get('parameter');
$this->get('trinity.settings')->has('parameter');
//User Setting
$this->get('trinity.settings')->set('parameter', $parameter, $owner);
$this->get('trinity.settings')->get('parameter', $owner);
$this->get('trinity.settings')->has('parameter', $owner);
$this->get('trinity.settings')->has('parameter', $user->getId());
//Setting for some setting group ($owner can be null)
$this->get('trinity.settings')->set('parameter', $parameter, $owner, $group);
$this->get('trinity.settings')->get('parameter', $owner, $group);
$this->get('trinity.settings')->has('parameter', $owner, $group);
###在 Twig 中使用
{{ get_setting('some_setting') }}
{{ get_setting('some_user_setting', app.user.id) }}
{{ get_setting('some_group_setting', null, 'MySettingGroup') }}
{{ get_setting('some_user_group_setting', app.user.id, 'MySettingGroup') }}
{{ has_setting('some_setting') }}
{{ has_setting('some_user_setting', app.user.id) }}
{{ has_setting('some_group_setting', null, 'MySettingGroup') }}
{{ has_setting('some_user_group_setting', app.user.id, 'MySettingGroup') }}
###运行测试
php "bin/phpunit.phar"