gpt4 book ai didi

框架中的 php 全局变量开销

转载 作者:可可西里 更新时间:2023-11-01 13:56:23 27 4
gpt4 key购买 nike

我目前正在开发一个使用 Core 类对象的框架(该类具有强大的功能并使框架正常工作)。该框架遵循 MVC 架构并具有松散耦合的模型、控制、 View 类。这些类需要大量引用 Core 类。到目前为止,我所做的是:创建 Core 类的单个对象,并在 Model、Control、View 类中通过 PHP 关键字 global 引用它。

我不喜欢使用这种方法主要是因为:

  • 在我看来,这种方式不是真正的面向对象方式
  • IDE (netbeans) 无法为 Core 类的对象提供文档 - 这对于将使用此框架的开发人员来说是一个痛苦。
  • 我真的很担心性能问题 - 不知道是 global 变慢了还是什么。

我已经搜索过,但没有找到任何关于性能问题的信息。我还搜索了 stackoverflow 并找到了 Does using global create any overhead? & The advantage / disadvantage between global variables and function parameters in PHP?等链接,但它们不包含太多信息。 现在我主要关心的是性能,所以请帮忙。

最佳答案

我必须同意 NevilleK,你的 Core` 类听起来符合 God Object 反模式。

对于愚蠢到建议使用单例/注册表的任何人,我建议对该主题进行一些研究。它们创建与经典全局变量相同的全局状态。

全局状态与其说是性能问题(虽然在 php 中它有一些小的影响),但它创建了不可测试和紧密耦合的代码。

您真的应该研究依赖注入(inject)。这可能会向您展示另一种方式,它不需要在您的代码中有这样一个 Core 类。


一些额外的视频给你:

关于框架中的 php 全局变量开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345636/

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