<?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>Gerald&#039;s Blog</title>
	<atom:link href="http://www.croes.org/gerald/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.croes.org/gerald/blog</link>
	<description>PHP &#38; Technologies de l&#039;Information</description>
	<lastBuildDate>Fri, 19 Apr 2013 08:45:29 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Les codes (statuts) HTTP à connaître</title>
		<link>http://www.croes.org/gerald/blog/les-codes-statuts-http-a-connaitre/1021/</link>
		<comments>http://www.croes.org/gerald/blog/les-codes-statuts-http-a-connaitre/1021/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 09:00:48 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[En pratique]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTfull]]></category>
		<category><![CDATA[Théorie]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=1021</guid>
		<description><![CDATA[<p>En tant que développeurs web, nous fournissons des services au travers du web, et la plus part du temps au travers du protocole HTTP.</p>

<p>Dans les meilleurs des cas nous retournons un statut "200 OK", indiquant que tout s'est bien passé, accompagné d'une page Web à l'attention de l'internaute. Malheureusement, il n'est pas toujours possible de répondre aussi favorablement à l'utilisateur et nous lui affichons alors des retours d'erreur... mais sans code HTTP pertinent correspondant.</p>

<p>Cet article à pour but de lister les codes HTTP indispensables (et non une liste exhaustive) que tout développeur web (PHP ou pas) devrait connaître... et encore plus lors du développement de <a href="http://www.croes.org/gerald/blog/qu-est-ce-que-rest/447/">services REST</a> !</p><p class="read-more"><a href="http://www.croes.org/gerald/blog/les-codes-statuts-http-a-connaitre/1021/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/les-codes-statuts-http-a-connaitre/1021/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>De l&#8217;usage des méthodes statiques</title>
		<link>http://www.croes.org/gerald/blog/de-lusage-des-methodes-statiques/931/</link>
		<comments>http://www.croes.org/gerald/blog/de-lusage-des-methodes-statiques/931/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 18:08:04 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[En pratique]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Couplage faible]]></category>
		<category><![CDATA[Découplage]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Static]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=931</guid>
		<description><![CDATA[Suite à ma précédente introduction à Domain Driven Design, une critique négative sur l&#8217;usage des services statiques (en PHP ou non)a fait réagir un lecteur. Ce dernier soulève une question légitime : &#171;&#160;en quoi l&#8217;usage des classes de services statiques &#8230;<p class="read-more"><a href="http://www.croes.org/gerald/blog/de-lusage-des-methodes-statiques/931/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/de-lusage-des-methodes-statiques/931/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Domain Driven Design, DDD pour les intimes</title>
		<link>http://www.croes.org/gerald/blog/domain-driven-design-ddd-pour-les-intimes/866/</link>
		<comments>http://www.croes.org/gerald/blog/domain-driven-design-ddd-pour-les-intimes/866/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 07:08:48 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[Domain Driven Design]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Théorie]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=866</guid>
		<description><![CDATA[<h2>Préface d'une Lightning Talk en demi teinte.</h2>
<p>Dernièrement j'ai accepté un défi fou : celui de parler de Domain Driven Design lors d'une <a href="http://www.croes.org/gerald/conf/php/nantes/2012/DDD.pdf" title="PHP Tour Lightning Talk DDD">conférence</a> (<a href="http://afup.org/pages/phptournantes2012/">PHP Tour 2012</a> organisé par l'<a href="http://www.afup.org">AFUP</a>) de.... 5 minutes. Vraiment fou, et pas une franche réussite. A trop vouloir insister sur l'importance des concepts sous-jacents, j'ai épuisé mon temps avant d'avoir pu faire passer tous les messages que je voulais. Pour me faire pardonner, voici tout ce que je souhaitais dire en 5 minutes.</p>

<h2>Vous avez donc dit DDD ?</h2>
<p>A la lecture du titre, vous pouvez penser « encore un acronyme à la signification abstraite ».</p>
<p>Pourtant, passé cette première réaction, il s’avère que DDD porte de nombreuses valeurs, sauf celle de se compliquer le quotidien. Je vais essayer de détailler rapidement l’essence du « Domain Driven Design », en utilisant un brin de mon expérience sur le sujet.</p><p class="read-more"><a href="http://www.croes.org/gerald/blog/domain-driven-design-ddd-pour-les-intimes/866/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/domain-driven-design-ddd-pour-les-intimes/866/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Programmation Orientée Aspect &amp; PHP</title>
		<link>http://www.croes.org/gerald/blog/aop-php-programmation-orientee-aspect/822/</link>
		<comments>http://www.croes.org/gerald/blog/aop-php-programmation-orientee-aspect/822/#comments</comments>
		<pubDate>Wed, 04 Jul 2012 15:59:10 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[En pratique]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[Aspect]]></category>
		<category><![CDATA[Conception]]></category>
		<category><![CDATA[Découplage]]></category>
		<category><![CDATA[POA]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=822</guid>
		<description><![CDATA[L&#8217;AOP (Programmation Orientée Aspect) est un concept relativement répandu dans le monde Java ou deux acteurs majeurs proposent leur vision : AspectJ Spring AOP En PHP, jusqu&#8217;à ce jour, aucun projet n&#8217;a réellement vu le jour pour permettre aux développeurs &#8230;<p class="read-more"><a href="http://www.croes.org/gerald/blog/aop-php-programmation-orientee-aspect/822/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/aop-php-programmation-orientee-aspect/822/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Présentation Git sur Lyon</title>
		<link>http://www.croes.org/gerald/blog/presentation-git-sur-lyon/774/</link>
		<comments>http://www.croes.org/gerald/blog/presentation-git-sur-lyon/774/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 09:46:21 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Atelier]]></category>
		<category><![CDATA[Conférence]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=774</guid>
		<description><![CDATA[EDIT : Les inscriptions sont fermées. Nous organisons une présentation de Git avec comme intervenant Sébastien Douche, le 20 février 2012 à 14h, jusqu&#8217;au soir 21h. Cette présentation, gratuite, est ouverte au public. Le nombre de places est limité (environs &#8230;<p class="read-more"><a href="http://www.croes.org/gerald/blog/presentation-git-sur-lyon/774/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/presentation-git-sur-lyon/774/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Le Design Pattern Annuaire de services (Service Locator) en PHP</title>
		<link>http://www.croes.org/gerald/blog/le-design-pattern-annuaire-de-services-service-locator-en-php/675/</link>
		<comments>http://www.croes.org/gerald/blog/le-design-pattern-annuaire-de-services-service-locator-en-php/675/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 08:00:58 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Couplage faible]]></category>
		<category><![CDATA[Découplage]]></category>
		<category><![CDATA[Inversion de Contrôle]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Service Locator]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=675</guid>
		<description><![CDATA[Le <a href="http://www.croes.org/gerald/blog/category/design-pattern/">motif de conception</a> <em>Service Locator</em> fait parti des patterns qui promulguent le principe d'inversion de contrôle, aussi connu sous le nom du "principe d'Hollywood" (Ne nous appelez pas, on vous rappellera).

Le <em>Service Locator</em> est un composant (souvent réalisé sous la forme d'un <a href="http://www.croes.org/gerald/blog/les-registres-registry-en-php/361/">Registre</a>) configuré pour distribuer des services aux autres objets.

Ce que l'on cherche à éviter est qu'un objet A ait besoin d'instancier lui même un objet B pour remplir son contrat en tant qu'objet A.

J'avoue n'avoir jamais rencontré de traduction française pour ce modèle de conception, je prendrais donc la liberté de le dénommer "Annuaire de services" qui me semble à propos.

Pour notre exemple, nous allons réaliser une classe de Log sans et avec ce principe.
<p class="read-more"><a href="http://www.croes.org/gerald/blog/le-design-pattern-annuaire-de-services-service-locator-en-php/675/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/le-design-pattern-annuaire-de-services-service-locator-en-php/675/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Le Design Pattern Monteur (Builder) en PHP</title>
		<link>http://www.croes.org/gerald/blog/le-design-pattern-monteur-builder-en-php/687/</link>
		<comments>http://www.croes.org/gerald/blog/le-design-pattern-monteur-builder-en-php/687/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 12:46:39 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Monteur]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=687</guid>
		<description><![CDATA[<p>Le monteur (builder) est <a href="http://www.croes.org/gerald/blog/category/design-pattern/">un modèle de conception</a> souvent mal compris, confondu avec d'autres patterns de type construction.</p>

<p>L'objectif du monteur est de séparer le processus de construction de l'objet de sa représentation finale. En d'autres termes, cela signifie que le processus de construction est identique mais que le produit finit peut varier.</p>
<p class="read-more"><a href="http://www.croes.org/gerald/blog/le-design-pattern-monteur-builder-en-php/687/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/le-design-pattern-monteur-builder-en-php/687/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Git, un modèle de branches efficace (2/2)</title>
		<link>http://www.croes.org/gerald/blog/git-modele-de-branche-efficace/649/</link>
		<comments>http://www.croes.org/gerald/blog/git-modele-de-branche-efficace/649/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:40:17 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[En pratique]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=649</guid>
		<description><![CDATA[La gestion des branches dans Subversion ou CVS n&#8217;est pas suffisamment simple et rapide pour encourager les développeurs à s&#8217;y frotter, voire les en dissuade : &#171;&#160;Quoi ? Une branche ? Non, trop compliqué de gérer les conflits&#8230; on reste &#8230;<p class="read-more"><a href="http://www.croes.org/gerald/blog/git-modele-de-branche-efficace/649/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/git-modele-de-branche-efficace/649/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Introduction à GIT (1/2)</title>
		<link>http://www.croes.org/gerald/blog/introduction-a-git-12/607/</link>
		<comments>http://www.croes.org/gerald/blog/introduction-a-git-12/607/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:39:50 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[En pratique]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=607</guid>
		<description><![CDATA[Migrer de SVN (ou CVS) vers Git ne se suffit pas en soit pour profiter de ce qui fait de Git... Git.

Git connait un succès grandissant pour <a href="http://whygitisbetterthanx.com/">de nombreuses raisons</a>, dont : 
<ul>
<li>La possibilité de travailler hors ligne</li>
<li>L'extrême facilité et rapidité avec laquelle il est possible de gérer des branches</li>
<li>Sa rapidité</li>
</ul>

Nous allons ici nous concentrer sur le système de branches et proposer un modèle "prêt à l'emplois", largement inspiré de <a href="http://nvie.com/posts/a-successful-git-branching-model/">A successul Git branch model</a>.<p class="read-more"><a href="http://www.croes.org/gerald/blog/introduction-a-git-12/607/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/introduction-a-git-12/607/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testez votre code avec atoum</title>
		<link>http://www.croes.org/gerald/blog/testez-votre-code-avec-atoum/558/</link>
		<comments>http://www.croes.org/gerald/blog/testez-votre-code-avec-atoum/558/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 13:57:16 +0000</pubDate>
		<dc:creator>gerald</dc:creator>
				<category><![CDATA[En pratique]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Atoum]]></category>
		<category><![CDATA[Singleton]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[Tests Unitaires]]></category>

		<guid isPermaLink="false">http://www.croes.org/gerald/blog/?p=558</guid>
		<description><![CDATA[Le monde des Frameworks de <a href="http://fr.wikipedia.org/wiki/Test_unitaire">tests unitaires</a> en PHP est un micro-système bien gardé ou seuls deux représentants cohabitaient jusqu'alors : <a href="http://www.simpletest.org">SimpleTest</a> et le standard <a href="http://www.phpunit.de/">PHPUnit</a>

<del datetime="2011-08-02T06:46:13+00:00">Aujourd'hui, il faut aussi</del> Bientôt il faudra aussi compter avec <a href="https://github.com/mageekguy/atoum">Atoum</a>, un framework de tests unitaires qui tire pleinement partie des possibilités de <a href="http://www.php.net/manual/fr/migration53.new-features.php">PHP 5.3</a> tels les <a href="http://www.php.net/manual/fr/language.namespaces.php">namespaces</a> et les <a href="http://www.php.net/manual/fr/functions.anonymous.php">closures</a>.

Ainsi, si vous lancez un nouveau projet basé sur PHP 5.3+, il me semble opportun que lors du choix de votre framework de tests unitaires vous ayez une bonne idée de ce qu'est Atoum.<p class="read-more"><a href="http://www.croes.org/gerald/blog/testez-votre-code-avec-atoum/558/">Lire la suite &#187;</a></p>]]></description>
		<wfw:commentRss>http://www.croes.org/gerald/blog/testez-votre-code-avec-atoum/558/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
