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

Php 我应该把流明常数保存在哪里?,php,constants,lumen,error-code,Php,Constants,Lumen,Error Code,我正在使用Lumen编写一个web服务,需要存储一些常量,特别是错误值,还需要存储其他配置参数。把这些放在哪里最合适 在config/中创建一个文件constants.php,并将设置放入数组中: <?php return [ 'CONTACT_NAME' => 'Admin' ]; 看起来你在谈论两件不同的事情。对于配置值,唯一正确的位置是.env文件(如注释中所述) 这是放置所有特定于环境的配置值(例如API键、调试模式等)的地方。如果您有强烈的愿望,您可以在引导过

我正在使用Lumen编写一个web服务,需要存储一些常量,特别是错误值,还需要存储其他配置参数。把这些放在哪里最合适

在config/中创建一个文件constants.php,并将设置放入数组中:

<?php

return [
    'CONTACT_NAME' => 'Admin'
];

看起来你在谈论两件不同的事情。对于配置值,唯一正确的位置是
.env
文件(如注释中所述)

这是放置所有特定于环境的配置值(例如API键、调试模式等)的地方。如果您有强烈的愿望,您可以在引导过程中将env变量放入常量中,例如:

define('APP_DEBUG',env('APP_DEBUG', true));
对于定义简单常数,应该有多种可能性

您可以在引导过程中执行此操作,也可以定义一个类(例如模型):

我是这样做的

我在bootstrap文件夹中创建了一个const.php文件,其中定义了一些错误代码

<?php
define('VALIDATION_EXCEPTION',422);

就这样

1.在应用程序目录下创建新的目录帮助程序

2.在Helpers目录下创建新的php文件ErrorCodes.php

3.将常数放入该文件中

<?php define('VALIDATION_ERROR', 'E001'); define('EXCEPTION', 'E002'); define('CUSTOM','E003'); ?>
5.在artisan终端中运行composer autoload命令

composer dumpautoload
您可以在lumen应用程序中的任何位置使用常数。

此解决方案来自

.env用于每个环境配置和敏感凭据

您可以使用这种类型的数据维护配置。Lumen没有像Laravel那样的默认配置,因此您需要添加所需的配置目录,并告诉Lumen使用它:

$ mkdir config
$ touch config/app.php
在app.php文件中,可以使用以下配置返回数组:

// config/app.php
<?php
return [
   'order_by' => 'whatever'
   // and so on
];
最后,您可以使用config()helper方法获取配置:

config('app.order_by') // whatever

Lumen framework的所有配置选项都存储在.env文件中。或者,您可以创建一个配置类,然后定义静态变量。这并不意味着Lumen的配置,而是我的web服务的配置。我希望我的错误代码在一个单独的文件中。关于你的第二个评论,这是一个选项,但我不确定这些类放在哪里。理想情况下,它应该是全局定义语句。我很确定,如果我们谈论的是Laravel,这将是正确的答案。但是Lumen没有配置文件夹。我可以创建一个,但我怀疑它是否会起作用。你们可以创建,而且它应该会起作用,因为流明遵循拉腊维尔结构。我尝试过,它不会。门面不存在。我可以使用app('config')访问配置对象但它不包含我在/config/errors.php中定义的任何常量,您使用的是哪个版本,因为它与官方GitHub composer.json中讨论的是同一个问题。json说的是5.6。*我试图找出*是什么,但我检查过的所有文件都没有任何版本号。我会继续找的。但我认为这几乎是最新的。一周前,我刚刚按照标准安装程序进行了安装。这个以前有用吗?最近坏了吗?你应该最终编辑你的答案,这样我才能真诚地给你分数。
"files" : [
        "app/Helpers/ErrorCodes.php"
    ]
composer dumpautoload
$ mkdir config
$ touch config/app.php
// config/app.php
<?php
return [
   'order_by' => 'whatever'
   // and so on
];
$app->configure('app');
config('app.order_by') // whatever