Я создаю систему управления проектами, используя пользовательскую среду PHP MVC. У меня есть класс контроллера, который отвечает за обработку проектов. Естественно, одной из функций в моем контроллере является createProject (). Когда проект создан, мне нужно отправить электронное письмо, чтобы у меня также был почтовый класс.
Более эффективно включить (‘/ 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';
});
Других решений пока нет …