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 conférence à Nantes pour les utilisateurs francophones de FileMaker !

Une conférence à Nantes pour les utilisateurs francophones de FileMaker !

Le mois de juin n'est pas réservé aux annonces d'Apple. En effet, se tiendra également la conférence des développeurs...

Un séjour à l'Apple Park et des AirPods Max pour le Swift Student Challenge 2024

Un séjour à l'Apple Park et des AirPods Max pour le Swift Student Challenge 2024

Juste après l'annonce de la WWDC 2024 et comme de coutume, Apple vient de dévoiler les résultats de son Swift Student Challenge.

Face aux piratages massifs, les messageries des ENT (collèges et lycées) sont suspendues !

Face aux piratages massifs, les messageries des ENT (collèges et lycées) sont suspendues !

Avec plus de 300 attaques enregistrées ces derniers jours sur les Espaces Numériques de Travail des collèges et lycées...

Ce patch doublé d'une IA redonne la parole à ceux qui ont perdu la voix

Ce patch doublé d'une IA redonne la parole à ceux qui ont perdu la voix

Les chercheurs de l'Université de Californie à Los Angeles (UCLA) viennent de déclarer avoir mis au point un patch électronique...

Phil Schiller, retraité et défenseur de la vision de Steve Jobs

Phil Schiller, retraité et défenseur de la vision de Steve Jobs

Alors que les enquêtes se multiplient contre Apple et l'App Store, un seul homme semble se démarquer des autres ! Non ce n'est pas Batman,...

Free lance une nouvelle Freebox Pop avec du Wi-Fi 7 !

Free lance une nouvelle Freebox Pop avec du Wi-Fi 7 !

Après la Freebox Ultra, Free propose désormais la Freebox Pop en version compatible avec le Wi-Fi 7, et ce sans hausse du tarif.

Elon Musk va activer Grok pour tous les abonnés de X Premium

Elon Musk va activer Grok pour tous les abonnés de X Premium

Depuis une dizaine de jours, Grok, l'IA générative d'Elon Musk, est disponible en open source. À présent, la société...

La WWDC 2024 sera résolument dédiée à l'IA (premier teasing d'Apple)

La WWDC 2024 sera résolument dédiée à l'IA (premier teasing d'Apple)

Il y a moins d'une heure, Apple a confirmé que sa 35e WWDC se tiendra du lundi 10 juin au vendredi 14 juin 2024. Et il semblerait qu'une annonce...

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.