4

我刚刚开始使用来自 codeigniter 的 laravel,我正在尝试找出定义一系列常量的最佳方法。CI 在 app/config 下使用了一个常量文件夹,对于大多数事情,我对这种方法非常满意,但希望得到有关在 Laravel 中执行此操作的最佳方法的建议。

我的常量分为 3 类,如果可能的话,我想就如何最好地存储和检索每个类提供建议(请记住,我对 Laravel 完全陌生。

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

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

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

感谢您提前提供任何帮助/建议 - 示例将不胜感激

4

3 回答 3

8

类型 1 您可以在 Bundle(或应用程序)的 start.php 文件中添加任何常量。

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

于 2012-09-07T06:58:39.760 回答
0

我的解决方案是在 app/config 文件夹中创建一个名为“constants.php”的文件 app/config/constants.php

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

"某个值", 'c2'=>"某个值" ); ?>

然后在每个控制器内部,您可以使用 Config::get('constants.c1'); 检索

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

于 2014-12-05T03:16:06.160 回答
0
<?php
//file : app/config/constants.php

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

在任何地方:

echo Config::get('constants.IS_AJAX');
于 2017-02-06T10:34:21.247 回答