PHP - Encapsulation
L'encapsulation est l'un des principes fondamentaux de la programmation orientée objet (POO). Elle fait référence au regroupement de données avec les méthodes qui opèrent sur ces données. En PHP, l'encapsulation peut être réalisée à l'aide de classes et de modificateurs d'accès tels que public
, private
et protected
. Ce tutoriel vous guidera à travers les bases de l'encapsulation en PHP, en partant des membres public
, puis en passant aux membres private
, et enfin en couvrant les membres protected
.
Public Members
Les membres public
sont accessibles depuis n'importe où, à l'intérieur comme à l'extérieur de la classe. Ils sont déclarés à l'aide du mot-clé public
. Voici un exemple d'une classe simple avec un membre public
:
class Car {
public $color;
public function setColor($color) {
$this->color = $color;
}
public function getColor() {
return $this->color;
}
}
$myCar = new Car();
$myCar->setColor("red");
echo "My car is " . $myCar->getColor() . "."; // Output: My car is red.
Dans cet exemple, nous avons une classe Car
avec une propriété public
$color
et deux méthodes public
setColor()
et getColor()
. Nous pouvons facilement définir et obtenir la couleur de la voiture depuis l'extérieur de la classe.
Private Members
Les membres private
ne sont accessibles que dans la classe où ils sont définis. Ils sont déclarés à l'aide du mot-clé private
. Voici un exemple d'une classe avec un membre private
:
class BankAccount {
private $balance;
public function __construct($initialBalance) {
$this->balance = $initialBalance;
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount;
}
}
public function getBalance() {
return $this->balance;
}
}
$myAccount = new BankAccount(100);
$myAccount->deposit(50);
echo "My account balance is " . $myAccount->getBalance() . "."; // Output: My account balance is 150.
Dans cet exemple, nous avons une classe BankAccount
avec une propriété private
$balance
et deux méthodes public
deposit()
et getBalance()
. La propriété $balance
n'est pas directement accessible depuis l'extérieur de la classe, mais nous pouvons la manipuler à l'aide de la méthode deposit()
et récupérer sa valeur à l'aide de la méthode getBalance()
.
Protected Members
Les membres protected
sont accessibles à l'intérieur de la classe où ils sont définis ainsi que dans toutes les sous-classes. Ils sont déclarés à l'aide du mot-clé protected
. Voici un exemple d'une classe avec un membre protected
:
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
}
class Dog extends Animal {
public function bark() {
echo "Woof! I am " . $this->name . ".";
}
}
$myDog = new Dog("Buddy");
$myDog->bark(); // Output: Woof! I am Buddy.
Dans cet exemple, nous avons une classe Animal
avec une propriété protected
$name
. La classe Dog
étend la classe Animal
et a accès à la propriété $name
parce qu'elle est protected
. Nous pouvons utiliser la propriété $name
à l'intérieur de la classe Dog
pour implémenter la méthode bark()
.
Conclusion
L'encapsulation est un concept crucial en POO qui aide à maintenir l'intégrité des données en limitant l'accès direct à celles-ci. En utilisant des modificateurs d'accès tels que public
, private
et protected
, vous pouvez contrôler comment vos données sont accédées et modifiées. Comprendre l'encapsulation vous aidera à écrire du code plus robuste et plus facile à maintenir en PHP et dans d'autres langages POO.
Credits: Image by storyset