<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Totalement Geek ! &#187; symfony</title>
	<atom:link href="http://totalement.geek.oupas.fr/article/tag/symfony/feed" rel="self" type="application/rss+xml" />
	<link>http://totalement.geek.oupas.fr</link>
	<description>... ou pas.</description>
	<lastBuildDate>Tue, 29 Nov 2011 09:54:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Symfony: Mettre ses tables en UTF8 avec Doctrine (même les plugins)</title>
		<link>http://totalement.geek.oupas.fr/article/2009/06/29/symfony-mettre-ses-tables-en-utf8-avec-doctrine-meme-les-plugins</link>
		<comments>http://totalement.geek.oupas.fr/article/2009/06/29/symfony-mettre-ses-tables-en-utf8-avec-doctrine-meme-les-plugins#comments</comments>
		<pubDate>Mon, 29 Jun 2009 19:06:10 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://totalement.geek.oupas.fr/?p=184</guid>
		<description><![CDATA[Pour mettre ses tables en UTF8 avec Doctrine et le framewok Symfony, rien de plus simple. Tout en haut de votre(vos) schema.yml, ajoutez les lignes suivantes: options: collate: utf8_unicode_ci charset: utf8 Malheureusement, les fichiers schema.yml des plugins ne seront pas affecté car il faut que ce bout de code soit répété en haut de chaque [...]]]></description>
			<content:encoded><![CDATA[<p>Pour mettre ses tables en UTF8 avec Doctrine et le framewok Symfony, rien de plus simple.</p>
<p>Tout en haut de votre(vos) schema.yml, ajoutez les lignes suivantes:</p>
<pre>options:
  collate: utf8_unicode_ci
  charset: utf8</pre>
<p>Malheureusement, les fichiers schema.yml des plugins ne seront pas affecté car il faut que ce bout de code soit répété en haut de chaque schema.yml.</p>
<p>Heureusement, <a href="http://borreli.com/" target="_blank">[MA]Pascal</a> m&#8217;a donné une astuce de sioux qui permet de résoudre ce problème. Il suffit d&#8217;utiliser l&#8217;héritage des tables dans Doctrine. Par exemple, voici ce que ca donnerait pour le plugin sfDoctrineGuardPlugin:</p>
<pre>sfGuardGroupUtf8:
  inheritance:  { extends: sfGuardGroup, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardGroupPermissionUtf8:
  inheritance:  { extends: sfGuardGroupPermission, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardPermissionUtf8:
  inheritance:  { extends: sfGuardPermission, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardRememberKeyUtf8:
  inheritance:  { extends: sfGuardRememberKey, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardUserUtf8:
  inheritance:  { extends: sfGuardUser, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardUserGroupUtf8:
  inheritance:  { extends: sfGuardUserGroup, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }

sfGuardUserPermissionUtf8:
  inheritance:  { extends: sfGuardUserPermission, type: simple }
  options:      { collate: utf8_unicode_ci, charset: utf8 }</pre>
<p><a href="http://borreli.com/" target="_blank">[MA]Pascal</a> me disait même qu&#8217;il étendait les fonctionnalités des plugins de cette façon, mais je ne sais pas dans quelle mesure on peut étendre une classe d&#8217;un plugin et espérer que cela fonctionne encore&#8230;</p>
<p>[MA]Pascal, si tu passes par là et si tu veux bien nous expliquer :p</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2009/06/29/symfony-mettre-ses-tables-en-utf8-avec-doctrine-meme-les-plugins/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Symfony: bench des ORM Propel et Doctrine</title>
		<link>http://totalement.geek.oupas.fr/article/2009/02/14/symfony-bench-des-orm-propel-et-doctrine</link>
		<comments>http://totalement.geek.oupas.fr/article/2009/02/14/symfony-bench-des-orm-propel-et-doctrine#comments</comments>
		<pubDate>Sat, 14 Feb 2009 14:01:30 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[planet libre]]></category>
		<category><![CDATA[propel]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://totalement.geek.oupas.fr/?p=150</guid>
		<description><![CDATA[Symfony, pour ceux qui ne connaissent pas encore, est un framework PHP puissant et français, développé par Sensio Labs. Contrairement à d&#8217;autres framework qui réinventent la roue, symfony s&#8217;appuie sur des librairies externes qui ont fait leur preuve. C&#8217;est précisément le cas pour l&#8217;ORM. Dans ses premières versions, symfony n&#8217;intégrait que Propel et le changement [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony, pour ceux qui ne connaissent pas encore, est un framework PHP puissant et français, développé par Sensio Labs.</p>
<p>Contrairement à d&#8217;autres framework qui réinventent la roue, symfony s&#8217;appuie sur des librairies externes qui ont fait leur preuve. C&#8217;est précisément le cas pour l&#8217;<a href="http://fr.wikipedia.org/wiki/Mapping_objet-relationnel" target="_blank">ORM</a>.</p>
<p>Dans ses premières versions, symfony n&#8217;intégrait que <a href="http://propel.phpdb.org/" target="_blank">Propel</a> et le changement d&#8217;ORM était relativement difficile, malgré l&#8217;existence d&#8217;un plugin <a href="http://www.doctrine-project.org/" target="_blank">Doctrine</a>, car certains outils du framework, notament l&#8217;Admin Generator, s&#8217;appuyait uniquement sur Propel.</p>
<p>Depuis la version 1.1, Propel est un plugin et ne fait plus parti du core de symfony. Depuis la version 1.2, l&#8217;Admin Generator peut utiliser indifféremment Propel ou Doctrine. C&#8217;est une très bonne nouvelle pour la communauté. Du coup, chaque développeur peut choisir l&#8217;ORM qui lui convient le mieux&#8230; mais aussi se poser la question fatidique &laquo;&nbsp;Quel est le meilleur ORM ?&nbsp;&raquo;</p>
<p>Cette question, je me la suis, moi-même posée.</p>
<p>Pour y répondre, il faut prendre en compte plusieurs points (liste non exhaustive et non ordonnée):</p>
<ul>
<li>la facilité d&#8217;apprentissage</li>
<li>la rapidité de développement</li>
<li>les capacités offertes par l&#8217;ORM (vs les besoins qu&#8217;on a)</li>
<li>la rapidité d&#8217;exécution</li>
</ul>
<p>Et c&#8217;est sur ce dernier point (pas forcément le plus important) que je suis me suis penché car j&#8217;ai lu à divers endroits que Doctrine était sacrément plus lent que Propel.</p>
<p>J&#8217;ai donc commencé à faire quelques benchmark. Ou plutôt une &laquo;&nbsp;plateforme&nbsp;&raquo; de benchmark qui n&#8217;attend que vous pour être complétée. En effet:</p>
<ul>
<li>étant débutant avec symfony, propel et doctrine, je ne peux garantir que tout soit bien optimisé, j&#8217;ai donc besoin de l&#8217;aide de demi-dieu de symfony et/ou propel et/ou doctrine</li>
<li>à plusieurs nous arriverons mieux à faire un benchmark suffisamment complet et représentatif du type de requête utilisé dans un site web.</li>
</ul>
<p>J&#8217;ai donc publié le code sur googlecode et l&#8217;accès au svn vous sera ouvert sur simple demande (mail/msn/gtalk de contact en haut à droite de ce blog).</p>
<p>url du projet: <a href="http://benchsymfonyorm.googlecode.com" target="_blank">http://benchsymfonyorm.googlecode.com</a></p>
<p>Le projet contient un répertoire pour chaque ORM avec, à l&#8217;intérieur, un projet symfony.</p>
<p>J&#8217;ai séparé chaque ORM dans un projet différent car l&#8217;utilisation de Propel et Doctrine pourrait fausser les résultats.</p>
<p>Les benchs sont tous dans des task afin que le serveur web n&#8217;influe pas sur les résultats.</p>
<p>Les remarques <strong>constructives</strong> sont évidemment les bienvenues. Les trolls velus totalement interdits et carrément supprimés des commentaires s&#8217;ils montrent le bout de leur nez.</p>
<p>Comme dit plus haut, je ne prétends pas avoir faire un système parfait et les améliorations sont donc les bienvenues&#8230; en fait, c&#8217;est un peu le but de ce projet :)</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2009/02/14/symfony-bench-des-orm-propel-et-doctrine/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Frameworks PHP</title>
		<link>http://totalement.geek.oupas.fr/article/2007/05/22/frameworks-php</link>
		<comments>http://totalement.geek.oupas.fr/article/2007/05/22/frameworks-php#comments</comments>
		<pubDate>Tue, 22 May 2007 09:03:00 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[planet libre]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://tg.mattlab.info/?p=12</guid>
		<description><![CDATA[Moi qui ne jurais que sur le Zend Framework depuis sa toute première version beta, alors que la communauté française se créait petit à petit et, enfin, alors que la version finale ne va pas tarder à pointer le bout de son nez (la 0.9.3 est sorti il y a peu de temps), voilà que [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://totalement.geek.oupas.fr/wp-content/uploads/2007/12/php.gif" alt="php" />Moi qui ne jurais que sur le <a hreflang="en" href="http://framework.zend.com/">Zend Framework</a> depuis sa toute première version beta, alors que <a hreflang="fr" href="http://www.z-f.fr/">la communauté française</a> se créait petit à petit et, enfin, alors que la version finale ne va pas tarder à pointer le bout de son nez (la 0.9.3 est sorti il y a peu de temps), voilà que je m&#8217;intéresse aux autres framework php.  J&#8217;ai regardé un peu ce que je trouvais et qui répondait au doux nom de <em>framework php</em> et j&#8217;en ai trouvé plein. Voici les <em>principaux</em> par ordre alphabétique:</p>
<ul>
<li><a hreflang="en" href="http://cakephp.org/">CakePHP</a>, dont les numéros de version à rallonge sont une source de franche poilade pour tout mon boulot (la dernière version stable est la 1.1.15.5144). J&#8217;avais essayé, il y a quelques mois, de dompter la bête&#8230; sans succès.</li>
<li><a hreflang="en" href="http://codeigniter.com/">CodeIgniter</a>, comme CakePHP, j&#8217;avais essayé, sans succès, de comprendre ce framework.</li>
<li><a hreflang="fr" href="http://www.jelix.org/">Jelix</a>, lancé par Laurent Jouanneau, un framework français qui à l&#8217;air plutot interressant mais dont la documentation est pauvre et incomplète alors que la version 1.0 beta2.1 vient de sortir.</li>
<li><a hreflang="en" href="http://www.symfony-project.com/">Symfony</a>, développé par une société française&#8230; en anglais. la communauté est assez grande. Tout comme ses camarades CakePHP et CodeIgniter, impossible de comprendre quoi que ce soit à ce framework il y a quelques mois.</li>
<li><a hreflang="en" href="http://www.phpontrax.com/">PHP On Trax</a>, développé dans l&#8217;optique de faire un <a hreflang="en" href="http://www.rubyonrails.com/">Ruby On Rails</a> avec PHP.</li>
<li><a hreflang="en" href="http://seagull.phpkitchen.com/">Seagull</a>, non testé</li>
<li><a hreflang="en" href="http://framework.zend.com/">Zend Framework</a>, développé par <a hreflang="en" href="http://www.zend.com/">Zend</a>, <em>The PHP Company</em>.</li>
<li>Pleins d&#8217;autres&#8230;</li>
</ul>
<p>Je n&#8217;ai pas du tout testé Jelix à cause de sa documentation à trou. PHP On Trax non plus: je n&#8217;aime pas <acronym title="Ruby On Rails">RoR</acronym>, il y a peu de chance pour que PHP On Trax me plaise. Pas plus pour Seagull dont le nom ne m&#8217;attire pas (oui, je sais c&#8217;est pas une excuse valable&#8230; et pourtant). CakePHP, CodeIgniter et Symfony m&#8217;ont paru beaucoup trop obscurs, même leurs tutoriels <em>mon blog en 5 minutes</em> ne me convainquaient pas Quant à Zend Framework, je me suis plongé dedans aussitôt, j&#8217;ai aimé, j&#8217;ai développé des applications avec, y compris à mon boulot&#8230; et pourtant.</p>
<h3>Le gros défaut de Zend Framework</h3>
<p>Zend Framework est aux Framework PHP ce que PHP est aux langages de programmation. C&#8217;est simple, il y a une excellente documentation, une grande communauté et&#8230; on peut faire tout et n&#8217;importe quoi. De la même manière qu&#8217;on peut coder comme un porc ou comme un dieu avec PHP, on peut utiliser le <acronym title="Zend Framework">ZF</acronym> comme PEAR en utilisant des bibliothèques par ci, par là, on peut suivre ou non l&#8217;architecture proposée par Zend, on peut utiliser le concept <acronym title="Model View Controller">MVC</acronym> ou pas. Bref, le ZF est, tout comme PHP, beaucoup trop permissif pour un framework. Au final, on peut très vite se retrouver avec un site qui n&#8217;est pas du tout facile à maintenir, un comble pour un framework.</p>
<h3>Alors on utilise quoi?</h3>
<p>Je ne saurais rien imposer. Mais après moult tests et avec de l&#8217;acharnement, je pense avoir trouver mon bonheur avec Symfony. Le gros problème de Symfony, c&#8217;est son tutoriel de prise en main qui m&#8217;a fait fuir alors que le framework lui-même est une perle car, et ça se sent, il répond exactement à bon nombre de problématiques que l&#8217;on peut rencontrer dans des applications Web professionnelles. En lisant la <a hreflang="en" href="http://www.symfony-project.com/book/trunk">documentation de Symfony</a><sup>[<a id="rev-pnote-811-1" href="#pnote-811-1">1</a>]</sup> (je n&#8217;ai pas fini, j&#8217;en suis au chapitre 9), j&#8217;ai rencontré des solutions à des problèmes que l&#8217;on rencontre à mon boulot. ce qui n&#8217;était pas le cas avec ZF où il fallait au contraire créer tout un tas de plugins ou d&#8217;helpers.</p>
<h3>SF remplace ZF ?</h3>
<p>Oui. Je projette de migrer vers Symfony l&#8217;application que j&#8217;ai commencé sur ZF au boulot (sur mon temps libre, sinon mon patron va me tuer) Je compte aussi commencer la traduction en français du manuel de <acronym title="Symfony">SF</acronym>.</p>
<p class="footnotes">
<h4>Notes</h4>
<p>[<a id="pnote-811-1" href="#rev-pnote-811-1">1</a>] Que ceux qui disaient que je ne lisais pas l&#8217;anglais remarque bien que l&#8217;intégralité de ce manuel est en anglais et qu&#8217;il n&#8217;en existe pas de version française</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2007/05/22/frameworks-php/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

