在laravel中存储和检索常量

时间:2012-08-29 17:56:34

标签: php laravel

我刚刚开始玩laignvel来自codeigniter,我正在尝试找出定义一系列常量的最佳方法。 CI使用app / config下的常量文件夹,我对大多数事情都非常满意这种方法,但想要了解在Laravel中做到这一点的最佳方法。

我的常数分为三类,如果可能的话,我想建议如何最好地存储和检索每个类别(记住我对Laravel完全不熟悉。

输入1 : 每次调用控制器时都需要加载的常量: 例如我想首先定义一个常量,告诉我用户是否通过ajax请求内容,这是我以前在CI常量文件中做的事情: define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')

类型2 : 可由用户更改的常量: 这些最好存储在数据库中还是写入配置文件是更好的选择?再次寻找有关如何存储和检索的建议

类型3 : 仅在特定控制器中需要的常量: 理想情况下,我希望能够将常量分组为数组或单独的文件,并根据需要将它们分组。 例如我可以检索上传控制器的上传设置。

感谢您提前提供任何帮助/建议 - 非常感谢您的示例

3 个答案:

答案 0 :(得分:8)

输入1 您可以在Bundle(或application)start.php文件中添加任何常量。

类型2和3 我建议使用Config来满足这些要求。

答案 1 :(得分:0)

我的解决方案是在app / config文件夹中创建一个名为" constants.php"的文件。 应用程序/配置/ constants.php

里面的代码是以数组的方式。

"一些价值",     ' c2' =>"某些价值"     ); ?>

然后在每个控制器内部,您可以使用 配置::得到(' constants.c1&#39);

我认为这是一种简单的方法,它的可扩展性更高。

答案 2 :(得分:0)

<?php
//file : app/config/constants.php

return [
    'IS_AJAX' => isset($_SERVER['HTTP_X_REQUESTED_WITH']
];

在任何地方:

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