1

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

下面是我的 index.php 的示例:

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

问题:

  1. 将代码放在一个文件中是否会降低速度?或者这根本不影响速度?
  2. 是否有任何代码布局/组织样式对 PHP 更有效?或者这也不重要吗?
4

3 回答 3

2

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

于 2013-10-01T19:08:18.813 回答
1
  1. 不,更多的消耗时间是 I/O,因为打开文件。在您的情况下,服务器打开并读取一个独特的文件,它已经过优化

  2. 但是,代码是不可维护的,有圈复杂的,不是真正可测试的......建议将你的代码组织成许多文件,例如使用 MVC Logic。您还可以使用微框架来帮助您围绕约定组织代码。例如,参见http://silex.sensiolabs.org/ 。

于 2013-10-01T18:57:22.000 回答
1

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

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

$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

或类似的东西:-)

于 2013-10-01T19:01:28.540 回答