这已经在我脑海中萦绕了很长一段时间,我想我应该寻求专家的答案。我想知道通过单个文件汇集所有 PHP 请求是否是一种糟糕的编程技术。我一直在开发一个网站,但不确定它是否会随着增长而扩展,因为我不能 100% 确定 PHP 如何处理该include()
功能。
为了更好地解释我是如何构建我的准框架的,这里是我的根.htaccess
文件的一个片段:
# > Standard Settings
RewriteEngine On
# Ignore all media requests
RewriteRule ^media/ - [L]
# Funnel all requests into model
RewriteRule ^(.*)$ _model.php [QSA]
所以除了媒体目录中的内容之外的所有内容都被传递到这个单一的脚本中。
在里面_model.php
我有我所有的输入清理、用户身份验证、从数据库中提取会话数据、设置任何全局变量(常用变量,如 $longTime、$longIP 等)。通过解释$_SERVER["REQUEST_URI"]
变量来路由请求。
本质上,我有一个switch()
选择要使用哪个模块的语句include()
。我不明白的是:当PHP执行时,include()
无论case指令是否为真,它都会执行每一个吗?
我担心以后我会有很多这些模块 - 如果 PHP 在运行时包含所有模块,它最终会占用太多的处理能力和 RAM ......
--
编辑:
我真的只是在问 PHP 是否会“读取”它可能必须包含的所有文件。我知道它实际上不应该执行代码。如果我的其中一个include()
是一个需要很长时间处理的 2GB 文件,PHP 是否总是在执行之前读取该文件?
-- 编辑:
我发现了另一个类似的问题(在发布这个问题之前我做了很多搜索)
PHP 的 include/require 条件内的行为
我想我可以关闭它。