laravel — Использование функций PHP в файле .env (dotenv)

Я пытаюсь использовать функцию PHP в файле .env, который rand() в моем случае.

Вот что я пытаюсь достичь в .env;

PROTOCOL="http"DOMAIN="example.com"URI="www.{$DOMAIN}"RAND=rand(1,5)
CDN_URI="cdn{$RAND}.{$DOMAIN}"CDN_URL="{$PROTOCOL}://{$CDN_URI}"

Как видите, я пытаюсь сгенерировать случайные целые числа от 1 до 5, которые представляют поддомен CDN, чтобы в запросе я получил http://cdn2.example.com и в другом http://cdn4.example.com и так далее.

Я думаю, что использование PHP в .env не поддерживается изначально, но есть ли способ / обходной путь?

Постскриптум Я использую Laravel 5.

2

Решение

.env Файл, как обычный текст, не имеет поддержки функций PHP. Этот файл был разработан как запасной вариант для переменных среды (из ОС), поэтому вы не можете использовать PHP-код для этого. Вы можете использовать глобальную переменную, чтобы сделать нечто подобное, если вам действительно нужно глобальное случайное число, вместо этого:

global $rand;
$rand = rand(1,5);

Тогда, когда вам нужно использовать свой номер вне основного контекста (как внутри функций), вам нужно объявить global $rand:

function someFunction ()
{
global $rand;
doSomethingWithRand($rand);
}

Но на мой взгляд, это уродливый подход. В зависимости от того, чего вы пытаетесь достичь, есть лучший способ сделать это.

Обновить

Так как вы используете Laravel. Вы можете добавить звонок в rand() функция в некоторых из ваших файлов конфигурации, под /config/ Дир, как: 'rand' => rand(1,5),, Затем, чтобы получить доступ к вашему случайному числу, вы должны использовать:

// If your config was set inside /config/app.php.
config('app.rand');

// OR

// If your config was set inside /config/services.php, for instance.
config('services.rand');

Ссылка: http://laravel.com/docs/5.1/installation#accessing-configuration-values

2

Другие решения

Вы можете использовать PHP в своем файле окружения, используя синтаксис скважины, подобный этому:

<?php
return array(
'PROTOCOL' => "http",
'DOMAIN' => "example.com",
'URI' => "www.{$DOMAIN}",
'RAND' => rand(1,5),
'CDN_URI' => "cdn{$RAND}.{$DOMAIN}",
'CDN_URL' => "{$PROTOCOL}://{$CDN_URI}",
);
0

По вопросам рекламы [email protected]