Variable Global sous Symfony 4

Ce sujet est résolu
146305
,

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éponse

26075
,

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 ?

146305
,

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

146305
, Il a répondu à ma question !

Merci beaucoup @xligh !

146305
, Il a répondu à ma question !

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

26075
, Il a répondu à ma question !

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%