Zend Framework Module yapısında Layout konfigürasyonu
Adım 1:
administrator ve default adında iki module oluşturun.
adım 2:
her iki module’nin altındaki views klasörünün altına layouts/scripts klasörünü oluşturun.
Adım 3:
library klasörünün altında My klasörünü bu klasöründe içine Layout.php dosyasını oluşturun ve aşağıda verdiğim classı yazın;
1 2 3 4 5 6 |
<?php class My_Layout extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request){ $layoutPath = APPLICATION_PATH . '/modules/' . $request->getModuleName() . '/layouts/scripts/'; Zend_Layout::getMvcInstance()->setLayoutPath($layoutPath); } |
Adım 4:
application/configs/application.ini dosyası içerisinde şu düzenlemeleri gerçekleştirin
1 2 3 4 5 |
resources.layout.layout = "layout" ; Eklentiyi kayıt ediyoruz. autoloaderNamespaces[] = "My_" resources.frontController.plugins[] = "My_Layout" |
Adım 5:
Application/Bootstrap.php dosyasının içine aşağıda vermiş olduğum kodları yazın
1 2 3 4 5 6 7 8 9 10 11 12 |
protected function _initAutoload(){ $loader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH . '/modules/' )); return $loader; } protected function _initPlugins(){ $this->bootstrap('frontcontroller'); $fc = $this->getResource('frontcontroller'); $fc->registerPlugin(new My_Layout()); } |
Böylelikle module özel birbirinden bağımsız layout konfigürasyonu yaptık.