smart-core / settings-bundle
SmartCore Settings Bundle.
Installs: 537
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.4.1
- smart-core/core-bundle: dev-master
Suggests
- doctrine/doctrine-cache-bundle: dev-master
This package is auto-updated.
Last update: 2024-10-17 00:13:58 UTC
README
Installation
-
Необходимо прописать в 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(); }
-
Затем в бандле по марштруту /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 # Вызов стататического метода либо сервиса при обновлении параметра.
-
Чтобы файл settings.yml прочитался, необходимо создать DependencyInjection*Extension для того, чтобы бандл получил в системе Extension alias.
TODO
- Конфигурирование приложения Symfony 4, например через /config/packages/smart_settings.yaml
- Решить как поступать в случае если настройка была сохранена в БД, но потом удалена из конфига. Здесь можно либо удалять настройку из бд, либо помечать is_active = false.