gpt4 book ai didi

php - 在 PHP 中确保静态性的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 06:16:21 25 4
gpt4 key购买 nike

我有这个Config -我在我的 PHP5 应用程序中使用的类来加载和解析我的静态配置。到目前为止,我已经设法使该类不再是单例/注册表,而是传递了 Config 的实例。在依赖注入(inject)的帮助下,类到任何需要的地方。

但现在我需要在我的 Config 中设置/进行更改在一个地方的运行时,我的更改不会在全局范围内反射(reflect)出来,并且与使用 static 的专家相去甚远。 PHP中的修饰符,我需要问:

确保更改我的 Config 中的属性的最佳方法是什么? -class 反射(reflect)在我的整个应用程序中,而不会将类变成单例?我可以只制作保存配置数据的变量static ?

最佳答案

This far I've managed to keep the class from being a singleton/registry and instead passed the instance of the Config class around to wherever it's needed with the help of Dependency injection.



如果您传递您的 Config 的相同实例类到应用程序的每个部分,并且您更改了一个设置,它应该反射(reflect)在其他任何地方。

如果您正在创建该类的多个对象(并且每次都解析该配置文件?!)您可能希望停止这样做。这可能很浪费,我会说这很令人困惑。

所以如果你 create only one 并通过它,一切都应该没问题。

假设您创建了只应该存在一次的对象的多个实例:

如果您能够“修复”您的架构以允许您这样做:这样做。

如果你不能那样...好吧..创建一个 静态属性 将您的值(value)观保存在您可以拥有的类(class)中 多个实例 off 至少在我的书中是 主要重量因素 .如果您无法修复(意味着这样做很麻烦),只需以预期的方式“破坏”它,这样其他人就不会绊倒它。

我宁愿有一个单例,也不愿使用单例和 造成所有问题的东西。还有关于成为全局变量的包装器的谎言。

关于php - 在 PHP 中确保静态性的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com