Site Loader

Voir sur Github

Présentation

NavalexConfigBundle est un bundle Symfony 3 qui permet d’ajouter un système de configurations avec un id et une valeur stocké en base de données et gérer avec un panel admin. Les configurations peuvent être appelées dans les controller et template twig par la suite.

Aperçus

  • Formulaires de configuration divisés en catégories et fieldset pour modifier les valeurs de vos configurations:
  • Créer des catégories, fieldsets et configurations pour votre site:

Installation

Applications utilisant Symfony Flex

Ouvrez une console, entrez dans la racine de votre projet et exécutez:

$ composer require navalex/config-bundle

Applications sans Symfony Flex

Étape 1: Télécharger le bundle

Ouvrez une console, entrez dans la racine de votre projet et exécutez la commande suivante pour récupérer la dernière version stable:

$ composer require navalex/config-bundle

Cette commande nécessite d’avoir composer installer globalement, expliqué dans le chapitre d’installation de la documentation de Composer. Si vous utilisez Composer localement au projet, exécutez:

$ php composer.phar require navalex/config-bundle

Étape 2: Activer le Bundle

Maintenant, il faut activer le bundle en l’ajouter à la liste des bundles enregistrés dans le fichier app/AppKernel.php de votre projet:

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
            new Navalex\ConfigBundle\NavalexConfigBundle(),
        );

        // ...
    }

    // ...
}

Configuration

Étape 1: Activer les routes

Ouvrez app/config/routing.yml et ajoutez:

# app/config/routing.yml

navalex.config_bundle:
    resource: '@NavalexConfigBundle/Resources/config/routing.yml'

(Optionnel) Etape 2: Protéger l’administration

Si vous souhaitez restreindre l’accès à l’administration à certains rôles, vous pouvez ajoutez une configuration dans ce style dans app/config/security.yml:

# app/config/security.yml

security:

    # ...

    role_hierarchy:
         # ...
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    access_control:
         # ...
        - { path: ^/admin/, role: ROLE_ADMIN }

Step 3: Mettre à jour la base de données

Pour que le bundle fonctionne, vous devez mettre à jour les tables de la base de données en exécutant la commande suivante:

$ php bin/console doctrine:schema:update --force

Etape 4: Mettre à jour le cache

Une fois toutes les étapes faites, vous devez mettre à jour le cache pour activer l’administration:

$ php bin/console cache:clear
ou
$ php bin/console cache:clear --env=prod

Utilisation

Etape 1: Créer des configurations

Aller sur http://[your_website]/admin/config/admin/config/conf

Vous pouvez ici créer des Catégories qui représenterons vos formulaires, puis lui ajouter des fieldset pour les organiser, et enfin créer des configurations. Voici un détails des différents champs pour créer une configuration: – Name: Label du champ dans le formulaire – Code: Code unique pour sélectionner la configuration dans un controller ou une template twig – Category/Field: Choisir la catégorie et le fieldset pour cette configuration – Type: Choisir le type du champ qui sera utiliser dans le formulaire

Par défaut, le bundle donne la valeur « data » a toutes les nouvelles configurations.

Etape 2: Modifier les valeurs de vos configurations

Une fois vos formulaires créés, ils devraient apparaîtres dans la navbar du panel, allez dessus afin d’afficher les configurations, et de modifier leurs valeurs.

Etape 3: Appeler une configuration dans votre projet

Dans un Controller:

$configs = $this->get('navalex_config.config');
$configs->get('<your_configuration_code>');

Dans une template Twig:

{{ getConfig('<your_configuration_code>') }}

Fonctionnalités à venir:

  • Domaine de traduction pour les labels de configuration
  • Types de champs avancés:
    • Tableau (champs texts ajoutés à la volé avec un bouton ajax)
    • Image (avec upload et nommage automatique sur le serveur – configurables)
  • Navapanel complet
  • Organiser les catégories dans le panel
  • Récupérer une configuration avec une API url tel que _http://[your_website]/config/[code] et un retour JSON
  • Ajoutez des types de champs personnalisés dans la configuration du bundle

License

Ce bundle est sous la MIT license.

Post Author: Alexandre Navaro

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *