PHP效率:是在脚本开头还是在函数中包含更好


PHP Efficiency: Is it better to include at beginning of script or in function?

我正在使用自定义的PHP MVC框架创建一个项目管理系统。我有一个控制器类,负责处理项目。当然,我的控制器中的一个函数是createProject()。创建项目时,我需要发送一封电子邮件,这样我就有了一个mailer类。

包含('/model/Mailer.class.php')是否更有效;在createProject()函数的开头,或者在包含createProject(?

我的想法是,在createProject()函数的开头包含它会更有效,这样在调用其他不需要它的函数时就不必总是包含它。

如果在类的开头包含文件,如:

include ('theFileClass.php');
class SomeClass{
    //code ...
}

您可以更容易地维护代码。另一方面,如果你包括这样的文件:

class SomeClass{
    public function someMethod(){
        include ('theFileClass.php');
        //code ...
    }
}

有时被认为是一种不好的做法。

然而,如果您使用自动加载策略,您将获得更好的性能,并且您的代码将更具可读性和可维护性。使用spl_autoload_register而不是__autoload

一个小例子:

//bootstrap.php
<?php
class Framework{
    //code ...
    public function createProject(){
        //code ...
        $mail = new MailerClass();
        //code ...
    }
    //code ...
}
spl_autoload_register(function($class){
    require_once 'path'. $class .'.php';
});