Contenu connexe
Similaire à Soutenance Zend Framework vs Symfony (20)
Soutenance Zend Framework vs Symfony
- 12. Architecture Zend Framework (INI) Symfony (YAML) apps/frontend/ modules/ index/ actions/ actions.class.php templates/ indexSuccess.php contact/ lib/ model/ application/ controllers/ IndexController.php FooController.php models/ views/ scripts/ index/ index.phtml contact/
- 13. Configuration Zend Framework (INI) Symfony (YAML) [production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.view[] = default: http_metas: content-type: text/html metas: title: Titre de mon projet description: Description de mon projet keywords: Mots-clés de mon projet language: fr robots: index, follow stylesheets: [main.css] javascripts: [jquery-1.4.2.min.js] has_layout: true layout: layout class frontendConfiguration extends sfApplicationConfiguration { public function configure() { } } class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initDoctype() { $this->bootstrap('view'); $view = $this->getResource('view'); $view->doctype('XHTML1_STRICT'); } } Bootstrap ProjectConfiguration
- 14. Gestion des droits sous Zend Framework Définition des droits d’accès : $acl = new Zend_Acl(); $acl->add(new Zend_Acl_Resource('index')); $acl->add(new Zend_Acl_Resource('backend')); $acl->allow('guest', 'index'); $acl->deny('guest', 'backend'); Zend_Registry::set('acl', $acl); class Plugin_Acl extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { $acl = Zend_Registry::get('acl'); $auth = Zend_Auth::getInstance(); if(!$auth->hasIdentity()) { $roleName = 'guest'; } else { $roleName = $auth->getIdentity()->role; } $privilegeName = $request->getActionName(); if(!$acl->isAllowed($roleName, null, $privilegeName)){ $request->setControllerName('Error'); $request->setActionName('index'); } } } Création du plug-in de test :