Dans le développement d’applications Web, le contrôle des autorisations est un élément important pour garantir la sécurité. PHP fournit une variété de modificateurs d'autorisation pour contrôler l'accès aux classes, propriétés et méthodes. Cet article analysera en détail les fonctions de ces modificateurs et montrera comment les appliquer avec un exemple de code.
Public est le modificateur le plus basique de PHP, indiquant que les classes, propriétés et méthodes sont accessibles de n'importe où. Les membres déclarés publics peuvent être directement appelés par du code extérieur à la classe. Par exemple:
class Car {
public $color; // publicpropriété
public function drive() { // publicméthode
echo "Driving";
}
}
Dans le code ci-dessus, la propriété $color et la méthode drive() de la classe Car sont toutes deux publiques, elles sont donc accessibles par n'importe quel objet :
$myCar = new Car();
$myCar->color = "red"; // accéderpublicpropriété
$myCar->drive(); // appelpublicméthode
Le modificateur protected indique que la propriété ou la méthode n'est accessible qu'au sein de la classe elle-même et de ses sous-classes. Il ne peut pas être appelé directement depuis l’extérieur de la classe. Par exemple:
class Car {
protected $color; // protectedpropriété
protected function drive() { // protectedméthode
echo "Driving";
}
}
Les sous-classes peuvent accéder aux membres protégés de la classe parent :
class SportsCar extends Car {
public function set_color($color) {
$this->color = $color; // accéderprotectedpropriété
}
}
$sportsCar = new SportsCar();
$sportsCar->set_color("blue"); // appelpublicméthode
Private est le modificateur d'accès le plus strict, autorisant l'accès uniquement au sein de la classe. Les membres privés ne sont pas accessibles ou appelés en dehors de la classe. Par exemple:
class Car {
private $mileage; // privatepropriété
private function update_mileage() { // privateméthode
$this->mileage++;
}
}
L'accès aux membres privés en dehors de la classe entraîne une erreur :
$myCar = new Car();
$myCar->mileage = 1000; // erreur
$myCar->update_mileage(); // erreur
Le modificateur final peut être utilisé sur les classes et les méthodes pour indiquer qu'elles ne peuvent pas être héritées ou remplacées. Utilisé pour garantir qu’une classe ou une méthode n’est pas modifiée. Par exemple:
class Car {
final public function drive() { // finalméthode
echo "Driving";
}
}
class SportsCar extends Car {
public function drive() { // Signalera une erreur
echo "Driving fast";
}
}
L'utilisation de final peut garantir que les méthodes ou classes importantes restent inchangées, améliorant ainsi la stabilité et la sécurité du code.
Cet article présente les modificateurs d'autorisation couramment utilisés dans PHP et leurs applications :
La maîtrise de l'utilisation de ces modificateurs peut aider à obtenir un bon contrôle des autorisations et une bonne conception de la structure du code, ainsi qu'à améliorer la sécurité et la maintenabilité des applications.