文件大小是否会减慢 php 响应速度


Does files size slow down php response?

>我目前使用一个文件设计...我所有的 PHP 代码都在一个索引.php文件中,我在一个文件中有大约 13,000 行 (~1mb),并且在加载时它开始有点挂起......我认为这可能是文件大小,但我一直认为 PHP 是在服务器上预处理的,所以其他 if 语句中的内容并不重要,因为它不会被呈现。

以下是我的索引示例.php:

if ($_POST['action'] == 'view') {
    // code
} else if ($_POST['action'] == 'something') {
    // code
} else if ($_POST['action'] == 'otherthings') {
    // code
} else {
   // homepage
}

问题:

  1. 将代码放在一个文件中是否会失去任何速度? 或者这根本不影响速度?
  2. 有没有对PHP更有效的代码布局/组织风格?或者这也无关紧要?

正如其他人建议的那样,最好将此文件分成几部分,以便于维护。您可能会考虑的一件事是使用像 APC 这样的操作码缓存,因为这将减少解析索引.php文件的次数。

您输入的每一行都需要解析,因此将所有代码放在一个唯一的文件中会影响响应时间。

重新组织所有内容的一种非常简单的方法是:

$action = $_POST['action'];
$path = 'path_to_your_application';
//you should put some validation about action, for example
$allowed_actions = (array of possible values of "action");
if(in_array($action, $allowed_actions) && file_exists($path.$action.".php"))) require($path.$action.".php");
else //homepage

或类似的东西:-)

  1. 不,I/O 消耗的时间越长,因为打开文件。在您的情况下,服务器打开并读取一个唯一的文件,它经过优化

  2. 但是,代码是不可维护的,具有圈复合体,不是真的可测试...建议在破坏它时组织你的代码到许多文件中,例如使用 MVC Logic。您也可以使用微框架,帮助您围绕约定组织代码。例如,请参阅 http://silex.sensiolabs.org/。