1

Как я могу автоматически загружать свои контроллеры и модели фреймов по их имени класса, например, Zend Framework?Автогрузочные классы по названию классов, такие как Zend Framework

Zend Framework загружает классы авто, как так:

new Application_Controller_Index();

означает, что класс контроллера находится в application/controllers/IndexController.php

ответ

3

Почему бы не посмотреть исходный код? http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Loader.php

только в том случае, вероятно, самый простой способ:

spl_autoload_register(function($classname){ 
    include str_replace('_', DIRECTORY_SEPARATOR, $classname) . '.php'; 
}); 
+0

Это, кажется, лучший способ сделать это, поэтому я принимаю этот ответ. –

0

Просто используйте функцию __autoload и вы должны быть все готово.

Есть действительно хорошие примеры на PHP инструкции: http://php.net/manual/en/language.oop5.autoload.php

Также обратите внимание, что __autoload может быть устаревшим в ближайшее время. Чтобы обойти это, используйте spl_autoload_register(), как говорится в руководстве.

+0

Я понимаю, что нужно использовать функцию автоматической загрузки, я спрашиваю, как Zend имеет он настроен так, что они не должны указать каталог, просто введите имя класса, которое затем анализируется в каталог, чтобы найти класс. –

+0

Чтобы использовать формат, указанный выше, вы должны [explode()] (http://www.php.net/manual/en/function.explode.php) имя класса в битах и ​​получить путь от массив. – Lasse

 Смежные вопросы

  • Нет связанных вопросов^_^