SYMFONY2

essay A+

SYMFONY2 SYMFONY2, UN FRAMEWORK PHP • Définition : Le mot « framework » provient de l’anglais « frame » qui veut dire « cadre » en français, et « work » qui signifie « travail Littéralement, c’est donc un « cadre de travail Concrètement, c’est un ensemble de composants qui servent à créer les fondations, l’architecture et les grandes lignes d’un logiciel. Il existe des centaines de frameworks couvrant la plupart des langages de programmation.

Ils sont destinés au développement de sites web next page ou bien à la concepti Objectif d’un framew OF d’améliorer la produc ité développeurs qui l’ut omposants, un fram ‘un framework est en différents possibilité au développeur final d’utiliser tel ou tel composant pour lui faciliter le développement, et lui permet ainsi de se concentrer sur le plus important. Les pour : L’avantage premier est donc le gain en productivité. Mais il en existe bien d’autres ! On peut les classer en plusieurs catégories : le code, le travail et la communauté.

Tout d’abord, un framework va vous aider à réaliser un « bon code ». Par « bon code », j’entends qu’il vous incite, de par sa propre architecture, à bien organiser votre code. Et un code bien organisé st un code facilement maintenable et évolutif ! De plus, un framework offre des briques prêtes ? être utilisées (le composant Formulaire de Symfony2 par exemple), ce qui vous évite de réinventer la par des équipes de développeurs chevronnés, elles sont donc très flexibles et très robustes. Vous économisez ainsi des heures de développement !

Ensuite, un framework améliore la façon dont vous travaillez. En effet, dans le cas d’un site internet, vous travaillez souvent avec d’autres développeurs PHP et un designer. Un framework vous aide doublement dans ce travail en équipe. D’une part, un framework tilise presque toujours l’architecture MVC . Ainsi, votre designer peut travailler sur des fichiers différents des vôtres, fini les problèmes d’édition simultanée d’un même fichier ! D’autre part, un framework a une structure et des conventions de code connues.

Ainsi, vous pouvez facilement recruter un autre développeur : s’il connaît déjà le framework en question, il s’intégrera très rapidement au projet. Enfin, le dernier avantage est la communauté soutenant chaque framework. C’est elle qui fournit les tutoriaux ou les cours, de l’aide sur les forums, et bien sûr les mises à jour du framework Ces mises ? our sont très importantes : imaginez que vous codiez vous- mêmes tout ce qui est connexion utilisateur, session, moteur de templates, etc.

Comme il est impossible de coder sans bugs, vous devriez logiquement corriger chaque bug déclaré sur votre code. Maintenant, imaginez que toutes les briques de votre site soient fournies par le framework. À chaque fois que vous ou les milliers d’autres utilisateurs du framework trouverez un bug, les développeurs et la communauté s’occuperont de le corriger, et vous n’aurez plus qu’à suivre les mises a jour. Il existe plein d’autres avantages, mais un framework c’est aussi :

Une communauté active qui utilise le framework et qui 20F 13 avantages, mais un framework c’est aussi : une communauté active qui utilise le framework et qui contribue en retour ; Une documentation de qualité et régulièrement mise à jour un code source maintenu par des développeurs attitrés ; Un code qui respecte les standards de programmation ; Un support à long terme garanti et des mises à jour qui ne cassent pas la compatibilité ; Les contre : Vous vous en doutez, avec autant d’avantages il y a forcément des inconvénients.

En effet, pour maîtriser un framework, il faut un temps apprentissage non négligeable. Chaque brique qui compose un framework a sa complexité propre qu’il vous faudra appréhender. Notez également que pour les frameworks les plus récents, tels que Symfony2 justement, il faut également être au courant des dernières nouveautés de PHP. Je pense notamment à la programmation orientée objet et aux namespaces. De plus, connaitre certaines bonnes pratiques telles que l’architecture MVC est un plus. Qu’est-ce que Symfony2 ? Symfony2 est donc un framework PHP. II est très populaire.

Cest un des frameworks les plus utilisés dans le monde, notamment dans les entreprises. Il est utilisé par Dailymotion par exemple ! La première version de Symfony est sortie en 2005 et est aujourd’hui toujours très utilisée. La deuxième version, que nous étudierons dans ce tutoriel, est sortie en août 2011. Elle est encore jeune, son développement a été fulgurant grâce à une communauté de développeurs dévoués. Bien que différente dans sa conce tian cette deuxième version est plus rapide et plus souple 30F 13 est l’un des meilleurs frameworks PHP au monde, est un framework français !

Il est édité par la société SensioLabs, dont le créateur est Fabien Potencier. Obtenir Symfony2 : Il existe de nombreux moyens d’obtenir Symfony2. Nous allons voir ici la méthode la plus simple : télécharger la distribution standard. Pour cela, rien de plus simple, rendez-vous sur le site de Symfony2, rubrique Download, et téléchargez la version « Symfony Standard (. zip) ». Symfony2 a quelques contraintes par rapport à votre configuration PHP. par exemple, il ne tourne que sur la version 5. 3. 2 ou supérieure de PHP.

Vous pouvez dès à présent exécuter Symfony2, félicitations ! Rendez-vous sur la page http://localhost/Symfony/web/app_dev. php, vous devriez avoir quelque chose ressemblant à la figure suivante. Requis : Si vous êtes sous Windows, PHP est bien installé mais Windows ne sait pas où le trouver, il faut juste le lui dire. Voici la démarche à suivre pour régler ce problème 1- Allez dans les paramètres système avancés (Démarrer > Panneau de configuration > Système et sécurité > Système Paramètres système avancés) ; 2- Cliquez sur le bouton Variables d’environnement… 3- Regardez dans le panneau Variables système ; 4- Trouvez l’entrée Path (vous devriez avoir à faire descendre l’ascenseur pour le trouver) ; 5- Double-cliquez sur l’entrée Path ; 6- Entrez votre répertoire PHP à la fin, sans oublier le point-virgule 😉 auparavant. Cest le répertoire dans lequel se t r php. exe. Par 4 3 redémarrer l’invite de commandes pour prendre en compte les changements. Si vous êtes sous Linux, vérifiez votre installation de PHP. Vous devez notamment avoir le paquet php5-cIi, qui est la version console de PHP.

Dans les deux cas, vérifiez après vos manipulations que le problème est bien résolu. Pour cela, exécutez à nouveau la commande php -v. Elle devrait alors vous afficher la version de PHP. L’architecture des fichiers Liste des répertoires: Ouvrez donc le répertoire dans lequel vous avez extrait les fichiers. Vous ouvez voir qu’il n’y a pas beaucoup de fichiers ici, seulement des répertoires. En effet, tout est bien rangé dans chaque répertoire, il nous faut donc comprendre ? quoi ils servent. En voici la liste : app, src, vendor, web.

Le répertoire lapp : Ce répertoire contient tout ce qui concerne votre site internet… sauf son code source. En fait, c’est simplement pour séparer le code source, qui fait la logique de votre site, du reste. Le reste, c’est ce répertoire /app. Et ce reste c’est : la configuration, le cache, les fichiers logs, etc. Ce sont des fichiers qui concernent l’entièreté de votre site, ontrairement aux fichiers de code source qui seront découpés par fonctionnalité de votre site. e répertoire /src : Voici enfin le répertoire dans lequel on mettra le code source ! Cest ici que l’on passera le plus clair de notre temps.

Dans ce répertoire, nous organiserons notre code en bundles, des briques de notre application, dont nous verrons la définition plus loin. Le répertoire /vendor : Ce répertoire contient toutes les bibliothèques externes à notre a ication. Dans ces bibliothèques e Symfonv2 ! Vous pouvez 3 application. Dans ces bibliothèques externes, j’inclus Symfony2 ! Vous pouvez arcourir ce répertoire, vous y trouverez des bibliothèques comme Doctrine, Twig, SwiftMailer, Le répertoire /web : Ce répertoire contient tous les fichiers destinés à vos visiteurs : images, fichiers CSS et JavaScript, etc.

II contient également le contrôleur frontal (app. php). Le contrôleur frontal : Le contrôleur frontal (front controller, en anglais) est le point d’entrée de votre application. C’est le fichier par lequel passent toutes vos pages. Dans Symfony2, le contrôleur frontal se situe dans le répertoire /web, il s’agit de app. php ou app_dev. php. L’architecture conceptuelle : Architecture MVC : MVC signifie « Modèle / Vue / Contrôleur Cest un découpage très répandu pour développer les sites internet, car il sépare les couches selon leur logique propre.

Parcours d’une requête dans Symfony2 1- Le visiteur demande la page /blog ; 2- Le contrôleur frontal reçoit la requête, charge le Kernel et la lui transmet ; 3- Le Kernel demande au Routeur quel contrôleur exécuter pour l’URL /blog. Ce Routeur est un composant Symfony2 qui fait la correspondance entre URL et contrôleurs, nous l’étudierons bien sûr dans un prochain chapitre. Le Routeur fait donc son travail, et dit au Kernel qu’il faut xécuter le contrôleur Sdz310g ; 4- Le Kernel exécute donc ce contrôleur.

Le contrôleur demande au modèle Article la liste des articles, puis la donne à la les pour qu’elle construise 6 3 HTML complète. Symfony2 et ses bundles Un bundle contient tout : contrôleurs, vues, modèles, classes personnelles, etc. Bref, tout ce qu’il faut pour remplir la fonction du bundle. Évidemment, tout cela est organisé en dossiers afin que tout le monde s’y retrouve. Création bundle : 123456- Choisir le namespace Choisir le nom Choisir la destination Choisir le format de configuration Choisir quelle structure générer Confirmez

LE ROUTAGE L’objectif du routeur est de dire à Symfony2 ce qu’il doit faire lorsque l’on appelle l’URL /hello-world (par exemple). Nous devons donc créer une route qui va dire : « Lorsque l’on est sur l’URL /helloworld, alors on appelle le contrôleur « Blog » qui va afficher un « Hello World » Création du fichier de routage : Les routes se définissent dans un simple fichier texte, que Symfony2 a déjà généré pour notre SdzBlogBundle. Usuellement, on nomme ce fichier Resources/config/routing. ml dans le répertoire du bundle. Ouvrez le fichier, et ajoutez cette route ? la suite de celle qui existe déjà • ans le répertoire Controller du bundle. Rappelez-vous : dans la route, on a dit qu’il fallait faire appel au contrôleur nommé « Blog ». Le nom des fichiers des contrôleurs doit respecter une convention très simple : il doit commencer par le nom du contrôleur, ici « Blog suivi du suffixe « Controller Au final, on doit donc créer le fichier src/Sdz/BIogBundIe/Controller/BlogController. php.

Essayons de comprendre rapidement ce fichier : Ligne 5 : on se place dans le namespace des contrôleurs de notre bundle. Rien de bien compliqué, suivez la structure des répertoires dans lequel se trouve le ontrôleur. Ligne 7 : notre contrôleur hérite de ce contrôleur de base, il faut donc le charger grâce au use. Ligne 8 : notre contrôleur va utiliser l’objet Response, il faut donc le charger grâce au use. Ligne 10 : le nom de notre contrôleur respecte le nom du fichier pour que l’autoload fonctionne. Ligne 12 : on définit la méthode indexAction().

N’oubliez pas de mettre le suffixe Action derrière le nom de la méthode. Ligne 14 : on crée une réponse toute simple. L’argument de l’objet Response est le contenu de la page que vous envoyez au visiteur, ici « Hello World ! puis on retourne cet objet. Création d’un Twig : C’est un script qui permet d’utiliser des templates, c’est-à-dire des fichiers qui ont pour but d’afficher le contenu de votre page HTML de façon dynamique sans PHP. Voici un exemple de comparaison entre un template simple en PHP (premier code) et un template en « langage Twig » (deuxième code). répertoire des templat 8 3 ‘un bundle se trouve dans dossier Resources/views. Créons notre propre répertoire Blog et créons notre template index. html. twig dans ce répertoire. Nous avons donc le fichier src/Sdz/BlogBundIe/Resources/views/Blog/ index. html. twig. Mettez ce code à l’intérieur : Appelons ce template depuis le contrôleur : Maintenant, retournez sur la page http://localhost/Symfony/web/app_dev. php/hello-world. Notre objectif : créer un blog : Tout au long de ce cours, nous construirons un blog.

Cela me permet d’utiliser des exemples cohérents entre eux et de vous montrer comment construire un blog de toutes pièces. Bien sûr, libre à vous d’adapter les exemples au projet que vous souhaitez mener, je vous y encourage, même ! e choix du blog n’est pas très original, mais il permet que l’on se comprenne bien : vous savez déj? ce qu’est un blog, vous comprendrez donc, en théorie, tous les xemples. Notre blog : Le blog que nous allons créer est très simple. En voici les grandes lignes : Nous aurons des articles auxquels nous attacherons des tags.

Nous pourrons lire, écrire, éditer et rechercher des articles. Nous pourrons créer, modifier et supprimer des tags. Au début, nous n’aurons pas de s stème de gestion des utilisateurs : nous devrons SdzBlogBundle_homepage dans Resources/config/routing. yml. Ainsi que tout ce qui concerne le bundle AcmeDemoBundle, un bundle de démonstration intégré dans la distribution standard de Symfony2 et dont nous ne nous servirons pas. Supprimez donc répertoire src/Acme ; La ligne 26 du fichier app/AppKernel. hp, celle qui active le bundle AcmeDemoBundle ($bundles[] = new ; Les 3 premières routes dans le fichier app/config/routing_dev. yml (_welcome, _demo_secured et _demo). LE ROUTEUR DE SYMFONY2 : Les routes de base: Créer une route avec des paramètres Les routes avancées : Nous avons ajouté la section requirements. Comme vous pouvez le voir, on utilise les expressions régulières pour déterminer les contraintes que doivent respecter les paramètres. Ici • Nd{4} veut dire « quatre chiffres à la suite » L’URL /blog/sdff/mon- weekend. html ne sera 0 3