<?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; dev</title>
	<atom:link href="http://totalement.geek.oupas.fr/article/tag/dev/feed" rel="self" type="application/rss+xml" />
	<link>http://totalement.geek.oupas.fr</link>
	<description>... ou pas.</description>
	<lastBuildDate>Thu, 02 Sep 2010 08:07:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Connexion persistente du client SOAP PHP à travers une session</title>
		<link>http://totalement.geek.oupas.fr/article/2008/02/15/connexion-persistente-du-client-soap-php-a-travers-une-session</link>
		<comments>http://totalement.geek.oupas.fr/article/2008/02/15/connexion-persistente-du-client-soap-php-a-travers-une-session#comments</comments>
		<pubDate>Fri, 15 Feb 2008 19:35:36 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://totalement.geek.oupas.fr/article/2008/02/15/connexion-persistente-du-client-soap-php-a-travers-une-session</guid>
		<description><![CDATA[Pour mon boulot, j'ai besoin de mettre un objet en session qui contient lui-même un objet SoapClient. le problème, c'est que sur la page suivante, la connexion au serveur SOAP est coupée. Il faut reconnecter le client à la main... c'est un peu casse pied. Du coup, j'ai étendu la classe SoapClient pour que ca [...]]]></description>
			<content:encoded><![CDATA[<p>Pour <a href="http://www.digitick.com" target="_blank">mon boulot</a>, j'ai besoin de mettre un objet en session qui contient lui-même un objet <a href="http://php.net/soap" target="_blank">SoapClient</a>. le problème, c'est que sur la page suivante, la connexion au serveur SOAP est coupée. Il faut reconnecter le client à la main... c'est un peu casse pied.</p>
<p>Du coup, j'ai étendu la classe SoapClient pour que ca se reconnecte automatiquement et ca donne:</p>
<pre class="php"><span style="color: #000000; font-weight: bold;">class</span> SoapClientSessionnable <span style="color: #000000; font-weight: bold;">extends</span> SoapClient <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #0000ff;">$wsdl</span>;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #0000ff;">$options</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$wsdl</span>, <span style="color: #0000ff;">$options</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">wsdl</span>     = <span style="color: #0000ff;">$wsdl</span>;
        <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">options</span>  = <span style="color: #0000ff;">$options</span>;
&nbsp;
        parent::__construct<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$wsdl</span>, <span style="color: #0000ff;">$options</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __wakeup<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$this</span>-&gt;__construct<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">wsdl</span>, <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">options</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Bon, c'est un peu crade de rappeler le constructeur, mais je n'ai trouvé aucune méthode qui connecte le client SOAP... et puis ca a le mérite de fonctionner :)</p>
<p>Du coup, ca s'utilise de la même façon que le client SOAP de base:</p>
<pre class="php"><span style="color: #0000ff;">$client</span> = <span style="color: #000000; font-weight: bold;">new</span> SoapClientSessionnable<span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">'http://host.com/path/to/wsdl'</span>,
    <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #808080; font-style: italic;">// Options</span>
        <span style="color: #ff0000;">'trace'</span>         =&gt; <span style="color: #cc66cc;">1</span>,
        <span style="color: #ff0000;">'soap_version'</span>  =&gt; SOAP_1_1,
        ....
    <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;</pre>
<p>Pensez quand même à mettre $client en session pour qu'il soit réutilisable dans la page suivante :)</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2008/02/15/connexion-persistente-du-client-soap-php-a-travers-une-session/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Svn diff avec vimdiff</title>
		<link>http://totalement.geek.oupas.fr/article/2007/06/10/svn-diff-avec-vimdiff</link>
		<comments>http://totalement.geek.oupas.fr/article/2007/06/10/svn-diff-avec-vimdiff#comments</comments>
		<pubDate>Sun, 10 Jun 2007 12:40:15 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://totalement.geek.oupas.fr/article/2007/06/10/svn-diff-avec-vimdiff</guid>
		<description><![CDATA[Subversion, le logiciel de gestion de version, permet facilement de regarder les différences entre un fichier dans la working copy, c'est à dire en local et potentiellement modifiée par nos soins et son homologue dans le repository, c'est à dire sur le serveur et potentiellement modifié par une autre personne. La commande suivante permet d'afficher [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://subversion.tigris.org/" target="_blank"><img src="http://totalement.geek.oupas.fr/wp-content/uploads/2007/12/vimdiff.jpg" alt="vimdiff" />Subversion</a>, le logiciel de gestion de version, permet facilement de regarder les différences entre un fichier dans la working copy, c'est à dire en local et potentiellement modifiée par nos soins et son homologue dans le repository, c'est à dire sur le serveur et potentiellement modifié par une autre personne.</p>
<p>La commande suivante permet d'afficher les différences entre le fichier local monfichier.php et la révision en cours dans le repository de ce même fichier:</p>
<p>svn diff monfichier.php</p>
<p>Bien entendu, pour un petit fichier ou lorsqu'il y a peu de différence, le résultat est tout a fait lisible. Quelques lignes avec des "+" ou des "-" et on comprends bien ce qu'il y a de différent. En revanche, on ne sait pas trop le contexte de la modification et, surtout, lorsqu'il s'agit de gros fichiers ou lorsqu'il y a plusieurs différences, ça devient tout bonnement imbitable.</p>
<p>Heureusement, il est possible d'utiliser un programme tiers pour faire ce travail. Et <em>vimdiff</em> le fait très bien. Malheureusement <em>svn diff</em> envoi les paramètres dans un ordre que <em>vimdiff</em> ne comprends pas. Aussi, il nous faut passer par un petit script qui remet tout ça en ordre.</p>
<ol>
<li>Dans un fichier, où vous voulez, par exemple dans votre<em> home</em> si c'est uniquement pour vous, ou dans /usr/local/bin si c'est pour plusieurs personnes (dans le cadre d'un serveur de développement, par exemple), créez un fichier <em>diffwithvim</em>:
<pre>

#!/usr/bin/python
import sys, os
diffprogram = '/usr/bin/vimdiff'
fn_old = sys.argv[6]
fn_working_copy = sys.argv[7]
# arrange the args in the order diffprogram expects them
args = ['diffwithvim', '-d', fn_old, fn_working_copy]
os.execv(diffprogram, args)</pre>
</li>
<li>Editez <em>~/.subversion/config</em></li>
<li>Trouvez <em>[helpers]</em></li>
<li>Ajoutez la ligne suivante:
<pre>

diff-cmd = /usr/local/bin/diffwithvim</pre>
</li>
</ol>
<p>Maintenant, lorsque vous ferez un <code>svn diff monfichier.php</code>, <em>vimdiff</em> (qui n'est rien d'autre que <em>vim</em>) se lancera, coupé en 2 verticalement, vous pourrez voir les 2 versions de fichiers côte à côte et comprendre plus facilement les différences grâce aux couleurs de vimdiff.</p>
<p>Petite astuce: Pour quitter vimdiff, vous pouvez faire :q pour chacune des 2 versions de fichier ou bien :qa pour quitter les 2 en même temps.</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2007/06/10/svn-diff-avec-vimdiff/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Ma boite cherche DES développeurs web</title>
		<link>http://totalement.geek.oupas.fr/article/2007/05/24/ma-boite-cherche-des-developpeurs-web</link>
		<comments>http://totalement.geek.oupas.fr/article/2007/05/24/ma-boite-cherche-des-developpeurs-web#comments</comments>
		<pubDate>Thu, 24 May 2007 21:09:00 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[annonce]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://tg.mattlab.info/?p=13</guid>
		<description><![CDATA[Et oui, je passe une petite annonce. Je sais bien que je suis peu lu, mais si dans le lot quelqu'un est intéressé, et bien tant mieux :) Ma société recherche activement plusieurs développeurs Web confirmés maîtrisants PHP/SQL (MsSQL/MySQL) et puis au moins un peu HTML/CSS/Javascript, ça fait pas de mal. Petite précision: les entretiens [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://totalement.geek.oupas.fr/wp-content/uploads/2007/12/emploi.jpg" alt="Emploi" />Et oui, je passe une petite annonce.</p>
<p>Je sais bien que je suis peu lu, mais si dans le lot quelqu'un est intéressé, et bien tant mieux :)</p>
<p>Ma société recherche activement plusieurs développeurs Web confirmés maîtrisants PHP/SQL (MsSQL/MySQL) et puis au moins un peu HTML/CSS/Javascript, ça fait pas de mal.</p>
<p>Petite précision: les entretiens se suivent et se ressemblent à mon boulot. On a dû tombé sur un nid de débutants pensant que "connaître l'existence de PHP" signifiait qu'ils "maîtrisaient PHP". On est une petite entreprise faisant déjà des gros sous (CA de quelques dizaines de millions d'euros l'année dernière), on vient de rentrer en bourse et l'ambiance est plus à la StartUp où tout le monde fait 15 trucs en même temps qu'à la grosse entreprise où on plie bagage à 17h30. Tout ça pour dire qu'on n'a ni le temps ni l'intention de former qui que ce soit à PHP.</p>
<p>Bon, dit comme ça, on pourrait penser que c'est de l'esclavage, mais en fait non !<br />
Il y a réellement une excellente ambiance et le secteur d'activité est assez... interressant :p</p>
<p>Je ne connais pas le salaire proposé, mais personnellement, j'estime être suffisamment bien payé, donc je pense que c'est pareil pour ces postes.</p>
<p>La société est basée à Rousset, Bouches-du-Rhônes, France.</p>
<p>N'hésitez pas à me contacter si vous êtes interressé. (mail et jabber en quelque part dans la sidebar)</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2007/05/24/ma-boite-cherche-des-developpeurs-web/feed</wfw:commentRss>
		<slash:comments>0</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'intéresse aux autres framework php.  J'ai regardé un peu ce que je trouvais et qui répondait au doux nom de <em>framework php</em> et j'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'avais essayé, il y a quelques mois, de dompter la bête... sans succès.</li>
<li><a hreflang="en" href="http://codeigniter.com/">CodeIgniter</a>, comme CakePHP, j'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'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... 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'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'autres...</li>
</ul>
<p>Je n'ai pas du tout testé Jelix à cause de sa documentation à trou. PHP On Trax non plus: je n'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'attire pas (oui, je sais c'est pas une excuse valable... et pourtant). CakePHP, CodeIgniter et Symfony m'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'ai aimé, j'ai développé des applications avec, y compris à mon boulot... 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'est simple, il y a une excellente documentation, une grande communauté et... on peut faire tout et n'importe quoi. De la même manière qu'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'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'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'acharnement, je pense avoir trouver mon bonheur avec Symfony. Le gros problème de Symfony, c'est son tutoriel de prise en main qui m'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'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'ai pas fini, j'en suis au chapitre 9), j'ai rencontré des solutions à des problèmes que l'on rencontre à mon boulot. ce qui n'était pas le cas avec ZF où il fallait au contraire créer tout un tas de plugins ou d'helpers.</p>
<h3>SF remplace ZF ?</h3>
<p>Oui. Je projette de migrer vers Symfony l'application que j'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'anglais remarque bien que l'intégralité de ce manuel est en anglais et qu'il n'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>
		<item>
		<title>Premier billet</title>
		<link>http://totalement.geek.oupas.fr/article/2007/04/19/premier-billet</link>
		<comments>http://totalement.geek.oupas.fr/article/2007/04/19/premier-billet#comments</comments>
		<pubDate>Thu, 19 Apr 2007 12:10:00 +0000</pubDate>
		<dc:creator>Renaud</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://tg.mattlab.info/?p=3</guid>
		<description><![CDATA[Premier billet de mon nouveau blog. Génial, non ? Je ne me présenterai pas, pour ceux qui ne me connaissent pas encore, vous me connaîtrez à travers mes billets. Sachez juste que je suis web developper et que j'ai 26ans. En revanche, je vais présenter un peu ce blog. Tout d'abord sachez que je ne posterai [...]]]></description>
			<content:encoded><![CDATA[<p>Premier billet de mon nouveau blog. Génial, non ?</p>
<p>Je ne me présenterai pas, pour ceux qui ne me connaissent pas encore, vous me connaîtrez à travers mes billets. Sachez juste que je suis web developper et que j'ai 26ans.</p>
<p>En revanche, je vais présenter un peu ce blog. Tout d'abord sachez que je ne posterai pas pour remplir le blog. Il est tout a fait possible que le néant s'installe pendant quelques jours ou semaines, mais je ne vois pas l'intérêt d'écrire des billets si on a rien à y dire. Ensuite, je ne vous cache pas que ce blog sera fortement teinté d'informatique et plus particulièrement orienté vers <a href="http://www.ubuntu-fr.org/" hreflang="fr">Ubuntu</a> / <a href="http://www.kubuntu-fr.org/" hreflang="fr">Kubuntu</a> et le développement web.</p>
<p>Les commentaires sont évidemment les bienvenus, mais ça ne veut pas dire que je laisserai l'anarchie s'installer. Ici, c'est mon blog, je supprimerai tout ce qui me semble être à supprimer. La liberté d'expression? La liberté des uns s'arrête là où commence celle des autres.</p>
<p>SMS = rappel à l'ordre puis poubelle.<br />
Insulte = poubelle.</p>
<p>Sur ce... à bientôt!... ou pas :)</p>
]]></content:encoded>
			<wfw:commentRss>http://totalement.geek.oupas.fr/article/2007/04/19/premier-billet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
