Я пишу веб-сервис с использованием Lumen и мне нужно хранить некоторые константы, в частности, значения ошибок, а также другие параметры конфигурации. Где это было бы наиболее целесообразным, чтобы положить их?
Создайте файл constants.php внутри config / и поместите ваши настройки в массив:
<?php
return [
'CONTACT_NAME' => 'Admin'
];
Тогда в ваших контроллерах вы можете получить значение с помощью Config Facade:
echo Config::get('constants.CONTACT_NAME');
Похоже, вы говорите о двух разных вещах здесь. Для значений конфигурации единственным правильным местоположением является .env
файл (как уже упоминалось в комментариях).
https://lumen.laravel.com/docs/5.5/configuration#environment-configuration
Это где вы положили все специфические для окружающей среды значения конфигурации (например, ключи API, режим отладки и т. д. и т. д.). Если у вас есть сильное желание, вы можете поместить env-переменные в константы во время процесса начальной загрузки, например:
define('APP_DEBUG',env('APP_DEBUG', true));
Для определения простых констант должно быть несколько возможностей.
Вы можете сделать это либо во время процесса начальной загрузки или определить класс (например, модель):
class Error
{
const FATAL = 1;
const WARNING = 2;
}
use Error;
....
Error::FATAL;
...
Вот как я это сделал.
Я сделал файл const.php в папке начальной загрузки, где я определил некоторые коды ошибок.
<?php
define('VALIDATION_EXCEPTION',422);
Я включил файл const.php в app.php, используя require_once.
<?php
require_once __DIR__.'./const.php';
Теперь я могу позвонить VALIDATION_EXCEPTION из любого места. например.
$router->get('/test',function(){
return VALIDATION_EXCEPTION;
});
Это оно!