这是一个让我恼火的设计问题,因为我内心深处知道我做错了。这不一定只是一个 PHP 问题,但我现在正在开发一个 PHP 项目,所以这就是我的出发点。我只是给你一个场景:我有一个数据访问脚本使用的 JSON 生成类。基本上,它是实例化 JSONGen 类的网站的首选 URL,该类依次查看静态文件并提取所请求的数据,并将其作为 JSON 对象发送回。包含原始数据的文件全部采用数组格式,以便于读取和更新(因此不必筛选原始 JSON 数据和风险语法错误等)。我的问题是访问该文件。我所做的是在类定义之外放置一个 require([json file]) 。[json 文件] 中的所有内容都分配给一个 $JSON 对象。在类构造函数中,我这样做:
global $JSON;
$this->JSON = $JSON;
(其中 $this->JSON 是一个私有类变量)。
这使我可以从课堂上的任何地方访问 JSON,这很可爱。感觉很老套,但我在任何地方都找不到解决这种特定类型方法的任何东西。
问题是一旦有人决定移动类或其他什么,他们理解这个文件的依赖关系的唯一方法是在标题中有一个 require 语句。事情就是这样运作的吗?还是有更好的方法来做到这一点?
我应该使用扩展并将 JSON 放入一个类(这对我来说听起来真的很愚蠢),还是继续我的包含?或者我不应该在这样的类中包含一个文件,而是将它传递给构造函数或其他一些访问方法?
这个特定的实例是一个小项目,为它设置数据库是没有意义的。我们可以添加到文件中,修改配置,并且整个站点更新....所以请不要告诉我切换到数据库-我正在寻找更一般意义上的解决这个特定问题的策略。
谢谢!