Bonjour,

J'aimerais faire un systéme de variable global comme "Silex" et d'autres framework le propose.
Par exemple je créer une variable qui va stocker un nombre, et j'aimerais pouvoir utiliser ce nombre dans mon controller ou meme ailleurs.
A quoi cella peux-il bien servir me direz vous ? Et bien les clients ne sont pas aussi fûter que nous les developper donc j'aurai aimé faire un fichier config.php, stockant par exemple les informations à la BDD, ou encore d'autres informations et pouvoir les utilisé par la suite.

Petite exemple avec Silex:

Declaration:

$app['db.host'] = "localhost";

Utilisation:

public function monAction(Environment $twig)
{
    return new Response($twig->render('view/home.html.twig', array("host" => $app['db.host'])));
}

Cordialement, et merci de votre aide !

5 réponses


xligh
Réponse acceptée

Vous pouvez utiliser le fichier services.yml pour définir les paramettres
http://symfony.com/doc/current/best_practices/configuration.html

ou bien le .env avec le component Dotenv
https://symfony.com/doc/current/components/dotenv.html

Vous voulez mettre en place des variables globaux accessible depuis tes vue ?

BlueCake
Auteur
Réponse acceptée

Alors pour répondre il faut creer des variable global dans twig, et les appeler dans notre base.html.twig

BlueCake
Auteur

Merci beaucoup @xligh !

BlueCake
Auteur

Heu si petite question comment passer des variable dotEnv dans mon base.html.twig vu qu'il n'y a pas de controller j'ai chercher dans la doc et rien trouvé ! Merci

Bonjour @BlueCake,

Tu peux appeler ton variable
https://symfony.com/blog/new-in-symfony-3-4-advanced-environment-variables

parameters:
    db.host: '%env(DATABASE_HOST)%'

et dans le config/packages/twig.yaml
https://symfony.com/doc/current/templating/global_variables.html

twig:
    # ...
    globals:
        db_host: %db.host%