smart-core/settings-bundle

SmartCore 设置包。

安装: 537

依赖项: 2

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2019-06-16 12:40 UTC

This package is auto-updated.

Last update: 2024-09-16 23:59:10 UTC


README

安装

  1. 需要在 Kernel.php 中指定以下代码

    protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, $class, $baseClass)
    {
        parent::dumpContainer($cache, $container, $class, $baseClass);
    
        /** @var ContainerInterface $container2 */
        $container = require $cache->getPath();
        $container->set('kernel', $this);
        $container->get('settings')->warmupDatabase();
    }
  2. 然后在包的 /Resources/config/settings.yml 文件中按照以下格式描述配置

    # Short format
    option1: value 1
    
    # Full specs
    option2:
        type: TextType # CheckboxType, ChoiceType, CheckboxType etc...
        hidden: true # Скрывать в админке
        value: |
            Многострочный
            Текст.
        title: Если указан заголовок, то будет отображаться вместо имени.
        description: Подробное описание настройки
        validation:
            - NotBlank: ~
            - Range:
                min: 120
                max: 180
        choices:
            ru: Россия
            de: Германия
    
    
        # @todo
        group: main 
        update_callback: \My\Setting\Callback::option2 # Вызов стататического метода либо сервиса при обновлении параметра.
  3. 为了读取 settings.yml 文件,需要创建 DependencyInjection*Extension 以确保包在系统中获得 Extension 别名。

待办事项

  • 配置 Symfony 4 应用程序,例如通过 /config/packages/smart_settings.yaml
  • 解决如果设置已保存到数据库但随后从配置中删除的情况。在这种情况下,可以选择从数据库中删除设置或标记 is_active = false。