Symfony e file .env

8 views
Skip to first unread message

Matteo

unread,
May 17, 2017, 6:48:08 AM5/17/17
to Gruppo symfony
Ciao a tutti, sto facendo refactoring di un'applicazione Laravel che usa un file .env
Dato che questo file deve essere mantenuto ho aggiunto il componente Symfony\Component\Dotenv\Dotenv con il quale carico il file.

nell'ambiente di test e dev tutto ok il problema si verifica in ambiente di produzione.

Per caricare il file .env al boot, in AppKernel, nel metodo registerContainerConfiguration ho fatto questo:

public function registerContainerConfiguration(LoaderInterface $loader)
{
    $loader->load($this->getRootDir() . '/config/config_' . $this->getEnvironment() . '.yml');

    (new Dotenv())->load(__DIR__.'/../.env');
}

il problema è che nell'ambientwe prod, in registerContainerConfiguration entra solo alla prima chiamata, dopo di che viene creata la cache e non ci entra più, non caricandomi più il file env.

So che nella doc dice chiaramente:
Symfony Dotenv should only be used in development/testing/staging environments. For production environments, use "real" environment variables.

Ma non c'è modo di usarlo anche in prod?

Grazie

Matteo

unread,
May 17, 2017, 6:57:26 AM5/17/17
to Gruppo symfony
In realtà anche nei test non viene caricato,
Ho dovuto creare una classe BAseTest che mi estende (ad esempio) WebTestCase in cui nel metodo setUp() faccio:

    public function setUp()
    {
        parent::setUp();

        (new Dotenv())->load(__DIR__ . '/../.env');

        self::bootKernel();

....

Mi piacerebbe caricarlo a prescindere sempre
Reply all
Reply to author
Forward
0 new messages