2015-02-02 6 views
0

Извините, если спросить, но я не понимаю, почему следующая строка написана перед каждым контроллером.Зачем использовать App :: uses ('Controller', 'Controller') перед всеми контроллерами

App::uses('Controller', 'Controller'); 

Если мы напишем следующий код с controller расширяет это означает, что все имущество и функции Controller класса мы можем получить доступ в AppController.

class AppController extends Controller{...} 

Итак, мой вопрос, если я не пишу App::uses('Controller', 'Controller');, которые имеют какой-либо эффект в моем коде или Perfomance?

+0

возможно дубликат [Что это цель App :: использует ('AppController', 'Controller') в каждом контроллере - CakePHP] (http://stackoverflow.com/questions/25229431/ what-is-the-purpose-of-appusesappcontroller-controller-in-each-controll) – ndm

ответ

1

App :: uses - это статический метод регистрации местоположения файла (который соответствует классу) для загрузки автозагрузчика PHP для его загрузки на лету.

Это App::uses('AppController', 'Controller'); линия заявляет, что если AppControllerclass ссылается (или продлены, в данном случае) и AppController class еще не определено, что он должен искать файл в директории приложения/Controller и построить фактическое имя файла например: AppController.php. Часть из них - соглашение cakePHP, часть PHP5.

Причина ничего не ломается, когда вы удалите эту строку в том, что этот файл, вероятно, потребуется где-то еще в приложении (другой контроллер, во время bootstrap-- так PHP уже имеет класс AppController в памяти.

Причина это включенная в первую строку, состоит в том, что контроллер, который вы выпекали, расширяет класс AppController. Он имеет жесткую зависимость от загружаемого класса AppController и, возможно, в оболочке кортежа или срединном тестировании, контроллер приложения не загружается автоматически перед рукой, поэтому включение должно выполняться. App :: uses похож на то, что говорит cake (и PHP): «Эй, если вы ищете класс AppController, и у вас его еще нет, вы должны посмотреть в каталоге app/Controller и просто добавить .php в конце! ». Если файл уже загружен, App :: uses не повлияет.

What is the purpose of App::uses('AppController', 'Controller') in each controller - cakephp См

+0

Вместо дублирования существующих ответов используйте комментарии и ссылки. – ndm

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

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