【问题标题】:Wamp or other php server define overall global constantsWamp 或其他 php 服务器定义整体全局常量
【发布时间】:2016-09-18 04:34:51
【问题描述】:

我想知道我们是否应该总是为每个 php 客户端请求定义常量。同一个网页有一些我们从不更改的固定值示例:允许的最大和最小年龄、身高或体重;或者当我们将它们用作不同事物的代码时更多作为配置常量行的其他值,有没有办法在服务器启动时定义那些一次并在每个运行的 php 脚本中使用它们?

我正在考虑使用 php.ini 来存储这些值。但我认为将我的代码与其他代码混合不是一个好主意。所以我问是否有办法做到这一点?

是的,关于不污染全局命名空间,我们可以轻松地使用一个数组来存储所有这些。

编辑:我将这些常量保存在 .ini 文件中。

编辑 2: 这是我的常量 ini 文件的示例:

; **********************  Personal data  **********************
min_height = 100
max_height = 250
min_weight = 30
max_weight = 400

; **********************  Action Constants  **********************
act_create_account = 1
act_add_picture = 20
act_add_comment = 30

; friendship
act_add_friendship = 10
act_reject_friendship = 11
act_accept_friendship = 12
act_unfriend = 13

;blocking
act_block = 40
act_unblock = 41

; **********************  Messages Constants  **********************
max_message_query_number = 21

; **********************  messages chat flags  **********************
message_receiver_unseen = 2
message_sender_unseen = 1

【问题讨论】:

  • 环境变量似乎很适合我。
  • 如何将这些值存储在特定的命名空间或类中?
  • @pnovotnak 和 PEMapModder,感谢您的回复。那么这里有两点。一个(在编辑中添加)是我使用一个文件来存储这些值。其次,我的问题的真正目的是为什么我们应该通过每个运行它的脚本来加载它们,这与性能有关。只要它们永远不会改变,我们就不能将它们加载到内存中并在需要时使用它们吗?
  • @fekirimalek 您可以将所有这些数据放入声明这些常量的 PHP 文件中,或者放入您加载和定义值的 JSON 文件中。
  • 通常情况下,加载声明常量的 PHP 文件对性能的影响可以忽略不计。

标签: php constants global


【解决方案1】:

你可以使用环境变量

https://github.com/vlucas/phpdotenv

易于使用

【讨论】:

  • 非常感谢,我在这里学到了一些新东西,这不是我的确切问题,但我会考虑使用它。可能是替换 global "varname" 以访问函数内部的全局常量(声明为 vars)
【解决方案2】:

我理解您的观点,但是在处理可扩展性、分发和/或迁移时,最好让您的应用程序预先设置这些项目,并且维护者和主题中的服务器之间没有手动交互.

最好的例子是,您可能不希望每次在新环境或服务器中部署应用程序时都设置允许的最大和最小年龄、身高或体重。

此外,配置变量(例如数据库连接详细信息和 API 密钥和机密等设置)更合理地为每个服务器手动配置,因为这些是您不希望包含在存储库中的信息类型,因为它们是敏感信息并且必须是私有的。

【讨论】:

  • 谢谢你的回复,我同意第一点,第二点我更多的是考虑一个包含所有常量的文件,而不是一个一个地设置它们。对于第三点,我同意安全问题,尽管我在这里谈论的常量是常见的而不是“分类的”。我稍等一下可能是其他建议,我将其标记为已接受。
猜你喜欢
  • 2016-05-01
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多