Pages

Thursday, November 17, 2011

Zend Framework Module Setup.

To create modules in Zend Framework, need to create directory in this way:


 Zendapplication
   -- application
        -- modules
               --- default
                       --- controllers
                       --- models
                       --- views
               --- admin

                       --- controllers
                       --- models
                       --- views


        -- layouts
        -- Bootstrap.php
   -- library
  --  public
  -- index.php






After creating this structure , need to add some line application.ini or config.ini file



resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""


for example: application.ini file



[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""


resources.frontController.params.displayExceptions = 0
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = 
resources.db.params.dbname = zend_db
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
;resources.layout = 'layout1'
resources.view.doctype = "XHTML1_STRICT"






[staging : production]


[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1


[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1




Create a Bootstrap file in application/modules/default.


class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
 protected function _initAppAutoload()
        {
        $autoloader = new Zend_Application_Module_Autoloader(array(
        'namespace' => 'default',
        'basePath' => dirname(__FILE__). '/modules/default/'));
       return $autoloader;
     }

}


This will autoload to models, filters, helpers, etc... for our default module.




Also Create the file Bootstrap.php under your admin directory and add this code:

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
 protected function _initAppAutoload()
        {
        $autoloader = new Zend_Application_Module_Autoloader(array(
        'namespace' => 'admin',
        'basePath' => dirname(__FILE__). '/modules/admin/'));
       return $autoloader;
     }

}





No comments:

Post a Comment