Bonjour,
Je viens vers vous pour une question, j'ai une application qui peut se dupliquer sur plusieurs clients.
Je souhaite mettre des variables globales comme le Nom du site, L'adresse de l'entreprise sur chaque installation.
Je ne sais pas si je passe pour un système avec la DB genre une table app_info et dedans une seule entry en ID #1 et plusieurs column app_name / app_address / app_phone
Et après dans Twig je charge les informations depuis le app. mais ça va faire une appel en DB à chaque affichage de page donc j'aime pas.
Ou il y a une technique pour modifier le .env.local depuis un Controller avec des restrictions en Admin.
Je suis assez perdu pour faire quelques choses de propre.
Merci de votre aide.
J'ai trouvé un système en créant une Class PHP avec en __construct la fonction de chercher les informations en DB et les inscires dans une variable private
Maintenant je cherche la class comme Exemple beforeRender() ou la hook ou mettre mon chargement de cette class pour pouvoir bénéficier d'un seul appel en DB lors de la connexion par exemple et pouvoir la récupérer partout
Je viens de trouver le service.yaml dans lequel je peux définir une variable global
parameters:
locale: 'fr'
app_name: 'ICI RECUPERER L'INFORMATION DEPUIS UNE BASE DE DONNÉE OU UNE INFORMATION MODIFIABLE PAR L'ADMIN'
J'ai vu que l'on peut injecter le %env mais l'admin ne peux pas modifier les informations sur .env dynamiquement.
Donc je reste bloqué je suis sur ce code fait rapidement
<?php
namespace App\Controller;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class InitService
{
private $params;
public function __construct(ParameterBagInterface $params)
{
$this->params = $params;
}
public function someMethod( AppConfigRepository $acr )
{
$app = $apr->findOneById( 1 ):
$params->set('app_name', $app->getAppName());
}
}
Mais ou je peux le charger dans Symfony lors de la connexion, à chaque requête ?
Ou sinon dans mon services.yaml, charger une constante depuis une entity, mais comment charger la constante à chaque fois :) J'ai des pistes mais perdu
app.name: !php/const App\Entity\AppConfig::APP_NAME