我应该把我的常数保持在流明中?

时间:2018-05-24 12:16:18

标签: php constants lumen error-code

我正在使用流明编写Web服务,需要存储一些常量,特别是错误值,还需要存储其他配置参数。把它们放在哪里最合适?

5 个答案:

答案 0 :(得分:2)

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

<?php

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

然后在您的控制器中,您可以使用Config Facade获取值:

echo Config::get('constants.CONTACT_NAME');

答案 1 :(得分:1)

好像你在谈论两件不同的事情。对于配置值,唯一正确的位置是.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;
...

答案 2 :(得分:1)

这是我的方法。

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

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

我使用require_once将const.php文件包含在app.php中。

<?php
require_once __DIR__.'./const.php';

现在,我可以从任何地方致电VALIDATION_EXCEPTION。例如。

$router->get('/test',function(){
return VALIDATION_EXCEPTION;
});

就是这样!

答案 3 :(得分:1)

1。在App Directory下创建新的目录助手。

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

3。将常量放入该文件

<?php define('VALIDATION_ERROR', 'E001'); define('EXCEPTION', 'E002'); define('CUSTOM','E003'); ?>

4。在composer.json的autoload部分下添加此ErrorCodes文件

"files" : [
        "app/Helpers/ErrorCodes.php"
    ]

5。在工匠终端中运行composer autoload命令

composer dumpautoload

您都可以在流明应用程序中的任何地方使用常量。

答案 4 :(得分:0)

此解决方案来自this link

.env用于按环境配置和敏感凭据。

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

const fn2 = (th, td) => {
  $.getJSON(api, function(elem) {
    elem.forEach(d => {     
        heads = Object.keys(d.data[0]);
        col = Object.values(d.data);
          heads.forEach(headers => {
            $(th).append(`<th>${headers}</th>`);
          });
          let colCells = '';
          col.forEach(cols => {
            Object.values(cols).forEach(c => {
              colCells += `<td>${c}</td>`;
          });
          $(td).append(`<tr>${colCells}</tr>`);
    });
  });
}

在app.php文件中,您可以使用config返回一个数组:

$ mkdir config
$ touch config/app.php

然后告诉Lumen通过添加(在初始化$ app之后)从bootstrap / app.php中的app.php加载配置:

// config/app.php
<?php
return [
   'order_by' => 'whatever'
   // and so on
];

最后,您可以使用config()帮助方法来获取配置:

$app->configure('app');