在laravel中存储和检索常量


Storing and retrieving constants in laravel

我刚刚开始使用来自codeigniter的laravel,我正在努力找出定义一系列常量的最佳方法。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:仅在特定控制器中需要的常量:理想情况下,我希望能够将常量分组到数组或单独的文件中,并根据需要分组取出。例如,我可以为我的上传控制器检索我的上传设置。

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

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

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

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

里面的代码是数组方式。

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

然后在每个控制器中,您可以使用Config::get('instants.c1');

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

<?php
//file : app/config/constants.php
return [
    'IS_AJAX' => isset($_SERVER['HTTP_X_REQUESTED_WITH']
];

在任何地方:

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