<?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; doctrine</title>
	<atom:link href="http://totalement.geek.oupas.fr/article/tag/doctrine/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>
	</channel>
</rss>

