好的,基本上,我已经编写了一个PHP脚本(它是一个MMORPG,所以我们很清楚)。
我喜欢能够做的不是编写包含完全相同数据的新(大量)文件,而只是在一个大脚本中(以便能够创建更多的NPC方面)游戏),我宁愿能够使用预定义的get变量(即collect = Y或attack = Y等)发送打开page.php的请求,这几乎与真实玩家发送的变量相同请求,并让系统打开文件,运行该文件,并在关闭它之前对数据库进行任何查询。
我对fopen的工作方式感到困惑,说实话,我读过的一些事情让我相信上面的内容是可能的,其他的并不是那么多。
任何帮助都将不胜感激。
答案 0 :(得分:2)
我会在这里走出困境,尝试解决你的问题(据我所知),而不是回答你的问题(正如你所说的那样)。
您的基本问题是您已将PHP文件视为完整的代码单元,其中包含来自查询字符串的输入,特定于该文件的处理以及输出回用户。这违反了单一责任原则",因为这里至少有三个顶级职责:
这些都可以分解为更小的任务 - 例如,连接到数据库的细节应该保持在更抽象的行动之外,因为改变敌人的移动方式,并改变敌人的存储方式。 MongoDB文档而不是MySQL表不应该要求更改相同的代码。
因此,解决方案是采用结构化编程,在现代PHP(和许多其他语言)中通常意味着采用面向对象的编程。因此,在第一级组织中,您可能有:现在,我不需要说"我需要创建一个查询字符串,运行页面运行的代码,然后获取输出并以某种方式使用它#34;你可以说"我需要创建一个动作列表,运行相应的动作,并以某种方式使用结果列表"。
听起来这可能比仅仅强制PHP运行现有代码要多得多,但是它给你创建现有功能的新组合的能力不容低估。