Mac4Ever Refurb Store Guide d'achat Apple - Des conseils sur toute la gamme Apple Débuter sur Mac
Mac4Ever.com - Toute l\'actualité Apple, iPhone, iPad, iPod et Mac - Mise à jour quotidienne
Actu Dossiers Forum Photos/Podcasts Petites Annonces
Icône recherche
Annuler la recherche
4537 connectés

Symfony, ou comment coder plus confortablement

Programmeurs de tous pays, unissez-vous !

Modérateurs : Odibi, Grumff, Bicus, Nix, Linschn, Phénix, yellowiscool

Message par mika le 10/11/06, 20:20

[html]<div class="imgRight"><img class="border1px imgShadow imgArticle" align="middle" src="http://v4.mac4ever.com/images-v3-articles/668_3844.jpg" alt="Symfony, ou comment coder plus confortablement" /><div class="imgTitle"><span>" /></div>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 :<br />
<br />
- coder deux fois de suite la même fonction<br />
- refaire la procédure de connexion a la base de données suite à un changement de serveur<br />
- revenir dans votre code x mois après et ne plus rien comprendre<br />
<br />
Avec Symfony, vous allez pouvoir oublier tous ces petits soucis !<br />
<br />
<div class="title1"><span>Un FrameQuoi ?</span></div><br />
<br />
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...<br />
<br />
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. <br />
<br />
<div class="title1"><span>Pourquoi utiliser ce Framework ?</span></div><br />
<br />
Plusieurs raisons peuvent vous motiver à utiliser ce Framework. <br />
<br />
Tout d'abord, utiliser Symfomy rend <span class="title2">votre code mieux organisé</span>. 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. <br />
<br />
- les applications sont placées dans un répertoire <span class="txtQuote"><b>« </b>apps/<b> »</b></span>, et sont composés de contrôleurs et de composants de présentation.<br />
- le ou les fichiers css sont dans rangés dans le répertoire <span class="txtQuote"><b>« </b>web/css<b> »</b></span><br />
- les fichiers javascript vont dans <span class="txtQuote"><b>« </b>web/js<b> »</b></span><br />
- les images, etc.<br />
<br />
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.<br />
<br />
Une autre bonne raison d'utiliser Symfony est <span class="title2">la virtualisation de la base de données</span>. Symfony exploite la technologie OpenSource <b>Propel</b> 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.<br />
<br />
Pour accéder aux données d'une table <b>membre</b> via un id passé en url, vous feriez comme ceci.<br />
<br />
<div class="texte codebox">//on sélectionne l'objet par sa clé primaire (Pk: Primary Key)<br />
$membre = MembrePeer::retrieveByPk($this->getRequestParameter('id')); <br />
<br />
//affiche le nom et le prenom <br />
echo $membre->getPrenom() . ' ' . $membre->getNom();<br />
</div><br />
<br />
De même, pour effectuer un update de la table <b>membre</b>, vous feriez comme ceci.<br />
<br />
<div class="texte codebox">//on sélectionne l'objet que l'on veut modifier<br />
$membre= MembrePeer::retrieveByPk($this->getRequestParameter('id'));<br />
<br />
//on met a jour le nom<br />
$membre->setNom('Dupont');<br />
<br />
//de même avec le prénom<br />
$membre->setPrenom('Dupont');<br />
</div><br />
<br />
Symfony utilise les fameux "getters/setters", chers aux programmeurs Java.<br />
<br />
On remarquera que pour récupérer des valeurs provenant de formulaires, on utilise la méthode<br />
<br />
<div class="texte codebox">$value = $this->getRequestParameter('le_nom_du_champ');</div><br />
<br />
Et ce, quelque soit la méthode utilisée dans le formulaire (GET ou POST).<br />
<br />
Sinon, un autre avantage de Symfony est <span class="title2">la génération des fichiers CRUD (Create, read, update, delete)</span>. Continuons avec notre exemple de table <i>membre</b>. Grâce à la ligne de commande suivante : <br />
<br />
<div class="texte codebox">symfony propel-generate-crud frontend membre Membre</div><br />
<br />
Symfony va vous générer les fichiers :<br />
<br />
- actions/actions.class.php<br />
- templates/createSuccess.php<br />
- templates/editSuccess.php<br />
- templates/listSuccess.php<br />
- templates/showSuccess.php<br />
<br />
En vous rendant à l'adresse <i>adresse_de_votre_projet/membre/</i>, vous verrez se lister les champs de la table <b>membre</b>, ainsi que des liens pour éditer, créer et afficher les enregistrements.<br />
<br />
Enfin, dernier atout de ce Framework : <span class="title2">la simplification des URL</span>. Avec Symfony, les URLs ressemblent à <span class="txtQuote"><b>« </b>Mon_projet/membre/create<b> »</b></span>, plutôt qu'à <span class="txtQuote"><b>« </b>index.php?pg=mb&action=create<b> »</b></span>. 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.<br />
<br />
<div class="texte codebox">echo link_to("Créer un membre","membre/create");</div><br />
<br />
<div class="title1"><span>Paroles, paroles et paroles...</span></div><br />
<br />
Puisque quelques images valent bien quelques centaines des mots, vous pouvez télécharger un screencast dédié à l'utilisation de Symfony sur le <a href="http://downloads.symfony-project.com/demo/cart/cart.mov" target="_blank">site officiel de Symfony</a>.<br />
<br />
<div class="title1"><span>Oui, je le veux ...</span></div><br />
<br />
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.<br />
<br />
<a class="l2" href="http://www.symfony-project.com/" target="_blank">http://www.symfony-project.com/</a><br />
<br />
En fait, on peut installer Symfony de deux façon : en utilisant la Sandbox ou Pear.<br />
<br />
<span class="title2">La Sandbox</span><br />
<br />
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.<br />
<br />
<u>Avantages :</u><br />
- 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.<br />
- Pas de véritable installation. Il suffit de tout dézipper dans le répertoire ad hoc de votre serveur.<br />
<br />
<u>Inconvénient :</u><br />
- Le poids (pour chaque site vous aurez une copie des applications de Symfony)<br />
<br />
<span class="title2">Installation PEAR</span><br />
<br />
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.<br />
<br />
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<br />
<br />
<div class="texte codebox">symfony init-project mon_projet</div><br />
<br />
Ce qui générera l'intégralité de l'arborescence du nouveau site.<br />
<br />
<u>Avantages :</u><br />
- Symfony peut être mise à jour directement via PEAR.<br />
- Le poids. Les applications de Symfony ne sont qu'à un seul endroit.<br />
<br />
<u>Inconvénient :</u><br />
- La mise à jour du PATH, et l'installation, rebuteront les moins geek d'entre vous.<br />
<br />
Les instructions complètes d'installation sont disponibles à cette adresse :<br />
<br />
<a class="l2" href="http://www.symfony-project.com/content/download.html" target="_blank">http://www.symfony-project.com/content/download.html</a><br />
<br />
<div class="title1"><span>Et le SAV ?</span></div><br />
<br />
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 :<br />
<br />
<a class="l2" href="http://groups.google.com/group/symfony-fr?lnk=li" target="_blank">http://groups.google.com/group/symfony-fr?lnk=li</a><br />
<br />
N'hésitez pas à vous y inscrire !<br />
<br />
<div class="title1"><span>Conclusion</span></div><br />
<br />
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.<br />
<br />
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,<br />
<br />
Faites-vous votre propre opinion en téléchargeant la Sandbox !<br />
<br />
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.<br />
[/html]
SuperCapote sur supercapote.com

Le mkframework, un framework php simple et sécurisé http://mkdevs.com
Avatar de l’utilisateur
mika
Mac4Ever's Killer
 
Message(s) : 1780
Inscription : 25/05/04, 14:44
Localisation : Devant son Imac Intel en dual screen

Super !

Message par Contributeur le 18/11/06, 23:27

Bon article :)
Par contre, je ne pense pas avoir besoin des tels outils. Mais sites en php sont déjà bien rangés, et facilement modifiables (poo, templates).

Par contre, pour les projet à plusieurs codeurs, ça donne quoi ?
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Et les performances ?

Message par Contributeur le 19/11/06, 0:54

Généralement, "plus facile à coder" veut aussi dire "moins performant"... Je dis ça sans avoir testé, mais si la programmation devient "plus facile", elle devient peut-être aussi "moins efficace".

J'attends l'avis des testeurs ^^
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Reponse de bibi

Message par Contributeur le 19/11/06, 12:05

applemac > pour la programmation a plusieurs pas de soucis: le site se construit autour d'une structure

Appli
-module 1
-action 1.1
-action 1.2
-module 2
...

Donc pas de soucis a coder a plusieurs, chacun fait son module dans son coin, il est appelable facilement avec un lien du type Ton_url/module_de_toto/action

Phénix > pour l'utiliser, oui il est performant pour les projets, pas pour un hello world :)
note: un element que je n'ai pas abordé ici, est la notion de cache de l'appli, c'est a dire que symfony génère a partir des fichiers de conf yml, des objets... des autres fichiers php pour optimiser les performances au maximum :)
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Kayuko utilise le framework Jelix

Message par Contributeur le 19/11/06, 14:35

Après avoir effectué différent test sur les différents framework, et surtout pour une question de performance, notre choix pour notre comparateur de prix Kayuko s’est porté sur Jelix.

http://www.kayuko.com/blog/2006/11/08/64-kayuko-nouvelle-version-est-arrive
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Comme le bon vin...

Message par Contributeur le 19/11/06, 15:19

Guy-Philippe> tu as trouvé symfony en mode prod (bcp de changements entre le mode prod et dev au niveau perfs) avec le cache activé.... plus lent que jelix ?

Un truc qui m'embete avec jelix, c'est la modelisation de la base de donnée, avec symfony, un fichier yml, 3 commandes d'affilés et on a notre table en BDD + les classes de nos tables. Avec jelix faut se taper les creation de table ("create table...") pourquoi ne pas incorporer un propel ou Doctrine dans jelix ? peut etre pour la prochaine version ?

Sinon dans http://www.jelix.org/articles/tutoriel/config-base, le lien vers l'utilisation DAO (qui m'interesse) est cassé :(

Les liens DAO: http://www.jelix.org/articles/tutoriel/utiliser-dao
et formulaire: http://www.jelix.org/articles/tutoriel/formulaire-de-news
ne marchent pas :(

Mais sinon, je continuerai a observer jelix, je ne suis pas fermé a l'utilisation d'autres framework, du moment qu'ils font au moins ca:
-separation modele, vue, controlleur (MVC)
-virtualise l'acces en base de donnée via des objets (permettant du jour au lendemain de changer de base)
-gère la securité tout seul
-url simplifiées
-cache
-documentation
-modeliseur de BDD (dans les deux sens)
-un generateur de code (applis, modules, BDD, securité...)
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Super

Message par Contributeur le 19/11/06, 15:35

Merci pour l'info sur ce framework! Je suis un inconditionel de php, et j'avais été touché dans mon orgeuil par Ruby On Rail. Qu'a cela ne tienne! je vais donc essayer ce framework php, voir un peu tout ca. Merci bcp pour l'info.
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

nautilebleu

Message par Contributeur le 19/11/06, 15:38

Niveau perfs, pas mal de gens ont un peu peur de Propel, la partie qui gère la base de données façon objet. Des benchs sur le tests de symfony semblaient montrer d'ailleurs que Symfony est beaucoup moins performants que Ror lui même complètement largué par Django.

Ceci dit, l'adoption récente par Yahoo! de Symfony pour son outils de bookmarks sociaux lève cette crainte. Yahoo! bookmarks gère quand même 12 millions d'utilisateurs !

Pour la gestion à plusieurs, Symfony invite pas mal à utiliser un SCM tels que subversion, idéal pour le dév à plusieurs !
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Jelix version optimisée !

Message par Contributeur le 19/11/06, 15:40

Je ne suis pas le développeur de Kayuko, mais je sais que notre chef de projet allait s'orienter vers symphony mais au dernier moment a préféré Jelix. De très gros sites portent leurs sites sous ce framework. Une version Optimized spécial serveur de prod est en cours de développement également.

Voir l'article du créateur de Jelix Laurent Jouanneau
http://www.ljouanneau.com/blog/2006/11/08/612-kayuko-powered-by-jelix

N'hésite pas à leur signaler sur leur forum tes remarques ;)
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

coté perf pas de soucis

Message par Contributeur le 19/11/06, 22:04

Juste pour ceux qui se sont posé des questions de perfs, juste pour signaler que le dernier site yahoo : yahoo bookmarks est développer sur ... symfony :)
D'autre part le nombres de participants au projet ne cesse de croitre et le niveau des participants est très surprenant les idées fusent et les évolutions sont rapide (parfois trop). Enfin faite un tour sur la partie documentation, énorme maintenant version par version et en plus aussi fournis sur le wiki, le forum, le livre, la newsletter !!!

http://linuxfr.org/2006/11/01/21559.html
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Magnifique

Message par Contributeur le 20/11/06, 17:21

Je l'ai étudié il y a peu.
Il est effectivement impressionnant !
Seul bémol : Tellement complet qu'il faut la semaine pour le maitriser. Mais ça vaut le coup.
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

@Magnifique

Message par Contributeur le 20/11/06, 22:39

J'ai 13 ans et je travail sur un mac que mon père m'a offert à noël dernier.
Je trouve qu'une semaine tu exagères parceque j'ai passé deux jours à pour faire mon premier site en rails puis un troisème pour créer un autre site et bien maitiser l'application.
Bon c'était trois jours complets c'est vrai, certainement que de ton coté tu y a passé une semaine mais tu ne code que le soir aprés ton boulot.
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Petite notes

Message par Contributeur le 21/11/06, 22:47

Salut a tous, une chose a rajouter
Pour pouvoir utiliser les fichiers yml, commencez par verifier en faisant un symfony -T la présence de deux lignes "propel-convert-yml-shema" et "propel-convert-xml-shema"
Si vous insallez via pear,
installer avec "pear install symfony/symfony-beta"
et pour la sandbox, telechargez la version alpha
C'est tout :)
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

symfony et flash

Message par Contributeur le 03/12/06, 13:05

et quid de l'utilisation avec amfphp ?
(cakephp propose déjà quelque chose).
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

symfony et flash

Message par Contributeur le 31/12/06, 15:49

"et quid de l'utilisation avec amfphp ?"
> Je ne sais pas, pour repondre a cette question il vaudrait mieux demander sur le groupe symfony-fr
Avatar de l’utilisateur
Contributeur
Vénérable Gros - Admin
 
Message(s) : 10997
Inscription : 17/11/03, 0:52

Suivant

Retour vers Discussions générales entre développeurs

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)

Conseils d'achat

  • Macintosh

  • iPhone, iPad & iPod

iMac 27" 5k Indicateur rouge Informations 06/2017 2099 € L'iMac 27" (Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3, GPU dédié et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
iMac 21,5" 4k Indicateur rouge Informations 06/2017 1499 € L'iMac 21,5" (Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3, GPU dédié et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
Apple TV 4k Indicateur vert Informations 09/2017 199 € L'Apple TV 4k est une petite évolution de l'Apple TV pour les téléviseurs 4k. Il gère le HDR, le HDMI 2a et tous les codecs récents. Si vous avez une télévision OLED 4k, il s'agit du modèle idéal. Son prix est raisonnable par rapport à la version HD, qui reste au catalogue.
iMac Indicateur rouge Informations 06/2017 1299 € L'iMac 21,5" (non Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3 et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
iMac Pro Indicateur vert Informations 12/2017 5499 € L'iMac Pro est actuellement le Mac le plus puissant du marché. Il ne sera pas renouvelé avant une bonne année, sauf surprise. N'hésitez pas à consulter nos tests et nos vidéo avant de vous décider ! A noter qu'Apple va sortir un Mac Pro courant 2018 (ou 2019), donc si vous n'êtes pas trop pressé, il sera + modulaire...
Mac Mini Indicateur vert Informations 10/2018 899 € Le Mac mini a été mis à jour fin 2018 avec un tout nouveau CPU à 4 coeurs. Pas de mise à jour prévue avant un moment, vous pouvez acheter sans crainte !
Mac Pro Indicateur rouge Informations 10/2013 3339 € Apple a annoncé un nouveau Mac Pro courant 2018 (voire 2019), plus modulaire et moins fermé que la version actuelle. Dans tous les cas, surtout n'achetez pas les modèles "tube" datant de 2013 et désormais assez dépassés.
MacBook Pro 13" Indicateur vert Informations 07/2018 1499 € Le MacBook Pro 13" a été mis à jour le 12 juillet 2018 avec une nouveauté de taille : on passe de 2 à 4 coeurs, soit un doublement de la puissance CPU ! La partie GPU gagne 15% et le SSD peut grimper à 2To. Si les prix restent inchangés, les options sont toujours facturées très chères... Ces machines ne seront pas renouveler avant mi-2019. N'oubliez pas de regarder du côté du Refurb si votre budget est trop serré !
MacBook Pro 15" Indicateur vert Informations 07/2018 2799 € Le MacBook Pro 15" a été mis à jour le 12 juillet 2018 avec une nouveauté de taille : on passe de 4 à 6 coeurs, soit un bon de performances jamais vu d'une génération à l'autre ! La partie GPU n'évolue pas vraiment mais le SSD peut grimper à 4To. Si les prix restent inchangés, les options sont toujours facturées très chères, presque 8000€ pour le modèle ultime ! Ces machines ne seront pas renouvelées avant mi-2019. N'oubliez pas de regarder du côté du Refurb si votre budget est trop serré !
MacBook Air Indicateur vert Informations 10/2018 1349 € Le MacBook Air a fait son grand retour après 4 ans sans mise à jour ! Vous pouvez acheter sans crainte (mais lisez bien notre test !)
MacBook Indicateur rouge Informations 06/2017 1499 € Le MacBook a été mis à jour le 5 juin 2017, avec peu de nouveautés, en dehors du passage à Kaby-Lake. Difficile de savoir si Apple gardera cette machine au catalogue depuis la sortie du nouveau MacBook Air...
Apple TV 2015 Indicateur vert Informations 10/2015 159 € L'Apple TV 2015 est sortie fin 2015 et Apple le garde au catalogue malgré l'arrivée de la version 4k. Avec en prime, une petite baisse de prix ! Si vous n'avez pas de TV 4k, cela reste une bonne affaire.
À découvrir sur Mac4Ever
b 1  b 2 
app
A propos | Mentions légales | Contacts | Emploi | RSS | Apps