Yii2:配置参数与 const/define

2024-04-14

我什么时候应该使用什么?

我可以选择在index.php入口脚本文件中定义常量,就像推荐的那样Yii2 指南:常量 http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html#defining-constants。或者我可以使用配置中的参数 - 中解释YII2 指南:参数 http://www.yiiframework.com/doc-2.0/guide-structure-applications.html#params。两者都是针对每个应用程序的,而不是真正的全局的。

目前,在我看来,如果我想组合这样的值,参数有点不太舒服:

define('SOME_URL',            'http://some.url');
define('SOME_SPECIALIZED_URL', SOME_URL . '/specialized');

此外,访问需要更多代码(Yii::$app->params['something'])与常数相比。

那么我什么时候应该或者可以使用什么?

小更新:在 PHP 7 中define()也支持数组,因此整个 params 结构可以配置为常量。 IDE 可能会更好地支持。


我倾向于使用 Yii 应用程序参数。主要原因是这些参数中保存的值往往会根据代码运行的环境而变化。所以我将有一个运行的构建系统(我使用Phing https://www.phing.info)并从非版本控制文件(例如 build.properties)中提取设置。

因此,任何开发数据库设置、开发域设置、API 沙箱地址等都将加载到我的开发环境中,并且在实时服务器上运行构建时将使用正确的生产值。

如果您在某种 php 文件中设置这些值,那么使用版本控制进行跟踪就会出现问题,因为每次您在开发环境中构建时都会对您的 index.php 文件进行更改。有人甚至可能最终错误地提交了这些更改。

总而言之,我想说,如果它们是真正的常量——在代码运行的任何环境中都相同——它们也许是常量就可以了。如果这些值可能会发生变化,具体取决于代码运行的位置,那么我的偏好是将它们放在 params 中,并让您的构建系统从非版本控制文件加载它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii2:配置参数与 const/define 的相关文章

随机推荐