itk-dev/config-bundle

A Symfony bundle to handle app config

3.0.0 2019-01-10 16:08 UTC

This package is not auto-updated.

Last update: 2022-01-11 21:33:00 UTC


README

Installation

composer require itk-dev/settings-bundle "^1.0"

Enable the bundle in app/AppKernel.php:

public function registerBundles() {
	$bundles = [
		// …
        // Start of required dependencies of ItkDevConfigBundle
        new Craue\ConfigBundle\CraueConfigBundle(),
        new EasyCorp\Bundle\EasyAdminBundle\EasyAdminBundle(),
        // End of required dependencies for ItkDevConfigBundle
        new ItkDev\ConfigBundle\ItkDevConfigBundle(),
	];
    // …
}

In app/config/config.yml:

craue_config:
    entity_name: ItkDev\ConfigBundle\Entity\Setting

# Optionally, enable caching for craue/config-bundle (cf. https://github.com/craue/CraueConfigBundle/#enable-caching-optional)
services:
  craue_config_cache_provider:
    class: Symfony\Component\Cache\Adapter\FilesystemAdapter
    public: false
    arguments:
      - 'craue_config'
      - 0
      - '%kernel.cache_dir%'

Depending on your doctrine setup, you may have to add ItkDevConfigBundle to your doctrine mappings, e.g.:

doctrine:
    orm:
        entity_managers:
            default:
                mappings:
                    
                    ItkDevConfigBundle: ~

If using Doctrine migrations, you should filter out the craue_config_setting table from migrations:

doctrine:
    dbal:
        [...]
        schema_filter: ~^(?!craue_config_setting)~

Usage

Create settings in the database (preferably using a migration):

insert into
    itkdev_setting(section, name, type, form_type, value_string)
values
    ('cms', 'about_header', 'string', 'text', 'About this application');

insert into
    itkdev_setting(section, name, type, form_type, value_text)
values
    ('cms', 'about, 'text', 'text', 'This application handles configuration on the database.);

Easy admin:

See Resources/config/easy_admin.yml for an example Easy Admin configuration for Settings.

Twig:

See https://github.com/craue/CraueConfigBundle/#usage-in-twig-templates

Rich text

To use the form type ckeditor, you have to enable IvoryCKEditorBundle (which is already installed).

Follow steps 2–4 on https://symfony.com/doc/master/bundles/EasyAdminBundle/integration/ivoryckeditorbundle.html#installing-the-rich-text-editor to enable the bundle.