我正在使用自定义的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';
});