Guest User

Untitled

a guest
Nov 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. # Classes PHP
  2.  
  3. ## I. Concept
  4. Une classe est un élément de code qui contient d'autres éléments. Ces éléments sont propres à la classe, et peuvent être utilisés au sein d'elle même. On appelle les variables de la classe des Propriétés, et ses fonctions des méthodes. Par convention, le nom d'une classe commence toujours par une majuscule.
  5.  
  6. #### 1. Propriétés
  7.  
  8. `$property = 'content';`
  9. + La propriété est contenu dans chaque instance de l'objet.
  10. + Une classe peut contenir autant de propriétés que l'on souhaite.
  11.  
  12. #### 2. Méthodes
  13.  
  14. `function method() {}`
  15. + Une méthode est une fonction propre à l'objet. Elle peut s'executer en prenant en compte les autres propriétés et méthodes propres à l'objet.
  16. + Une classe peut contenir autant de méthodes que l'on souhaite.
  17.  
  18. ## II. Application
  19.  
  20. #### 1. Création et utilisation d'une classe.
  21.  
  22. + Il faut *construire* une classe, le mot clé utilisé est `class`. Les propriétés et routines de la classe sont placées entre accolades.
  23. + Il faut *créer* la classe dans une variable pour l'utiliser. On utilise pour cela le mot clé `new`.
  24. + On accède aux propriétés et méthodes grace à la syntaxe Classe->Membre *(tiret-chevron>)*.
  25. + On accède à la classe comme à une variable normale, avec le signe $.
  26. + Il ne faut pas utiliser le signe $ avant l'accès à une propriété.
  27. + Une méthode est une fonction, même sans paramètre il faut utiliser les parenthèses ().
  28.  
  29.  
  30.  
  31. ```php
  32. class MyClass
  33. {
  34. public $property = 'Une propriété<br>';
  35.  
  36. function method()
  37. {
  38. return 'Une méthode<br>';
  39. }
  40. }
  41.  
  42. $object = new MyClass();
  43. echo $object->property;
  44.  
  45. echo $object->method();
  46. ```
  47. ```
  48. Une propriété
  49. Une méthode
  50. ```
  51.  
  52. #### 2. Visibilité des éléments
  53.  
  54. + On peut définir une visibilité aux membres des classes. La visibilité permet de limiter ou non l'accès en lecture et en écriture au membre de la classe depuis l'extérieur. Les deux mots clés principaux sont `public` et `private`, mais il en existe d'autres.
  55.  
  56. **`public`**
  57. + l'élément est accessible à l'intérieur et à l'extérieur de l'objet.
  58. ```php
  59. class MyClass
  60. {
  61. public $property = "public param";
  62. }
  63. $object = new MyClass();
  64. echo $object->property;
  65. ```
  66.  
  67. ```
  68. public param
  69. ```
  70.  
  71. **`private`**
  72. + L'élément n'est accessible qu'à l'intérieur de la classe
  73. ```php
  74. class MyClass
  75. {
  76. private $property = 'Une propriété privé<br>';
  77. }
  78.  
  79. $object = new MyClass();
  80. echo $object->property;
  81.  
  82. $object->property = 'Nouvelle valeur';
  83. ```
  84. ```
  85. Fatal error: Uncaught Error: Cannot access private property MyClass::$property
  86. ```
  87.  
  88. + Nous aurons besoin *d'accesseurs* pour pouvoir lire et définir les propriétés protégées par *`private`*.
  89.  
  90. #### 3. La variable $this
  91.  
  92. + `$this` est une variable contextuelle, qui existe dans tous les objet. C'est un objet qui pointe vers la classe dans laquelle il est appelé.
  93. + `$this` ne s'utilise que dans les méthodes de l'objet.
  94.  
  95. ```php
  96. class MyClass
  97. {
  98. public $property = "Une propriété<br>";
  99.  
  100. public function modifyProperty()
  101. {
  102. $this->property = 'Une propriété modifiée grace à $this<br>';
  103. }
  104. }
  105.  
  106. $object = new MyClass();
  107.  
  108. echo $object->property;
  109.  
  110. $object->property = 'Une propriété modifiée<br>';
  111.  
  112. echo $object->property;
  113.  
  114. $object->modifyProperty();
  115.  
  116. echo $object->property;
  117.  
  118. $this->property = 'bonjour';
  119. ```
  120. ```
  121. Une propriété
  122. Une propriété modifiée
  123. Une propriété modifiée grace à $this
  124.  
  125. Fatal error: Uncaught Error: Using $this when not in object context
  126. ```
  127.  
  128. #### 4. Accesseurs
  129.  
  130. + Pour des raisons de sécurité, les propriétés des classes sont généralement *`private`*. Pour pouvoir y accéder, pour les lire ou les modifier depuis l'extérieur de la classe, nous définirons des méthodes que l'on appelle *accesseurs*.
  131. + Il existe deux types principaux d'accesseurs. *GET* et *SET*. *GET* permet de récupérer le contenu d'une variable, *SET* permet de le modifier.
  132. + set et get sont des nom arbitraires, c'est à vous d'écrire les accesseurs, sous la forme de set*Name*(), get*Name*().
  133.  
  134. ```php
  135. class MyClass
  136. {
  137. private $property = "Une propriété<br>";
  138.  
  139. public function getProperty()
  140. {
  141. return $this->property;
  142. }
  143.  
  144. public function setProperty($value)
  145. {
  146. $this->property = $value;
  147. }
  148. }
  149.  
  150. $object = new MyClass();
  151.  
  152. echo $object->getProperty();
  153.  
  154. $object->setProperty('Nouvelle valeur');
  155.  
  156. echo $object->getProperty();
  157. ```
  158.  
  159. ```
  160. Une propriété
  161. Nouvelle valeur
  162. ```
Add Comment
Please, Sign In to add comment