我应该在哪里保存我的流明常数?
Where should I keep my constants in lumen?
我正在使用 Lumen 编写 Web 服务,需要存储一些常量,特别是错误值,还有其他配置参数。把这些放在哪里最合适?
在 config/ 中创建文件 constants.php 并将您的设置放入数组中:
<?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键、调试模式等)的地方。如果你有强烈的愿望,你可以在 bootstrap 过程中将环境变量放入常量中,例如:
define('APP_DEBUG',env('APP_DEBUG', true));
对于定义简单常量,应该有多种可能性。
您可以在bootstrap过程中或定义a class(例如模型):
class Error
{
const FATAL = 1;
const WARNING = 2;
}
use Error;
....
Error::FATAL;
...
这是我的做法。
我在 bootstrap 文件夹中创建了一个 const.php 文件,我在其中定义了一些错误代码。
<?php
define('VALIDATION_EXCEPTION',422);
我使用 require_once 在 app.php 中包含了 const.php 文件。
<?php
require_once __DIR__.'./const.php';
现在我可以从任何地方打电话给 VALIDATION_EXCEPTION。例如。
$router->get('/test',function(){
return VALIDATION_EXCEPTION;
});
就是这样!
1.Create App Directory 下的新目录助手。
2.Create 在 Helpers 目录下新建 php 文件 ErrorCodes.php
3.Put 该文件中的常量
<?php define('VALIDATION_ERROR', 'E001'); define('EXCEPTION', 'E002'); define('CUSTOM','E003'); ?>
4.Add 此 ErrorCodes 文件位于 composer.json
的自动加载部分
"files" : [
"app/Helpers/ErrorCodes.php"
]
5.Run artisan 终端中的 composer 自动加载命令
composer dumpautoload
你已经准备好在你的流明应用程序的任何地方使用你的常量。
此解决方案来自 this link
.env 用于每个环境的配置和敏感凭据。
您可以使用此类数据维护配置。 Lumen 没有像 Laravel 那样的默认配置,因此您需要添加所需的配置目录,并告诉 Lumen 使用它:
$ mkdir config
$ touch config/app.php
在 app.php 文件中,您可以 return 具有以下配置的数组:
// config/app.php
<?php
return [
'order_by' => 'whatever'
// and so on
];
然后告诉 Lumen 从 app.php 中加载配置 bootstrap/app.php,方法是添加(在 $app 初始化后):
$app->configure('app');
最后,您可以使用 config() 辅助方法获取配置:
config('app.order_by') // whatever
我正在使用 Lumen 编写 Web 服务,需要存储一些常量,特别是错误值,还有其他配置参数。把这些放在哪里最合适?
在 config/ 中创建文件 constants.php 并将您的设置放入数组中:
<?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键、调试模式等)的地方。如果你有强烈的愿望,你可以在 bootstrap 过程中将环境变量放入常量中,例如:
define('APP_DEBUG',env('APP_DEBUG', true));
对于定义简单常量,应该有多种可能性。
您可以在bootstrap过程中或定义a class(例如模型):
class Error
{
const FATAL = 1;
const WARNING = 2;
}
use Error;
....
Error::FATAL;
...
这是我的做法。
我在 bootstrap 文件夹中创建了一个 const.php 文件,我在其中定义了一些错误代码。
<?php
define('VALIDATION_EXCEPTION',422);
我使用 require_once 在 app.php 中包含了 const.php 文件。
<?php
require_once __DIR__.'./const.php';
现在我可以从任何地方打电话给 VALIDATION_EXCEPTION。例如。
$router->get('/test',function(){
return VALIDATION_EXCEPTION;
});
就是这样!
1.Create App Directory 下的新目录助手。
2.Create 在 Helpers 目录下新建 php 文件 ErrorCodes.php
3.Put 该文件中的常量
<?php define('VALIDATION_ERROR', 'E001'); define('EXCEPTION', 'E002'); define('CUSTOM','E003'); ?>
4.Add 此 ErrorCodes 文件位于 composer.json
的自动加载部分"files" : [
"app/Helpers/ErrorCodes.php"
]
5.Run artisan 终端中的 composer 自动加载命令
composer dumpautoload
你已经准备好在你的流明应用程序的任何地方使用你的常量。
此解决方案来自 this link
.env 用于每个环境的配置和敏感凭据。
您可以使用此类数据维护配置。 Lumen 没有像 Laravel 那样的默认配置,因此您需要添加所需的配置目录,并告诉 Lumen 使用它:
$ mkdir config
$ touch config/app.php
在 app.php 文件中,您可以 return 具有以下配置的数组:
// config/app.php
<?php
return [
'order_by' => 'whatever'
// and so on
];
然后告诉 Lumen 从 app.php 中加载配置 bootstrap/app.php,方法是添加(在 $app 初始化后):
$app->configure('app');
最后,您可以使用 config() 辅助方法获取配置:
config('app.order_by') // whatever