<?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>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>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&#8217;ai besoin de mettre un objet en session qui contient lui-même un objet SoapClient. le problème, c&#8217;est que sur la page suivante, la connexion au serveur SOAP est coupée. Il faut reconnecter le client à la main&#8230; c&#8217;est un peu casse pied. Du coup, j&#8217;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&#8217;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&#8217;est que sur la page suivante, la connexion au serveur SOAP est coupée. Il faut reconnecter le client à la main&#8230; c&#8217;est un peu casse pied.</p>
<p>Du coup, j&#8217;ai étendu la classe SoapClient pour que ca se reconnecte automatiquement et ca donne:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">class</span> SoapClientSessionnable <span class="kw2">extends</span> SoapClient <span class="br0">&#123;</span>
    <span class="kw2">private</span> <span class="re0">$wsdl</span><span class="sy0">;</span>
    <span class="kw2">private</span> <span class="re0">$options</span><span class="sy0">;</span>
&nbsp;
    <span class="kw2">public</span> <span class="kw2">function</span> __construct<span class="br0">&#40;</span><span class="re0">$wsdl</span><span class="sy0">,</span> <span class="re0">$options</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">wsdl</span>     <span class="sy0">=</span> <span class="re0">$wsdl</span><span class="sy0">;</span>
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">options</span>  <span class="sy0">=</span> <span class="re0">$options</span><span class="sy0">;</span>
&nbsp;
        parent<span class="sy0">::</span>__construct<span class="br0">&#40;</span><span class="re0">$wsdl</span><span class="sy0">,</span> <span class="re0">$options</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span class="kw2">public</span> <span class="kw2">function</span> __wakeup<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$this</span><span class="sy0">-&gt;</span>__construct<span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">wsdl</span><span class="sy0">,</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">options</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p>Bon, c&#8217;est un peu crade de rappeler le constructeur, mais je n&#8217;ai trouvé aucune méthode qui connecte le client SOAP&#8230; et puis ca a le mérite de fonctionner :)</p>
<p>Du coup, ca s&#8217;utilise de la même façon que le client SOAP de base:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$client</span> <span class="sy0">=</span> <span class="kw2">new</span> SoapClientSessionnable<span class="br0">&#40;</span>
    <span class="st_h">'http://host.com/path/to/wsdl'</span><span class="sy0">,</span>
    <span class="kw3">array</span><span class="br0">&#40;</span>
        <span class="co1">// Options</span>
        <span class="st_h">'trace'</span>         <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="sy0">,</span>
        <span class="st_h">'soap_version'</span>  <span class="sy0">=&gt;</span> SOAP_1_1<span class="sy0">,</span>
        <span class="sy0">....</span>
    <span class="br0">&#41;</span>
<span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>Pensez quand même à mettre $client en session pour qu&#8217;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&#8217;est à dire en local et potentiellement modifiée par nos soins et son homologue dans le repository, c&#8217;est à dire sur le serveur et potentiellement modifié par une autre personne. La commande suivante permet d&#8217;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&#8217;est à dire en local et potentiellement modifiée par nos soins et son homologue dans le repository, c&#8217;est à dire sur le serveur et potentiellement modifié par une autre personne.</p>
<p>La commande suivante permet d&#8217;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&#8217;il y a peu de différence, le résultat est tout a fait lisible. Quelques lignes avec des &laquo;&nbsp;+&nbsp;&raquo; ou des &laquo;&nbsp;-&nbsp;&raquo; et on comprends bien ce qu&#8217;il y a de différent. En revanche, on ne sait pas trop le contexte de la modification et, surtout, lorsqu&#8217;il s&#8217;agit de gros fichiers ou lorsqu&#8217;il y a plusieurs différences, ça devient tout bonnement imbitable.</p>
<p>Heureusement, il est possible d&#8217;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&#8217;est uniquement pour vous, ou dans /usr/local/bin si c&#8217;est pour plusieurs personnes (dans le cadre d&#8217;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&#8217;est rien d&#8217;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&#8217;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&#8217;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 &laquo;&nbsp;connaître l&#8217;existence de PHP&nbsp;&raquo; signifiait qu&#8217;ils &laquo;&nbsp;maîtrisaient PHP&nbsp;&raquo;. On est une petite entreprise faisant déjà des gros sous (CA de quelques dizaines de millions d&#8217;euros l&#8217;année dernière), on vient de rentrer en bourse et l&#8217;ambiance est plus à la StartUp où tout le monde fait 15 trucs en même temps qu&#8217;à la grosse entreprise où on plie bagage à 17h30. Tout ça pour dire qu&#8217;on n&#8217;a ni le temps ni l&#8217;intention de former qui que ce soit à PHP.</p>
<p>Bon, dit comme ça, on pourrait penser que c&#8217;est de l&#8217;esclavage, mais en fait non !<br />
Il y a réellement une excellente ambiance et le secteur d&#8217;activité est assez&#8230; interressant :p</p>
<p>Je ne connais pas le salaire proposé, mais personnellement, j&#8217;estime être suffisamment bien payé, donc je pense que c&#8217;est pareil pour ces postes.</p>
<p>La société est basée à Rousset, Bouches-du-Rhônes, France.</p>
<p>N&#8217;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&#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>
		<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&#8217;ai 26ans. En revanche, je vais présenter un peu ce blog. Tout d&#8217;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&#8217;ai 26ans.</p>
<p>En revanche, je vais présenter un peu ce blog. Tout d&#8217;abord sachez que je ne posterai pas pour remplir le blog. Il est tout a fait possible que le néant s&#8217;installe pendant quelques jours ou semaines, mais je ne vois pas l&#8217;intérêt d&#8217;écrire des billets si on a rien à y dire. Ensuite, je ne vous cache pas que ce blog sera fortement teinté d&#8217;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&#8217;anarchie s&#8217;installer. Ici, c&#8217;est mon blog, je supprimerai tout ce qui me semble être à supprimer. La liberté d&#8217;expression? La liberté des uns s&#8217;arrête là où commence celle des autres.</p>
<p>SMS = rappel à l&#8217;ordre puis poubelle.<br />
Insulte = poubelle.</p>
<p>Sur ce&#8230; à bientôt!&#8230; 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>

