我正在开发一个旧的php Web应用程序。
问题是所有文件的组织或多或少是随机的。我最喜欢的是一个级别,包含'include'文件夹和'includes'文件夹。
重新排列所有文件的主要障碍是大多数require和include语句都是原始字符串文件路径,有些是变量。
我目前的计划如下:
创建一个super_require($ path)函数,检查路径是否应该在哪里,如果不是,则在整个代码树中搜索结束文件名,直到找到它为止。
使用super_require()搜索替换所有需求和包含。
将所有文件重新排列到我心中。
不知道它是如何运作的,因为这个计划似乎很容易出错。
所以我想我的问题是,在这种情况下有没有人知道更好的计划?
答案 0 :(得分:2)
super_require
这个想法是一个滑坡。你将开始用魔术函数包装什么其他语言结构和库函数?你将如何在几年内保持这一点?
尝试通过每次重构使代码和程序结构更好。
Register globals会自动将GET和POST变量导入全局范围内的常规变量。这使得局外人可以通过将变量值添加到请求中来定义变量值,从而产生大量的安全漏洞。
但是最相似的例子是magic quotes,它自动将SQL转义添加到所有 GET和POST变量中,这使得开发人员一旦获得了非用于数据的数据就会给他们带来巨大的麻烦数据库查询。多年来的解决方案是添加代码以反转魔术引用,这比首先添加它更难和更容易忘记。
这里的常见教训是代码应该以确定的方式完成您希望它做的事情,而不是试图比开发人员更聪明。因此,请花点时间解决问题The Right Way™并避免将来遇到麻烦。