Soutenance Zend Framework vs Symfony

Vincent Composieux
Vincent ComposieuxSolution Architect à Eleven Labs
Soutenance Vincent Composieux
About Epixelic ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Environnement de travail ,[object Object],[object Object],[object Object],[object Object]
Bug tracking : Flyspray
Projets sur lesquels j’ai travaillé ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introduction aux frameworks PHP ,[object Object],[object Object],[object Object],Légende des mots-clé  :  symfony      zend framework     code igniter     cake php
Pourquoi ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Modèle MVC + Abstraction de la base de données Ne pas réinventer la roue
Le modèle MVC
Mapping objet-relationnel Objets Base de données ,[object Object],[object Object],[object Object],DELETE   FROM   user   WHERE   id  = '5'; $user = new User( 5 ); $user->delete();
Mise en place d’un projet <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot &quot;/var/www/monprojet&quot; ServerName monprojet.local ErrorLog &quot;logs/ monprojet.local-error.log&quot; CustomLog &quot;logs/ monprojet.local-access.log&quot; common </VirtualHost> ,[object Object],[object Object],Symfony  :  root@laptop:~/var/www$ symfony generate:project monprojet Zend Framework  : root@laptop:~/var/www$ zf create project
Mise en place d’un projet
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/
Configuration Zend Framework (INI) Symfony (YAML) [production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH &quot;/../library&quot; bootstrap.path = APPLICATION_PATH &quot;/Bootstrap.php&quot; bootstrap.class = &quot;Bootstrap&quot; appnamespace = &quot;Application&quot; resources.frontController.controllerDirectory = APPLICATION_PATH &quot;/controllers&quot; 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
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 :
Gestion des droits sous Symfony ,[object Object],index: is_secure:  on credentials: administrator all: is_secure:  off ,[object Object],[object Object],[object Object]
Utilisation des ORM ,[object Object],[object Object],[object Object],[object Object],class Commande extends Zend_Db_Table_Abstract { protected $_name = 'commande'; protected $_primary = 'id'; } ,[object Object],symfony doctrine:build-model symfony doctrine:build-sql
Utilisation des ORM ,[object Object],$table = new Commande(); $commande = $table->find(5); ,[object Object],$commande = Doctrine::getTable('commande')->find(5); $nom = $commande->utilisateur->nom; $commande->delete();
Les plus des frameworks ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1 sur 19

Recommandé

Symfony2: 30 astuces et bonnes pratiques par
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
55.8K vues97 diapositives
PHP5 et Zend Framework par
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend FrameworkNdjido Ardo BAR
7.5K vues75 diapositives
Mieux Développer en PHP avec Symfony par
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyHugo Hamon
7.4K vues64 diapositives
Formation PHP avancé - Cake PHP par
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
14.7K vues84 diapositives
Introduction à CakePHP par
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHPPierre MARTIN
2K vues49 diapositives
Introduction à Symfony2 par
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
15.2K vues114 diapositives

Contenu connexe

Tendances

Présentation symfony epita par
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
4.5K vues65 diapositives
Orchestrez vos projets Symfony sans fausses notes par
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
1K vues26 diapositives
Symfony 2 : chapitre 2 - Les vues en Twig par
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigAbdelkader Rhouati
4.1K vues10 diapositives
Formation Symfony2 par KNP Labs par
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsKNP Labs
2.5K vues16 diapositives
Symfony Best Practices par
Symfony Best PracticesSymfony Best Practices
Symfony Best PracticesBaptiste Donaux
10.4K vues75 diapositives
Atelier Symfony2- Introduction par
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- IntroductionMarwa OUNALLI
2.1K vues21 diapositives

Tendances(20)

Présentation symfony epita par Noel GUILBERT
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
Noel GUILBERT4.5K vues
Orchestrez vos projets Symfony sans fausses notes par Xavier Gorse
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
Xavier Gorse1K vues
Formation Symfony2 par KNP Labs par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP Labs
KNP Labs2.5K vues
Atelier Symfony2- Introduction par Marwa OUNALLI
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
Marwa OUNALLI2.1K vues
Présentation de symfony - Human talks aux docks le 8 juillet 2014 par Tony Galmiche
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Tony Galmiche732 vues
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework par Hugo Hamon
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Hugo Hamon8.2K vues
Cours php & Mysql - 5éme partie par kadzaki
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partie
kadzaki3.1K vues
Application web php5 html5 css3 bootstrap par Bassem ABCHA
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA4.6K vues
Symfony 2 : chapitre 4 - Les services et les formulaires par Abdelkader Rhouati
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
Abdelkader Rhouati3.5K vues
Une application en deux heure - PHP Québec Janvier 2009 par Philippe Gamache
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
Philippe Gamache1.9K vues
Un exemple élémentaire d'application MVC en PHP par Kristen Le Liboux
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
Kristen Le Liboux57.7K vues
Cours php & Mysql - 4éme partie par kadzaki
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
kadzaki2.6K vues
Symfony3 overview par SymfonyMu
Symfony3 overviewSymfony3 overview
Symfony3 overview
SymfonyMu376 vues
Presentation du framework symfony par Jeremy Gachet
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
Jeremy Gachet11.9K vues

En vedette

Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2 par
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
155.7K vues69 diapositives
Internationaliser un formulaire zend form par
Internationaliser un formulaire zend formInternationaliser un formulaire zend form
Internationaliser un formulaire zend formGeozend
1.5K vues5 diapositives
Développement d'un moteur de recherche avec Zend Search par
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchRobert Viseur
2K vues33 diapositives
Presentation pfe 2012 par
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
15.4K vues26 diapositives
Conception et réalisation d’un Système d’information des étudiants du départe... par
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
39.2K vues54 diapositives
Presentation orale d’un mémoire par
Presentation orale d’un mémoirePresentation orale d’un mémoire
Presentation orale d’un mémoireNjeugna
69.5K vues8 diapositives

En vedette(9)

Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2 par Sofien Benrhouma
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Sofien Benrhouma155.7K vues
Internationaliser un formulaire zend form par Geozend
Internationaliser un formulaire zend formInternationaliser un formulaire zend form
Internationaliser un formulaire zend form
Geozend1.5K vues
Développement d'un moteur de recherche avec Zend Search par Robert Viseur
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend Search
Robert Viseur2K vues
Conception et réalisation d’un Système d’information des étudiants du départe... par Ilyas CHAOUA
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
Ilyas CHAOUA39.2K vues
Presentation orale d’un mémoire par Njeugna
Presentation orale d’un mémoirePresentation orale d’un mémoire
Presentation orale d’un mémoire
Njeugna69.5K vues
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés... par Arnold Stellio
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Arnold Stellio70.2K vues
Rapport Pfe Application Web e-commerce Symfony2 par Ben Abdelwahed Slim
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
Ben Abdelwahed Slim48.6K vues

Similaire à Soutenance Zend Framework vs Symfony

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter par
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
248 vues35 diapositives
mini projet par
mini projetmini projet
mini projetBasma Ghenimi
24 vues12 diapositives
Web dev open door par
Web dev   open doorWeb dev   open door
Web dev open doorLeTesteur
390 vues29 diapositives
ZendFramework2 - Présentation par
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentationjulien pauli
1.3K vues33 diapositives
Node.js, le pavé dans la mare par
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mareValtech
2.9K vues44 diapositives
SOLID : les principes à l’origine du succès de Symfony et de vos applications par
SOLID : les principes à l’origine du succès de Symfony et de vos applicationsSOLID : les principes à l’origine du succès de Symfony et de vos applications
SOLID : les principes à l’origine du succès de Symfony et de vos applicationsVladyslav Riabchenko
2.3K vues43 diapositives

Similaire à Soutenance Zend Framework vs Symfony(20)

Web dev open door par LeTesteur
Web dev   open doorWeb dev   open door
Web dev open door
LeTesteur390 vues
ZendFramework2 - Présentation par julien pauli
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
julien pauli1.3K vues
Node.js, le pavé dans la mare par Valtech
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mare
Valtech2.9K vues
SOLID : les principes à l’origine du succès de Symfony et de vos applications par Vladyslav Riabchenko
SOLID : les principes à l’origine du succès de Symfony et de vos applicationsSOLID : les principes à l’origine du succès de Symfony et de vos applications
SOLID : les principes à l’origine du succès de Symfony et de vos applications
Utiliser le Zend Framework avec Symfony par Xavier Gorse
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
Xavier Gorse6K vues
Symfony2 - Un Framework PHP 5 Performant par Hugo Hamon
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon3.1K vues
Rich Desktop Applications par goldoraf
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
goldoraf1.6K vues
Introduction à Angularjs par Rossi Oddet
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
Rossi Oddet1.6K vues
Flex, une techno RIA incontournable pour les futures app web ? par GreenIvory
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
GreenIvory1.8K vues
ASP.NET MVC, Web API & KnockoutJS par Renaud Dumont
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
Renaud Dumont5.7K vues
Architecturez vos applications mobiles avec Azure et Xamarin par Thierry Buisson
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
Thierry Buisson122 vues
La mobilité dans Drupal par Adyax
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
Adyax4.2K vues
2008-09-30 Administration automatisée avec Powershell par Patrick Guimonet
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell
Patrick Guimonet1.2K vues

Soutenance Zend Framework vs Symfony

  • 2.
  • 3.
  • 4. Bug tracking : Flyspray
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 11. Mise en place d’un projet
  • 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 &quot;/../library&quot; bootstrap.path = APPLICATION_PATH &quot;/Bootstrap.php&quot; bootstrap.class = &quot;Bootstrap&quot; appnamespace = &quot;Application&quot; resources.frontController.controllerDirectory = APPLICATION_PATH &quot;/controllers&quot; 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 :
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.