Я использую Laravel 6.x для клиентского проекта, в котором я создал API в Artisan Command для синхронизации данных.
Теперь клиент хочет, чтобы конфигурация была незаметной, вне основного исходного кода и без каких-либо резервных значений, насколько это возможно. Это означает, что я должен определить конфигурации в файле .env
и использовать метод env()
без каких-либо резервных значений по умолчанию.
Это должно быть возможно внутри файлов командных классов Laravel Artisan, но это не работает должным образом, когда я использую метод env
в коде, как показано ниже:
[siteroot] \. env:
APP_ENV=local
[siteeroot] \ app \ Console \ Commands \ SyncSomeData.php:
use Illuminate\Console\Command;
class SyncSomeData extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'sync:some-data';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
exit(env('APP_ENV','staging1'));
}
}
Это всегда печатает staging1
в консоли, и если я использую это вместо данного метода env
, он ничего не печатает:
exit(env('APP_ENV'));
Насколько я знаю и могу доверять, что Laravel наиболее безопасен, должен быть способ, чтобы метод env
работал без резервного значения в командном файле, может ли кто-нибудь помочь в этом?
config
вместоenv
? Потому что другие ссылки SO недостаточно хороши, чтобы дать хорошее руководство по этой конкретной теме ... Цените это ... - person Vicky Dev   schedule 09.07.2020env
переменные, такие какAPI_SOAP_URL
, как мне их распечатать. Я только что пробовал использоватьconfig('api.soap.url')
, но напечатано пустое ... Так что, пожалуйста, включите это в свой ответ, спасибо ... Сейчас я очищаю кеш каждый раз, когда меняю файл.env
, так что в основном это не проблема ... - person Vicky Dev   schedule 09.07.2020config:cache
, и он синхронизируется с файлом.env
. Знаете что, он вообще не кэширует какие-либо объявленные пользователем переменные конфигурации, такие какAPI_SOAP_URL
. Я видел файл кеша, и в нем перечислены толькоAPP.
переменные конфигурации, поэтому главный вопрос: как мне поручить / заставить Laravel кэшировать любую настраиваемую переменную / значение, указанную в.env
вместе с запускомphp artisan config:cache
, а также, если необходимо,php artisan config:clear
? - person Vicky Dev   schedule 09.07.2020