<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://methylbro.titaxium.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Méthylbro - Tag - POO</title>
  <link>http://methylbro.titaxium.org/</link>
  <atom:link href="http://methylbro.titaxium.org/feed/tag/POO/rss2" rel="self" type="application/rss+xml"/>
  <description>Divide ut imperes</description>
  <language>fr</language>
  <pubDate>Wed, 12 Nov 2008 19:09:26 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Gestion des utilisateurs avec PHP</title>
    <link>http://methylbro.titaxium.org/post/2008/05/12/Gestion-des-utilisateurs-avec-PHP</link>
    <guid isPermaLink="false">urn:md5:bd215bbc1ebb94f6b9449298c3e45c67</guid>
    <pubDate>Mon, 12 May 2008 10:44:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Développement</category>
        <category>php</category><category>POO</category><category>session</category><category>utilisateurs</category>    
    <description>    &lt;div&gt;
&lt;p&gt;&lt;a href=&quot;http://methylbro.titaxium.org/portfolio/methylbro/public/sources/IUM_UserManager.rar&quot;&gt;&lt;img style=&quot;FLOAT: left; MARGIN: 0 1em 1em 0&quot; height=&quot;48&quot; alt=&quot;IUM User Manager&quot; src=&quot;http://methylbro.titaxium.org/portfolio/methylbro/public/images/package.png&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;Cela fait quelques jours que je n'ai pas posté de billet. Il faut dire qu'en ce moment je suis un peu pris par mes examens qui commencent cette semaine.&lt;/p&gt;
&lt;p&gt;Là ; je fait un rapide billet pour demander un avis général sur un script que j'écris depuis ces derniers jours. Il s'agit d'une librairie en php permettant de gérer facilement des groupes d'utilisateurs et de leurs attribuer des droits.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;a href=&quot;http://methylbro.titaxium.org/portfolio/methylbro/public/sources/IUM_UserManager.rar&quot;&gt;IUM User Manager&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour le moment je ne donnerais pas d'explications ou de documentation. Ca viendras dans les jours à venir. Néanmoins je serais ravis que les plus aguéris me fasse remonter leur point de vue et leurs critiques.&lt;/p&gt;
&lt;p&gt;PS: Après les exams c'est promis, je me remet dans la rédaction de tutoriels.&lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/05/12/Gestion-des-utilisateurs-avec-PHP#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/05/12/Gestion-des-utilisateurs-avec-PHP#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/137</wfw:commentRss>
      </item>
    
  <item>
    <title>Introduction à la POO avec PHP - Partie 6</title>
    <link>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-6</link>
    <guid isPermaLink="false">urn:md5:14618da84b64db5f31752a7526cd1ead</guid>
    <pubDate>Sat, 19 Apr 2008 06:30:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>php</category><category>POO</category>    
    <description>&lt;p&gt;Si vous avez suivis tous mes billets sur la POO avec PHP de cette semaine (voir le billet &lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP&quot; hreflang=&quot;fr&quot;&gt;Introduction à la POO avec PHP&lt;/a&gt;)&amp;nbsp;; vous devez maintenant être en mesure d’écrire vos premières classes. De définir vos premiers objets. Bref ; d’entrer dans le monde de la &lt;strong&gt;Programmation Orienté Objet&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Aujourd’hui suite et fin de cette série de billet. Aujourd’hui ; cours pratique. Créons notre classe &lt;em&gt;Stylo&lt;/em&gt; !&lt;/p&gt;    &lt;h1&gt;Exemple&lt;/h1&gt;
&lt;p&gt;Maintenant ; vous avez en main tous les clés pour comprendre le détail de ma classe d’exemple.&lt;/p&gt;
&lt;div&gt;&lt;code&gt;
&lt;div&gt;class Stylo {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; static private $niveau_encre_max = 100;&lt;br /&gt;&amp;nbsp; static private $niveau_encre_min = 25;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; private $niveau_encre;&lt;br /&gt;&amp;nbsp; protected $couleur_normale = '#000000';&lt;br /&gt;&amp;nbsp; protected $couleur_fin = '#C0C0C0';&lt;br /&gt;&amp;nbsp; public $statut;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&amp;nbsp; private function peutEcrire() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$this-&amp;gt;statut) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } elseif ($this-&amp;gt;niveau_encre&amp;lt;=0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $result;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public function __construct() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;statut = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;niveau_encre = self::$niveau_encre_max;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public function click() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($this-&amp;gt;statut) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;statut = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;statut = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; public function ecrire($texte) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($this-&amp;gt;peutEcrire()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo '&amp;lt;p style=&quot;color:'.$this-&amp;gt;couleur_normale.'&quot;&amp;gt;';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nb_caracteres = strlen($texte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $texte = htmlentities($texte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $texte = str_split($texte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while($this-&amp;gt;peutEcrire() &amp;amp;&amp;amp; $i&amp;lt;=$nb_caracteres) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($this-&amp;gt;niveau_encre==self::$niveau_encre_min) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $format = '&amp;lt;span style=&quot;color:'.$this-&amp;gt;couleur_fin.'&quot;&amp;gt;%s';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $format = &quot;%s&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf($format, $texte[$i]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;niveau_encre --;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($this-&amp;gt;niveau_encre&amp;lt;=self::$niveau_encre_min) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;/span&amp;gt;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &quot;&amp;lt;/p&amp;gt;\n&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;$monBic = new Stylo();&lt;br /&gt;$monBic-&amp;gt;ecrire(‘Essayez d\’écrire sans enlever le capuchon…’) ;&lt;/div&gt;
&lt;div&gt;$monBic-&amp;gt;click() ;&lt;/div&gt;
&lt;div&gt;$monBic-&amp;gt;ecrire(‘Un premier paragraphe.’) ;&lt;br /&gt;$monBic-&amp;gt;ecrire(‘Un second paragraphe qui n\’iras pas jusque au bout car mon stylo va certainement manquer d’encre.’);&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;$monBic-&amp;gt;click() ;&lt;/div&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;La plupart des développeurs qui ne développent pas encore en POO expliquent souvent que ; pour qu'il leur est plus &quot;naturel&quot; de concevoir et de lire un code &lt;strong&gt;procédural&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;C’est une fausse excuse. Sur un projet de taille un peu conséquente ; il sera plus facile de manipuler des objets et des entités logique. Ainsi que plus facile à écrire ; et&amp;nbsp;à naviguer au sein de ces entités. Que de se retrouver au milieu d’une foule de procédures ; complexifiant le code ; et très souvent même consommant trop de ressources.&lt;/p&gt;
&lt;p&gt;De plus ; l’exemple utilisé dans cet article démontre bien que ; grâce au concept objet ; vous pouvez intégrer &lt;strong&gt;absolument tous les cas&lt;/strong&gt; que vous aurez à traiter. Et ce ; en &lt;strong&gt;quelques minutes&lt;/strong&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-6#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-6#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/60</wfw:commentRss>
      </item>
    
  <item>
    <title>Introduction à la POO avec PHP - Partie 5</title>
    <link>http://methylbro.titaxium.org/post/2008/04/18/Introduction-a-la-POO-avec-PHP-Partie-5</link>
    <guid isPermaLink="false">urn:md5:51f4cc5da412eacdd8efc850fd5d74b2</guid>
    <pubDate>Fri, 18 Apr 2008 00:29:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>construct</category><category>php</category><category>POO</category>    
    <description>&lt;p&gt;A l’heure ou le premier billet de cette série commence à être référencé (&lt;a href=&quot;http://www.google.com/search?q=poo+avec+php&quot; hreflang=&quot;fr&quot;&gt;google&lt;/a&gt;) ; nous allons voir le dernier concept que vous devez connaitre avant de pouvoir commencer à écrire vos propres classes. &lt;/p&gt;
&lt;p&gt;Et comme promis&amp;nbsp;&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP&quot; hreflang=&quot;fr&quot;&gt;lundi&lt;/a&gt; ; demain vous devrez être en mesure d’écrire votre première classe ! Et nous verrons ca ensemble.&lt;/p&gt;    &lt;h1&gt;Les concepts généraux de la POO (suite)&lt;/h1&gt;
&lt;h2&gt;Le Constructeur&lt;/h2&gt;
&lt;p&gt;Le moteur objet de PHP implémente toute une série de méthodes dites « magiques » (__construct(), __destruct(), __sleep(), __serialize(), __call() …). Ici nous allons parler de __construct() : le constructeur.&lt;/p&gt;
&lt;p&gt;Lorsque vous créer une nouvelle &lt;strong&gt;instance de classe&lt;/strong&gt; (voir le paragraphe « classe et instance de classe) ; vous pouvez dores et déjà exécuter des opérations. Par exemple ; instancier des &lt;strong&gt;propriétés&lt;/strong&gt; avec les valeurs de votre choix. Bien entendu ; il n’est pas interdit de passer des paramètres à cette méthode.&lt;/p&gt;
&lt;p&gt;Pour illustrer ; nous allons définir la couleur de notre stylo lors de sa création :&lt;/p&gt;
&lt;code&gt;
&lt;p&gt;class Stylo {&lt;br /&gt;&amp;nbsp; private $niveau_encre ;&lt;br /&gt;&amp;nbsp; private $couleur ;&lt;br /&gt;&amp;nbsp; private $statut ;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function __construct($couleur) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // la propriété $couleur de l’instance de classe concerné&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // prendra la valeur passé en paramètre au constructeur.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;couleur = $couleur;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;// Nous allons créer un nouvel objet de type Stylo ;&lt;br /&gt;// avec en paramètre sa couleur.&lt;br /&gt;$monStyloNoir = new Stylo(‘#000000’) ;&lt;/p&gt;
&lt;/code&gt;
&lt;p&gt;En php4 ; le constructeur ne sera pas appelé de la même manière. Il ne devra pas s’appeler __construct(), il devra porter le même nom que celui que vous avez donné à votre classe.&lt;/p&gt;
&lt;p&gt;&lt;a lang=&quot;fr&quot; href=&quot;http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-6&quot;&gt;Lire la suite&lt;/a&gt;...&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/04/18/Introduction-a-la-POO-avec-PHP-Partie-5#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/04/18/Introduction-a-la-POO-avec-PHP-Partie-5#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/59</wfw:commentRss>
      </item>
    
  <item>
    <title>Introduction à la POO avec PHP - Partie 4</title>
    <link>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-4</link>
    <guid isPermaLink="false">urn:md5:cfe0000ac3ccf93908fe45c4a80a0dea</guid>
    <pubDate>Thu, 17 Apr 2008 06:30:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>php</category><category>POO</category><category>static</category>    
    <description>&lt;p&gt;Un article par jour pendant une semaine. Je m’y tiens autant que faire ce peut à ce rythme. Aujourd’hui donc ; 4éme jour. Et voici la suite de notre série de billets consacré à la Programmation Orienté Object avec PHP. &lt;/p&gt;    &lt;h1&gt;Les concepts généraux de la POO (suite)&lt;/h1&gt;
&lt;h2&gt;Les éléments Statiques&lt;/h2&gt;
&lt;p&gt;Un élément statique ; sera le même pour toutes les instances d’une même classe. Il peut aussi bien être une propriété ou une méthode. Et sera défini comme statique par le mot clé &lt;strong&gt;static&lt;/strong&gt;. C’est en fait exactement le même principe que les variables statique au sein des fonctions ; sauf qu’ici cela s’applique aussi à vos classes.&lt;/p&gt;
&lt;h3&gt;Les propriétés statique&lt;/h3&gt;
&lt;p&gt;Si vous définissez une propriété comme statique ; elle aura toujours la même valeur ; quelle que soit les instances de votre classe. Et vous pourrez même la modifier ou la lire sans passer par l’une de ses instances. &lt;/p&gt;
&lt;p&gt;Pour accéder ces propriétés statiques ; il est conseillé d’utiliser l’opérateur de résolution de portée.&lt;br /&gt;Pour plus d’informations : &lt;a href=&quot;http://fr.php.net/manual/fr/language.oop5.paamayim-nekudotayim.php&quot;&gt;http://fr.php.net/manual/fr/language.oop5.paamayim-nekudotayim.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans notre exemple ; si je définis la propriété Stylo ::couleur comme statique ; l’effet sera le suivant :&lt;/p&gt;
&lt;code&gt;
&lt;p&gt;Class Stylo {&lt;br /&gt;&amp;nbsp; static public $couleur ;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;// Je crée un stylo ; puis je met la couleur à FF00FF&lt;br /&gt;$stylo1 = new Stylo() ;&lt;br /&gt;$stylo1-&amp;gt;couleur = ‘#FF00FF’ ;&lt;/p&gt;
&lt;p&gt;// Je crée un autre stylo ; puis je change la couleur pour 00FFFF&lt;br /&gt;$stylo2 = new Stylo() ;&lt;br /&gt;$stylo2-&amp;gt;couleur = ‘#00FFFF’ ;&lt;/p&gt;
&lt;p&gt;// J’affiche la couleur des deux stylos.&lt;br /&gt;echo $stylo1-&amp;gt;couleur ; // Affiche #00FFFF&lt;br /&gt;echo $stylo2-&amp;gt;couleur ; // Affiche #00FFFF&lt;/p&gt;
&lt;p&gt;// Je change encore une fois la couleur&lt;br /&gt;Stylo::couleur = ‘#000000’;&lt;br /&gt;echo $stylo1-&amp;gt;couleur ; // Affiche #000000&lt;br /&gt;echo $stylo2-&amp;gt;couleur ; // Affiche #000000&lt;/p&gt;
&lt;/code&gt;
&lt;h4&gt;Les méthodes statique&lt;/h4&gt;
&lt;p&gt;Les méthodes statiques sont utilisées généralement pour définir plus d’un constructeur. Nous ne attarderons pas plus dessus dans cet article. Sachez simplement qu’elles existent.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/18/Introduction-a-la-POO-avec-PHP-Partie-5&quot; lang=&quot;fr&quot;&gt;Lire la suite&lt;/a&gt;...&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-4#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-4#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/57</wfw:commentRss>
      </item>
    
  <item>
    <title>Introduction à la POO avec PHP - Partie 3</title>
    <link>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-3</link>
    <guid isPermaLink="false">urn:md5:630b7af7f7d46dfd076c776f4044e722</guid>
    <pubDate>Wed, 16 Apr 2008 06:00:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>class</category><category>classe</category><category>php</category><category>POO</category><category>private</category><category>protected</category><category>public</category>    
    <description>&lt;p&gt;Vous le savez ; depuis lundi je m’efforce de faire découvrir à ceux qui ne le connaissent pas le monde le la Programmation Orienté Objet (&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP&quot; hreflang=&quot;fr&quot;&gt;voir ce billet&lt;/a&gt;). Une série de billet à l’occasion de la sortie cette semaine de la nouvelle version de Titaxium.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lundi : &lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP&quot; hreflang=&quot;fr&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mardi : &lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-2&quot; hreflang=&quot;fr&quot;&gt;Les Concepts Généraux de la POO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Aujourd’hui ; troisième Opus. &lt;/div&gt;    &lt;h1&gt;Les concepts généraux de la POO (suite)&lt;/h1&gt;
&lt;h2&gt;Porté des éléments&lt;/h2&gt;
&lt;p&gt;Il est possible de contrôler la visibilité des éléments de votre classe au sein de votre code. Pour ce faire nous allons découvrir de nouveaux mots clés.&lt;/p&gt;
&lt;p&gt;Si vous avez déjà pu lire du code source PHP écris avec de la POO ; vous avez sans doutes vu apparaitre des mots comme « &lt;strong&gt;public&lt;/strong&gt; », « &lt;strong&gt;private&lt;/strong&gt; » ou encore « &lt;strong&gt;protected&lt;/strong&gt; ».&lt;/p&gt;
&lt;p&gt;Ces mots clé sont utilisés pour définir la &lt;strong&gt;&lt;ins&gt;visibilité&lt;/ins&gt;&lt;/strong&gt; de vos éléments. J’entends par éléments ; les &lt;strong&gt;propriétés&lt;/strong&gt; et les &lt;strong&gt;méthodes&lt;/strong&gt; de votre classe. L’intérêt est de pouvoir limiter l’accès à ces éléments en fonction de l’endroit dans le code ou vous en faites appel.&lt;/p&gt;
&lt;p&gt;Vous pouvez restreindre la &lt;strong&gt;visibilité&lt;/strong&gt; de vos éléments selon les trois niveaux suivant :&lt;/p&gt;
&lt;h3&gt;Public&lt;/h3&gt;
&lt;p&gt;De n’importe où cet élément sera visible. A n’importe quel moment dans votre programme vous pourrez venir utiliser un élément défini comme public.&lt;/p&gt;
&lt;code&gt;
&lt;p&gt;class Stylo {&lt;br /&gt;&amp;nbsp; public $niveau_encre = 1;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;$unStylo = new Stylo();&lt;br /&gt;echo $unStylo-&amp;gt;niveau_encre; // Affiche 1&lt;br /&gt;&lt;br /&gt;$unStylo-&amp;gt;niveau_encre = 0;&lt;br /&gt;echo $unStylo-&amp;gt;niveau_encre; // Affiche 0&lt;/p&gt;
&lt;/code&gt;
&lt;h3&gt;Private&lt;/h3&gt;
&lt;p&gt;Si vous choisissez cette option ; votre élément ne sera visible &lt;strong&gt;uniquement par votre classe&lt;/strong&gt;. De la même manière que ; dans un développement procédural ; vous déclarez (par défaut) et utilisez une variable au sein d’une fonction. Cette variable ne sera visible et utilisable uniquement au sein de votre fonction ; et pour une utilisation de celle-ci.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;class Stylo {&lt;br /&gt;&amp;nbsp; private $niveau_encre = 1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function test() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $this-&amp;gt;niveau_encre ;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$unStylo = new Stylo();&lt;br /&gt;&lt;br /&gt;echo $unStylo-&amp;gt;niveau_encre; &lt;br /&gt;// Affiche l’erreur :&lt;br /&gt;// Cannot Access private property&lt;br /&gt;&lt;br /&gt;$unStylo-&amp;gt;test() ; // Affiche 1&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Protected&lt;/h3&gt;
&lt;p&gt;Ce type de visibilité est associé aux concepts d’héritages et de polymorphisme que nous ne traiterons pas dans cet article.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Par défaut en PHP ; tous vos éléments prendront la visibilité public.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/14/Introduction-a-la-POO-avec-PHP-Partie-4&quot; hreflang=&quot;fr&quot;&gt;Lire la suite&lt;/a&gt;...&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-3#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-3#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/56</wfw:commentRss>
      </item>
    
  <item>
    <title>Introduction à la POO avec PHP - Partie 2</title>
    <link>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-2</link>
    <guid isPermaLink="false">urn:md5:ffcadccb82724c37cdf2e3150dac6b61</guid>
    <pubDate>Tue, 15 Apr 2008 06:30:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>$this</category><category>class</category><category>classe</category><category>fonction</category><category>méthode</category><category>objet</category><category>php</category><category>POO</category><category>propriété</category>    
    <description>&lt;blockquote&gt;
&lt;p&gt;La programmation orientée objet (POO) ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l'assemblage de briques logicielles appelées objet ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_objet&quot; target=&quot;_blank&quot;&gt;http://fr.wikipedia.org/wiki/Programmation_orientée_objet&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ou bien d'un simple stylo !&lt;br /&gt;Comme promis&amp;nbsp;(&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP/&quot; hreflang=&quot;fr&quot;&gt;Introduction à la POO avec PHP - Partie 1&lt;/a&gt;) ; voici la deuxième partie de cette série de billets dédiés à la Programmation Orienté Objet avec PHP. &lt;/p&gt;    &lt;h1&gt;Les concepts généraux de la POO&lt;/h1&gt;
&lt;h2&gt;Classe et instance de classe&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Comme vous pouvez l’imaginer ; avant de pouvoir utiliser un objet ; nous allons devoir définir le type de cet objet.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;C’est à ce niveau que la compréhension risque d’être la moins évidente et la plus difficile. Il va falloir distinguer le &lt;strong&gt;type&lt;/strong&gt; d’un objet (entier, réel, booléen etc) de l’objet lui-même (33, 3.14, true etc).&lt;/p&gt;
&lt;p&gt;Lorsque nous définirons le type d’un objet ; nous parlerons de &lt;strong&gt;&lt;ins&gt;classes&lt;/ins&gt;&lt;/strong&gt;. Lorsque nous utiliserons ses classes pour créer et manipuler des objets nous parlerons d’&lt;strong&gt;&lt;ins&gt;instances de classes&lt;/ins&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pour illustrer ; je vais reprendre mon exemple des stylos. La classe sera le schéma pour un stylo. Comme un de plan de fabrication, ou d’utilisation. Tandis que l’instance de cette classe sera techniquement le stylo. Donc ; pour le même schéma ; pour la même classe ; vous pouvez avoir plusieurs stylos ; plusieurs &lt;strong&gt;objets&lt;/strong&gt; ou &lt;strong&gt;instances de classe&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;En php définir une classe est aussi simple que de définir une fonction :&lt;/p&gt;
&lt;code&gt;
&lt;p&gt;class Stylo {&lt;br /&gt;&amp;nbsp; // définition des propriétés&lt;br /&gt;&amp;nbsp; // définition des méthodes&lt;br /&gt;}&lt;/p&gt;
&lt;/code&gt;
&lt;p&gt;Une fois la classe définie ; vous pouvez très bien créer un nouvel objet ; une nouvelle instance de votre classe. Pour ce faire ; en php on utilise l’opérateur new.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// $myClassInstance est un nouvel objet de type Stylo&lt;br /&gt;$myClassInstance = new Stylo() ;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Les propriétés&lt;/h2&gt;
&lt;p&gt;Les &lt;strong&gt;propriétés&lt;/strong&gt; sont des variables associés aux &lt;strong&gt;instances&lt;/strong&gt; de vos classes (ceci est une généralité. Nous verrons plus loin que des cas spécifiques sont possibles ; notamment avec le mot clé &lt;em&gt;static&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Par exemple ; si nous considérons une entité de type Personne. Chaque personnes possède un nom ; un prénom et une date de naissance. Et bien ces informations seront des propriétés de la classe Personne. Chaque instance de Personne possédera donc un nom ; un prénom et une date de naissance.&lt;/p&gt;
&lt;p&gt;Si je reprends mon exemple du stylo ; chaque stylo aura comme propriété un niveau d’encre ; une couleur ; et un statut pour savoir si ma mine est sortie ou capuchée. La définition de ma classe Stylo prendra donc la forme suivante :&lt;/p&gt;
&lt;code&gt;
&lt;p&gt;class Stylo {&lt;br /&gt;&amp;nbsp; var $niveau_encre ;&lt;br /&gt;&amp;nbsp; var $couleur ;&lt;br /&gt;&amp;nbsp; var $statut ;&lt;br /&gt;&amp;nbsp; // définition des méthodes&lt;br /&gt;}&lt;/p&gt;
&lt;/code&gt;
&lt;p&gt;Le mot clés var n’est plus utilisé depuis php5. Cependant il a été conservé pour une compatibilité avec php4. Il est utilisé ici ; juste pour que vous sachiez qu’il existe et pour que vous ne soyez pas surpris si un jour vous le rencontrez.&lt;/p&gt;
&lt;h2&gt;Les méthodes&lt;/h2&gt;
&lt;p&gt;Les &lt;strong&gt;méthodes&lt;/strong&gt; sont des procédures et/ou des fonctions associées aux &lt;strong&gt;instances&lt;/strong&gt; de vos classes. De la même façon que les &lt;strong&gt;propriétés&lt;/strong&gt; ; nous verrons plus loin que cette affirmation est une généralité assujettie à des exceptions.&lt;/p&gt;
&lt;p&gt;Au sein de vos méthodes ; vous pouvez faire appel aux autres éléments (méthodes et ou propriétés) de votre instance de classe à l’aide de l’objet &lt;strong&gt;&lt;ins&gt;$this&lt;/ins&gt;&lt;/strong&gt;. Qui est en fait une référence vers l’instance de classe concernée. &lt;/p&gt;
&lt;p&gt;Par exemple ; nous allons créer une &lt;strong&gt;méthode&lt;/strong&gt; qui renvoie vrai si le niveau d’encre est suffisant pour écrire ; et faux le cas contraire. Vous allez voir que ; a part la possibilité d’accéder aux propriétés de l’objet en cours ; rien ne change comparativement aux fonctions que vous connaissez.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;class Stylo {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; $niveau_encre ;&lt;br /&gt;&amp;nbsp; $couleur ;&lt;br /&gt;&amp;nbsp; $statut ;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function peutEcrire() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($this-&amp;gt;niveau_encre&amp;lt;=0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result =&amp;nbsp;true ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $result ;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-3&quot; hreflang=&quot;fr&quot;&gt;Lire la suite&lt;/a&gt;...&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-2#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/04/13/Introduction-a-la-POO-avec-PHP-Partie-2#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/55</wfw:commentRss>
      </item>
    
</channel>
</rss>