fbeen/settingsbundle

此包在Symfony框架之上增加了数据库集成之外的设置功能。它允许您设计可以被所有者或管理员通过网站维护的应用程序设置。

安装: 12

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2018-01-30 20:06 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:43:29 UTC


README

此包在Symfony框架之上增加了数据库集成之外的全局设置功能。它允许您设计可以被所有者或管理员通过网站维护的应用程序设置。

特性包括

  • 无限设置字段
  • Bootstrap就绪的页面和表单
  • 当您在表单中添加自己为ROLE_SUPER_ADMIN角色时,您可以用开发者身份创建和删除设置
  • 具有ROLE_ADMINISTRATOR角色的用户可以更改设置字段的值
  • 应用程序可以更改设置字段的值
  • 五种表单类型:文本、电子邮件、布尔值、整数和小数。
  • 表单验证取决于表单类型。

安装

使用composer

  1. "fbeen/settingsbundle": "dev-master" 添加到您的composer.json项目文件的require部分。
    "require": {
        ...
        "fbeen/settingsbundle": "dev-master"
    },
  1. 运行composer update

    $ composer update

  2. 将包添加到app/AppKernel.php

        $bundles = array(
            ...
            new Fbeen\SettingsBundle\FbeenSettingsBundle(),
        );
  1. 将路由添加到app/config/routing.yml
fbeen_settings:
    resource: "@FbeenSettingsBundle/Resources/config/routing.yml"
    prefix:   /admin
  1. 将路由添加到app/config/routing_dev.yml
_fbeen_settings:
    resource: "@FbeenSettingsBundle/Resources/config/routing_dev.yml"
    prefix:   /admin
  1. app/config/config.yml中启用翻译
parameters:
    locale: en

framework:
    translator:      { fallbacks: ["%locale%"] }
  1. 配置app/config/security.yml以确保存在ROLE_ADMIN和ROLE_SUPER_ADMIN
security:

    # ...
                
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
  1. 更新您的数据库模式
$ bin/console doctrine:schema:update --force
  1. 使用具有ROLE_SUPER_ADMIN角色的账户登录。

  2. 转到路由.../app_dev.php/admin/settings/developer开始添加设置。表单非常易于使用,无需进一步解释

  3. 转到路由.../app_dev.php/admin/settings/edit查看管理员如何更改值

用法

想象您创建了一个具有标识符shipping_price的设置,并且您想在控制器中使用此设置

$value = $this->get('fbeen_settings.settings_helper')->getSetting('shipping_price');

或者您想在Twig中渲染设置

{{ setting('shipping_price') }}

更新设置

$this->get('fbeen_settings.settings_helper')->updateSetting('shipping_price', $price);

或者您可能想将设置用作页面查看计数器

$helper = $this->get('fbeen_settings.settings_helper');
$counter = $helper->getSetting('page_views');
$helper->updateSetting('page_views', ++$counter);