Top Promos Apple Test Apple Antivirus Mac Dock Thunderbolt Sunology Comparatif iPhone Nettoyeur Mac

Articles

Divers

Symfony, ou comment coder plus confortablement

Par mika - Mis à jour le

Symfony, ou comment coder plus confortablement
Si vous codez en PHP depuis un moment, vous connaissez probablement la version 5 du langage et sa programmation orientée objet relativement inspirée de java. Et il vous est sûrement arrivé de rencontrer ce genre de situations :

- coder deux fois de suite la même fonction
- refaire la procédure de connexion a la base de données suite à un changement de serveur
- revenir dans votre code x mois après et ne plus rien comprendre

Avec Symfony, vous allez pouvoir oublier tous ces petits soucis !

Un FrameQuoi ?



Un Framework est un environnement de travail, une structure dont on utilise l'arborescence ainsi que la librairie très riche en fonctions plus ou moins utiles. De plus, avec Symfony, et certains autres Frameworks tels Ruby on Rails ou Jelix, des applications sont là pour vous permettre de générer la base de données, les classes de la partie modèle du MVC, l'application, les modules...

En bref, un Framework comme Symfony fait une partie du boulot à votre place, mais ce n'est pas tout. Il essaye aussi de rendre votre projet facilement portable d'un environnement de déploiement à l'autre.

Pourquoi utiliser ce Framework ?



Plusieurs raisons peuvent vous motiver à utiliser ce Framework.

Tout d'abord, utiliser Symfomy rend

votre code mieux organisé

. Symfony utilise une architecture bien particulière, et vous vous devez de vous y conformer ! Chaque type de composant doit être placé dans un répertoire particulier, ce qui fait qu'au final votre projet est bien ordonné. Voici un aperçu de l'organisation de Symfony.

- les applications sont placées dans un répertoire apps/, et sont composés de contrôleurs et de composants de présentation.
- le ou les fichiers css sont dans rangés dans le répertoire web/css
- les fichiers javascript vont dans web/js
- les images, etc.

Par conséquent, si vous reveniez sur votre projet après 6 mois d'interruption, vous retrouveriez facilement vos marques. De même, un autre développeur familier du Framework serait en mesure de travailler sur votre code très rapidement.

Une autre bonne raison d'utiliser Symfony est

la virtualisation de la base de données

. Symfony exploite la technologie OpenSource Propel pour vous permettre de construire les classes de vos bases, avec leurs jointures, en deux requêtes. Vous pouvez ainsi accéder aux éléments de la base de données sans écrire de requête SQL. Cela vous permet de vous assurer que votre projet n'est pas dépendant d'un type de base de données particulier.

Pour accéder aux données d'une table membre via un id passé en url, vous feriez comme ceci.

//on sélectionne l'objet par sa clé primaire (Pk: Primary Key)
$membre = MembrePeer::retrieveByPk($this->getRequestParameter('id'));

//affiche le nom et le prenom
echo $membre->getPrenom() . ' ' . $membre->getNom();


De même, pour effectuer un update de la table membre, vous feriez comme ceci.

//on sélectionne l'objet que l'on veut modifier
$membre= MembrePeer::retrieveByPk($this->getRequestParameter('id'));

//on met a jour le nom
$membre->setNom('Dupont');

//de même avec le prénom
$membre->setPrenom('Dupont');


Symfony utilise les fameux "getters/setters", chers aux programmeurs Java.

On remarquera que pour récupérer des valeurs provenant de formulaires, on utilise la méthode

$value = $this->getRequestParameter('le_nom_du_champ');


Et ce, quelque soit la méthode utilisée dans le formulaire (GET ou POST).

Sinon, un autre avantage de Symfony est

la génération des fichiers CRUD (Create, read, update, delete)

. Continuons avec notre exemple de table membre. Grâce à la ligne de commande suivante :

symfony propel-generate-crud frontend membre Membre


Symfony va vous générer les fichiers :

- actions/actions.class.php
- templates/createSuccess.php
- templates/editSuccess.php
- templates/listSuccess.php
- templates/showSuccess.php

En vous rendant à l'adresse adresse_de_votre_projet/membre/, vous verrez se lister les champs de la table membre, ainsi que des liens pour éditer, créer et afficher les enregistrements.

Enfin, dernier atout de ce Framework :

la simplification des URL

. Avec Symfony, les URLs ressemblent à Mon_projet/membre/create, plutôt qu'à index.php?pg=mb&action=create. L'url rewriting est géré en natif, et paramétrable via un fichier de configuration. Il est même possible d'utiliser un suffixe comme .html pour un meilleur référencement. De plus, vous n'avez pas à vous demander comment linker tel ou tel module. Une fonction le fait pour vous.

echo link_to("Créer un membre","membre/create");


Paroles, paroles et paroles...



Puisque quelques images valent bien quelques centaines des mots, vous pouvez télécharger un screencast dédié à l'utilisation de Symfony sur le site officiel de Symfony.

Oui, je le veux ...



Vous êtes convaincus et vous souhaitez vous y mettre ? Rien de plus facile. Tout d'abord, passez sur le site officiel du projet. Vous y trouverez toutes sortes d'informations quant à l'installation et l'utilisation de Symfony.

http://www.symfony-project.com/

En fait, on peut installer Symfony de deux façon : en utilisant la Sandbox ou Pear.

La Sandbox



Elle se présente comme une solution tout-en-un. Elle comprend les applications nécessaires à la génération du code, et l'arborescence de base d'un site.

Avantages :
- Mettez la Sandbox, ainsi que le fichiers fichiers d'installation de MAMP, LAMP et WAMP sur une clé USB, et vous avez un véritable environnement de travail nomade.
- Pas de véritable installation. Il suffit de tout dézipper dans le répertoire ad hoc de votre serveur.

Inconvénient :
- Le poids (pour chaque site vous aurez une copie des applications de Symfony)

Installation PEAR



Au début j'étais réticent à utiliser cette alternative, puis en voyant la simplicité d'utilisation et d'installation, j'ai opté pour cette solution.

Une fois votre PATH mis à jour de façon à inclure le dossier 'bin' du répertoire de votre installation de php 5, il suffit de quelques commandes dans votre terminal pour installer Symfony. Ensuite, il vous suffira de vous placer dans le bon répertoire et de taper dans le terminal

symfony init-project mon_projet


Ce qui générera l'intégralité de l'arborescence du nouveau site.

Avantages :
- Symfony peut être mise à jour directement via PEAR.
- Le poids. Les applications de Symfony ne sont qu'à un seul endroit.

Inconvénient :
- La mise à jour du PATH, et l'installation, rebuteront les moins geek d'entre vous.

Les instructions complètes d'installation sont disponibles à cette adresse :

http://www.symfony-project.com/content/download.html

Et le SAV ?



Symfony, bien qu'étant un projet français, dispose d'un forum et d'une documentation en anglais. Toutefois, un groupe de discussion en français existe sur Google. Vous pouvez le trouver à cette adresse :

http://groups.google.com/group/symfony-fr?lnk=li

N'hésitez pas à vous y inscrire !

Conclusion



Symfony est un vrai régal pour les programmeurs. Il rend le PHP beaucoup plus confortable, l'ajax plus abordable, l'optimisation du référencement (url rewriting) plus simple, l'internationalisation (i18n) triviale, etc. C'est un vrai régal pour les programmeurs.

Aprés avoir étudié plusieurs Frameworks dont Prado, Jelix et Zend, je préfère Symfony pour les raisons suivantes : quelques lignes de commandes génèrent une partie du code, une bonne documentation, une grande facilité de prise en main, et le yml,

Faites-vous votre propre opinion en téléchargeant la Sandbox !

Vu que j'utilise Symfony quasiment au quotidien sur Windows et Mac (installation PEAR), je peux répondre à la majorité de vos questions dans les réactions.

Une majorité numérique à 15 ans en Europe ! Est-ce vraiment possible ?

Une majorité numérique à 15 ans en Europe ! Est-ce vraiment possible ?

Sept ans après son premier discours, le Président de la République à de nouveau pris la parole à la Sorbonne pour son...

Meta double ses profits grâce à Facebook, mais plonge en Bourse !

Meta double ses profits grâce à Facebook, mais plonge en Bourse !

En cette fin de mois, les entreprises techs continuent de dévoiler leurs résultats trimestriels. Ainsi Meta a publié hier de très...

Apple, accusée d'utiliser des minerais exploités illégalement au Congo !

Apple, accusée d'utiliser des minerais exploités illégalement au Congo !

Quelques jours après la journée de la terre, la réputation verte d'Apple se trouve entachée par de graves accusation de la...

De nouvelles sessions "Today at Apple" pour séduire les PME !

De nouvelles sessions "Today at Apple" pour séduire les PME !

Apple vient de dévoiler une série de sessions Today at Apple destinées aux patrons de petites entreprises et aux entrepreneurs...

La CNIL a enregistré un nombre record de plaintes en 2023

La CNIL a enregistré un nombre record de plaintes en 2023

La Commission nationale informatique et libertés a enregistré un nombre record de plaintes en 2023. Marquée notamment par l'augmentation...

Google Maps de retour dans la recherche Google ?

Google Maps de retour dans la recherche Google ?

Ce matin, une petite surprise est apparue chez certains utilisateurs français (mais pas tous), le retour de Google Maps dans la recherche Google.

Le pack Wi-Fi 7 Mesh TP-Link Deco BE85 en promo ! 4 Gb/s en Wi-Fi !

Le pack Wi-Fi 7 Mesh TP-Link Deco BE85 en promo ! 4 Gb/s en Wi-Fi !

Si vous désirez vous offrir un réseau sans fil performant couvrant une très grande surface, les kit Wi-Fi Mesh sont à ce jour la...

Trop incitatif, TikTok lite sera bientôt suspendu en Europe

Trop incitatif, TikTok lite sera bientôt suspendu en Europe

En définitive, le mode de fonctionnement de la dernière application de ByteDance (la maison mère chinoise du réseau social presque...

Commentaires

Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

26 commentaires
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.