使用get变量在服务器上打开PHP文件?

时间:2014-10-05 22:01:18

标签: php

好的,基本上,我已经编写了一个PHP脚本(它是一个MMORPG,所以我们很清楚)。

我喜欢能够做的不是编写包含完全相同数据的新(大量)文件,而只是在一个大脚本中(以便能够创建更多的NPC方面)游戏),我宁愿能够使用预定义的get变量(即collect = Y或attack = Y等)发送打开page.php的请求,这几乎与真实玩家发送的变量相同请求,并让系统打开文件,运行该文件,并在关闭它之前对数据库进行任何查询。

我对fopen的工作方式感到困惑,说实话,我读过的一些事情让我相信上面的内容是可能的,其他的并不是那么多。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我会在这里走出困境,尝试解决你的问题(据我所知),而不是回答你的问题(正如你所说的那样)。

您的基本问题是您已将PHP文件视为完整的代码单元,其中包含来自查询字符串的输入,特定于该文件的处理以及输出回用户。这违反了单一责任原则",因为这里至少有三个顶级职责:

  • 处理用户输入并决定适当的操作
  • 执行操作,包括操纵数据库结构
  • 将操作结果传达给用户

这些都可以分解为更小的任务 - 例如,连接到数据库的细节应该保持在更抽象的行动之外,因为改变敌人的移动方式,并改变敌人的存储方式。 MongoDB文档而不是MySQL表不应该要求更改相同的代码。

因此,解决方案是采用结构化编程,在现代PHP(和许多其他语言)中通常意味着采用面向对象的编程。因此,在第一级组织中,您可能有:

  • 用于查看查询字符串,检查它是否有意义以及创建由其描述的操作的抽象列表的类。
  • 表示某些行为的类,例如" Attack"和#34;收集",详细说明从抽象列表中攻击或收集的内容,并返回一个详细说明结果的不同抽象列表。
  • 代表玩家的类,以及游戏中的敌人或物体,动作类可以使用它来计算不同情况下的结果。
  • 获取操作结果并将其显示给用户的类。

现在,我不需要说"我需要创建一个查询字符串,运行页面运行的代码,然后获取输出并以某种方式使用它#34;你可以说"我需要创建一个动作列表,运行相应的动作,并以某种方式使用结果列表"。

听起来这可能比仅仅强制PHP运行现有代码要多得多,但是它给你创建现有功能的新组合的能力不容低估。

相关问题