Инициализация Front Controller, в чем разница между этими двумя - PullRequest
1 голос
/ 09 ноября 2010

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

Я вижу, что иногда я делал это

$frontController = Zend_Controller_Front::getInstance();

и другие разы я делал это

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

Не уверен, о чем я думал. Я думаю, что я, вероятно, следовал за примерами. Кто-нибудь знает, есть ли реальная разница между этими двумя?

Ответы [ 3 ]

4 голосов
/ 09 ноября 2010

Один - это вызов объекта Singleton, который можно получить из любого места. Другой - это вызов загрузчика приложения, чтобы получить ресурс с именем FrontController.

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

На практике они оба получают экземпляр Zend_Controller_Front.

2 голосов
/ 09 ноября 2010
Zend_Controller_Front::getInstance()

Первый метод - это прямой вызов Zend_Controller_Front .

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

Второй метод использует Zend_Application с Zend_Application_Bootstrap_ResourceBootstrapper . При инициализации Zend_Application он регистрирует ресурс FrontController , который затем инициализируется с помощью вызова $this->bootstrap в файле начальной загрузки.

Хотя последний метод потребует и Zend_Application, и Zend_Controller, первый метод зависит только от Zend_Controller.

1 голос
/ 09 ноября 2010

Я думаю, что это два одинаковых вида; -)

...