Beruflich Dokumente
Kultur Dokumente
Bertrand Estellon
Aix-Marseille Université
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 1 / 177
PHP Programmation Orientée Objet Introduction
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 122 / 177
PHP Programmation Orientée Objet Classe et instance
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 123 / 177
PHP Programmation Orientée Objet Classe et instance
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 124 / 177
PHP Programmation Orientée Objet Classe et instance
<?
class Date {
public $day = 2;
public $month = 3;
public $year = 1970;
public function getYear() { return $this->year; }
public function setDay($day) { $this->day = day; }
}
$this
<?
class Date {
public $day = 2;
public $month = 3;
public $year = 1970;
public function getYear() { return $this->year; }
public function setDay($day) { $this->day = day; }
}
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 126 / 177
PHP Programmation Orientée Objet Classe et instance
private $month = 1;
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 127 / 177
PHP Programmation Orientée Objet Classe et instance
Constructeur et destructeur
<?
class Date {
private $day, $month, $year;
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 128 / 177
PHP Programmation Orientée Objet Héritage et interface
Interface
<?
interface Movable {
public function translate($dx, $dy);
}
Héritage
<?
class Point {
public $x, $y;
function __construct($x, $y) { $this->x = $x; $this->y = $y; }
function toString() { return $this->x.",".$this->y; }
}
function toString() {
return parent::toString()."[".$this->color."]";
}
} ..
.
..
.
..
. . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
.
?> Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 130 / 177
PHP Programmation Orientée Objet Héritage et interface
Héritage
<?
$point = new Point(2,3);
$pixel = new Pixel(2,3,"red");
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 131 / 177
PHP Programmation Orientée Objet Héritage et interface
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 132 / 177
PHP Programmation Orientée Objet Héritage et interface
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 133 / 177
PHP Programmation Orientée Objet Héritage et interface
Classe abstraite
<?
abstract class Person {
abstract public function getName();
Visibilité
▶ public : utilisable par n’importe quelle partie du programme.
▶ protected : utilisable uniquement par les classes et parents hérités.
▶ private : utilisable uniquement par la classe qui les a définis.
<?
class MyClass {
public $pub;
protected $pro;
private $pri;
public function publicMethod() { ... }
protected function protectedMethod() { ... }
private function privateMethod() { ... }
}
Visibilité
▶ public : utilisable par n’importe quelle partie du programme.
▶ protected : utilisable uniquement par les classes et parents hérités.
▶ private : utilisable uniquement par la classe qui les a définis.
<?
class MyClass {
public $pub;
protected $pro;
private $pri;
public function publicMethod() { ... }
protected function protectedMethod() { ... }
private function privateMethod() { ... }
}
Clonage
<?
class Point {
public $x, $y;
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 137 / 177
PHP Programmation Orientée Objet Méthodes magiques
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 138 / 177
PHP Programmation Orientée Objet Méthodes magiques
Bertrand Estellon (AMU) PHP – Master CCI January 30, 2014 139 / 177