我应该在哪里保存我的流明常数?

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