<?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>Jérôme Tamarelle &#187; IDE</title>
	<atom:link href="http://jerome.tamarelle.net/blog/passion/dev/ide-dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://jerome.tamarelle.net/blog</link>
	<description>I share so I am</description>
	<lastBuildDate>Sat, 17 Jul 2010 21:41:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Configurer WAMP avec PHP 5.3.1 pour Symfony 2.0</title>
		<link>http://jerome.tamarelle.net/blog/2010/03/configurer-wamp-avec-php-5-3-1-pour-symfony-2-0/</link>
		<comments>http://jerome.tamarelle.net/blog/2010/03/configurer-wamp-avec-php-5-3-1-pour-symfony-2-0/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 06:20:17 +0000</pubDate>
		<dc:creator>Jérôme</dc:creator>
				<category><![CDATA[Applications web]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[WAMP]]></category>

		<guid isPermaLink="false">http://jerome.tamarelle.net/blog/?p=126</guid>
		<description><![CDATA[Symfony 2 va révolutionner le développement web. Sa nouvelle architecture et sa flexibilité permettront une prise en main plus rapide, une réutilisation de code plus facile et des performances adaptées à la taille de chaque application. Le nouveau framework est en développement, mais si comme moi vous voulez explorer les fonctionnalités de ce trésor, voici [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony 2 va révolutionner le développement web. Sa nouvelle architecture et sa flexibilité permettront une <a title="Quick Tour" href="http://symfony-reloaded.org/learn">prise en main plus rapide</a>, une <a title="The Bundles" href="http://symfony-reloaded.org/quick-tour-part-4">réutilisation de code plus facile</a> et des performances adaptées à la taille de chaque application.</p>
<p>Le nouveau framework est en développement, mais si comme moi vous voulez explorer les fonctionnalités de ce trésor, voici comment bien démarrer sous Windows.</p>
<p>Le<a title="Télécharger Symfony 2.0" href="http://symfony-reloaded.org/code"> pack d'installation</a> fournit un fichier check.php permettant de vérifier la compatibilité de votre environnement PHP avec les pré-requis du nouveau framework.</p>
<p>La <a title="WAMP Server" href="http://www.wampserver.com/">distribution WAMP</a> correspond quasiment à la configuration suggérée pour Symfony 2.0 (dans la version dev du 10/03/2010 en tout cas).</p>
<div id="attachment_127" class="wp-caption aligncenter" style="width: 246px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/symfony2-requirements.png"><img class="size-medium wp-image-127" title="symfony2-requirements" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/symfony2-requirements-236x299.png" alt="Pré-requis Symfony 2.0" width="236" height="299" /></a><p class="wp-caption-text">Symfony 2.0 requière PHP 5.3.1 alors que WAMP propose par défaut la 5.3.0</p></div>
<p>Contrairement à <a title="Why will Symfony 2.0 finally use PHP 5.3" href="http://www.symfony-project.org/blog/2009/10/27/why-will-symfony-2-0-finally-use-php-5-3">ce qui avait été annoncé</a>, c'est PHP 5.3.1 qui est recommandé au lieu de la 5.3.0 (voir <a title="PHP 5.3.1 Released!" href="http://www.php.net/archive/2009.php#id2009-11-19-1">changelog</a>).</p>
<p><span id="more-126"></span></p>
<span id="Installation_de_WAMP"><h1>Installation de WAMP</h1></span>
<p style="text-align: center;"><strong>Pour installer PHP 5.3.1 sous WAMP, téléchargez simplement l'</strong><a title="Télécharger l'add-on PHP 5.3.1 pour WAMP" href="http://www.wampserver.com/addons_php.php"><strong>add-on éponyme</strong></a><strong>.</strong></p>
<p>Lorsque l'installation est terminée, il vous faut sélectionner cette version de PHP dans le menu contextuel de WAMP (icône en bas à droite) :<br />
<strong><img src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/icone_wamp.png" alt="WAMP" width="16" height="11" /> &gt; PHP &gt; Version &gt; 5.3.1</strong></p>
<p><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/wamp-version-php.png"><img class="aligncenter size-full wp-image-128" title="wamp-version-php" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/wamp-version-php.png" alt="" width="340" height="266" /></a></p>
<p style="text-align: left;">Si vous utilisez Propel, il vous faut aussi activer l'extension XSL (optionnel) :<br />
<strong><img src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/icone_wamp.png" alt="WAMP" width="16" height="11" /> &gt;PHP &gt; PHP extensions &gt; php_xsl</strong></p>
<span id="Installation_de_APC_acclrateur"><h1><strong>Installation de APC (accélérateur)</strong></h1></span>
<p>Même pour le développement il est intéressant d'améliorer les performances d'exécution de PHP. Pour cela on peut installer l'accélérateur APC.</p>
<p style="text-align: center;"><strong>Téléchargez la dll de APC : </strong><strong><a title="APC.dll pour PHP 5.3.1" href="http://downloads.php.net/pierre/php_apc-5.3-svn20100226-vc9-x86.zip">php_apc-5.3-svn20100226-vc9-x86.zip</a> </strong></p>
<p>Extraire le contenu de l'archive dans <strong>C:\wamp\bin\php\php5.3.1\ext</strong></p>
<p>Modifiez le fichier php.ini : <strong><img src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/icone_wamp.png" alt="WAMP" width="16" height="11" /> &gt; PHP &gt; php.ini</strong></p>
<pre class="brush: plain;">
extension=php_xsl.dll
;extension=php_zip.dll
extension=php_apc.dll
</pre>
<span id="Alias_Apache_et_rewrite"><h1><strong>Alias Apache et rewrite</strong></h1></span>
<p>Si vous souhaitez déposer votre code en dehors du répertoire www de WAMP, il vous faut créer un Alias :<br />
<strong><img src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/icone_wamp.png" alt="WAMP" width="16" height="11" /> &gt; Apache &gt; Alias directories &gt; Add an alias</strong></p>
<p>Dans l'invite de commande, saisissez le nom de votre alias (par exmple : symfony2) puis l'emplacement du répertoire web de votre installation. Pensez à utiliser des slash (/) comme séparateur et à mettre un slash à la fin (par exemple : C:/Programmation/Symfony2/web/).</p>
<p>Il est aussi conseillé d'activer le module rewrite de Apache :<br />
<strong><img src="http://jerome.tamarelle.net/blog/wp-content/uploads/2010/03/icone_wamp.png" alt="WAMP" width="16" height="11" /> &gt; Apache &gt; Apache modules &gt; rewrire_module</strong></p>
<p>Accédez maintenant à la page <a href="http://localhost/symfony2/">http://localhost/symfony2/</a>. Une page indiquant que Symfony est correctement installé doit s'afficher. Si vous avez une erreur du type "fichier *index.php non trouvé", modifiez le fichier .htaccess :</p>
<pre class="brush: plain;">
 &lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteBase /symfony2
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php [QSA,L]
 &lt;/IfModule&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jerome.tamarelle.net/blog/2010/03/configurer-wamp-avec-php-5-3-1-pour-symfony-2-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Développer un plugin pour MySQL Workbench</title>
		<link>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/</link>
		<comments>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:34:10 +0000</pubDate>
		<dc:creator>Jérôme</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Workbench]]></category>

		<guid isPermaLink="false">http://jerome.tamarelle.net/blog/?p=51</guid>
		<description><![CDATA[MySQL Workbench est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu : Modélisation des tables et des relations spécifiquement pour MySQL, Génération des scripts SQL et de la base de données MySQL, Création des [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Site officiel MySQL Workbench" href="http://www.mysql.fr/products/workbench/">MySQL Workbench</a> est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu :</p>
<ul>
<li>Modélisation des tables et des relations spécifiquement pour MySQL,</li>
<li>Génération des scripts SQL et de la base de données MySQL,</li>
<li>Création des diagrammes à partir d'une base MySQL existante ou d'un script SQL.</li>
</ul>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-diagram.png"><img class="size-medium wp-image-52" title="Diagramme sous MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-diagram-300x172.png" alt="mysql-workbench-diagram" width="300" height="172" /></a><p class="wp-caption-text">Diagramme sous MySQL Workbench</p></div>
<p>Mais pour un projet contenant de nombreuses tables, il est parfois nécessaire d'effectuer des traitements automatiques sur celles-ci. MySQL Workbench est un logiciel "programmable", c'est-à-dire qu'il est possible de développer des script/plugins pour automatiser certaines tâches telles que :</p>
<ul>
<li>génération de code (<a title="MySQL Workbench Doctrine Plugin" href="http://code.google.com/p/mysql-workbench-doctrine-plugin/">comme le schema.yml de Doctrine</a>),</li>
<li>création de documentation,</li>
<li>modifications du schéma ...</li>
</ul>
<p>Le langage de programmation est LUA, celui-ci a une syntaxe proche de python, <a title="LUA" href="http://forge.mysql.com/wiki/Lua">quelques exemples de code</a> sont disponibles sur le wiki de MySQL.</p>
<p><span id="more-51"></span></p>
<p><em>Cet article a été écrit en utilisant <a title="Télécharger MySQL Workbench 5.2" href="http://dev.mysql.com/downloads/workbench/5.2.html">MySQL Workbench 5.2 OSS</a></em><em>.</em></p>
<span id="Excuter_des_commandes_LUA_dans_la_console_GRT"><h2>1. Exécuter des commandes LUA dans la console GRT</h2></span>
<p>MySQL Workbench propose une console pour la saisie de commandes simples. Pour la l'afficher depuis le menu :<br />
<strong>View&gt;Advenced&gt;GRT Shell</strong> ou au clavier <strong>CTRL+F3</strong>.</p>
<div id="attachment_53" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-console.png"><img class="size-medium wp-image-53" title="GRT Shell" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-console-300x114.png" alt="mysql-workbench-grt-console" width="300" height="114" /></a><p class="wp-caption-text">Console d&#39;exécution de commande LUA</p></div>
<p>Vous pouvez essayer avec la commande suivante pour afficher le contenu du catalogue :</p>
<pre class="brush: python;">
print(grtV.getGlobal(&quot;/wb/doc/physicalModels/0/catalog&quot;))
</pre>
<span id="Crer_un_script_LUA_et_lexcuter"><h2>2. Créer un script LUA et l'exécuter</h2></span>
<p>Maintenant que nous savons exécuter des commandes simples, nous allons apprendre à créer un script LUA. Pour cela, il faut afficher l'explorateur de scripts en cliquant sur l'<strong>onglet GRT Shell</strong> dans la colonne de droite. Si cet onglet n'apparaît pas, cliquez sur l'icône noire <strong>Show GRT Schell IDE</strong>.</p>
<div id="attachment_56" class="wp-caption aligncenter" style="width: 122px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-scripts.png"><img class="size-medium wp-image-56" title="Explorateur de scripts LUA" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-grt-scripts-112x300.png" alt="mysql-workbench-grt-scripts" width="112" height="300" /></a><p class="wp-caption-text">Cliquer sur l&#39;onglet &quot;GRT Shell&quot; puis sur l&#39;icône &quot;New&quot; pour créer un nouveau script.</p></div>
<p>Cliquez sur l'icône <strong>New </strong>à gauche puis choisissez le type de fichier <strong>LUA Script File</strong>. Sous Windows, ceux-ci sont enregistré par défaut dans votre répertoire %APPDATA%\Roaming\MySQL\Workbench\scripts\</p>
<p>Essayez de coller ce qui suit dans l'éditeur de code qui apparait.</p>
<pre class="brush: python;">
-- Affichage de toutes les tables du catalogue
catalog = grtV.getGlobal(&quot;/wb/doc/physicalModels/0/catalog&quot;)
for i=1, grtV.getn(catalog.schemata) do
  print(&quot;Schema: &quot; .. catalog.schemata[i].name .. &quot;\n&quot;)
  for j=1, grtV.getn(catalog.schemata[i].tables) do
    print(&quot;  &quot; .. catalog.schemata[i].tables[j].name ..
	  &quot; (&quot; .. grtV.getn(catalog.schemata[i].tables[j].columns) .. &quot; attributs)\n&quot;)
  end
end
</pre>
<p>Enfin cliquez sur le bouton <strong>Execute</strong> et constatez le résultat. Vous pouvez modifier le code à votre convenance.</p>
<p>La fenêtre <strong>GRT Tree </strong>vous permet d'explorer l'arborescence des données de votre fichier MySQL Workbench pour vous aider au développement.</p>
<span id="Crer_un_pluginmodule"><h2>3. Créer un plugin/module</h2></span>
<p>Pour créer un plugin sous MySQL Workbench sous Windows Vista ou Seven, il est nécessaire d'<strong>exécuter ce logiciel en tant qu'administrateur </strong>pour qu'il ait les droits en écriture sur le répertoire %PROGRAMS%\MySQL\MySQL Workbench 5.1 OSS\modules.</p>
<p>Un plugin se crée de la même manière qu'un script LUA, mais celui-doit contenir des fonctions supplémentaires décrivant sont fonctionnement au logiciel. Faites donc de même en choisissant <strong>LUA GRT Module File</strong>.</p>
<div id="attachment_57" class="wp-caption aligncenter" style="width: 310px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-new-module.png"><img class="size-medium wp-image-57" title="Créer un plugin sous MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-new-module-300x148.png" alt="mysql-workbench-new-module" width="300" height="148" /></a><p class="wp-caption-text">Créer un plugin sous MySQL Workbench</p></div>
<p>En choisissant l'un des deux templates, les fonctions de description du module sont pré-écrites. Votre plugin final sera architecturé comme décrit dans le schéma ci-dessous.</p>
<div id="attachment_58" class="wp-caption aligncenter" style="width: 301px"><a href="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-plugin-skel.png"><img class="size-medium wp-image-58" title="Architecture d'un plugin MySQL Workbench" src="http://jerome.tamarelle.net/blog/wp-content/uploads/2009/12/mysql-workbench-plugin-skel-291x300.png" alt="mysql-workbench-plugin-skel" width="291" height="300" /></a><p class="wp-caption-text">Architecture d&#39;un plugin MySQL Workbench</p></div>
<p>C'est à vous de jouer maintenant. Vous pouvez vous inspirer des quelques plugins présents par défaut dans MySQL Workbench.</p>
<span id="Liens_:"><h3>Liens :</h3></span>
<ul>
<li><a title="Lua 5.1 Reference Manual" href="http://www.lua.org/manual/5.1/">Lua 5.1 Reference Manual</a><br />
Référence complète du langage LUA</li>
<li><a title="MySQL Workbench Plugins" href="http://forge.mysql.com/wiki/MySQL_Workbench_Plugins">MySQL Workbench Plugins</a><br />
Création et installation de plugins</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jerome.tamarelle.net/blog/2009/12/developper-un-plugin-pour-mysql-workbench/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
