Envoyé par unreal
Objet PHP, pour quoi faire ?
Commençons par une question (celle que vous vous posez peut-être) :
L'intérêt principal est de pouvoir ré-utiliser facilement le même code dans d'autres projets. En effet, l'utilisation de classes permet de développer des blocs, dont le fonctionnement interne importe peu mais dont les entrées/sorties sont parfaitement décrites. Un peu à la manière des fonctions classiques, avec l'organisation en plus : on range les éléments (variables et fonctions) de même type ensemble. Ceci évite d'avoir des 'fonctions.php' contenant 500 fonctions complètement en vrac, organisation qui devient vite ingérable.
Syntaxe d'une classe php
Comme dans toute programmation objet, le constructeur sera appelé lors de la création d'un nouvel objet :
A partir de là, il est possible d'accéder aux variables et fonctions membres :
Exemple de code
La classe suivante permet de calculer le temps de génération d'un script PHP.
Remarque : il faut employer $this-> pour faire appel à une variable d'une classe depuis l'intérieur de l'objet, par exemple $this->starttime.
L'utilisation de la classe se fait de la manière suivante :
index.php
Conclusion
Sachez qu'il est possible de faire des classes dérivées ainsi que des fonctions virtuelles, mais cela ne sera pas traité dans ce guide.
Pour la documentation officielle, c'est par ici.
Commençons par une question (celle que vous vous posez peut-être) :
Quel intérêt de programmer en objet dans un langage Web comme le PHP ?
L'intérêt principal est de pouvoir ré-utiliser facilement le même code dans d'autres projets. En effet, l'utilisation de classes permet de développer des blocs, dont le fonctionnement interne importe peu mais dont les entrées/sorties sont parfaitement décrites. Un peu à la manière des fonctions classiques, avec l'organisation en plus : on range les éléments (variables et fonctions) de même type ensemble. Ceci évite d'avoir des 'fonctions.php' contenant 500 fonctions complètement en vrac, organisation qui devient vite ingérable.
Syntaxe d'une classe php
class ma_classe {
// On déclare les variables
var $var1;
var $array1 = array();
[...]
// Méthodes
// Constructeur : il porte le même nom que la classe
function ma_classe() {
[...]
}
// Fonction membre
function func1($var2) {
[...]
}
[...]
}
// On déclare les variables
var $var1;
var $array1 = array();
[...]
// Méthodes
// Constructeur : il porte le même nom que la classe
function ma_classe() {
[...]
}
// Fonction membre
function func1($var2) {
[...]
}
[...]
}
Comme dans toute programmation objet, le constructeur sera appelé lors de la création d'un nouvel objet :
$mon_objet = new ma_classe();
A partir de là, il est possible d'accéder aux variables et fonctions membres :
$mon_objet->var1 = 'Salut !';
$mon_objet->func1($mon_objet->var1);
$mon_objet->func1($mon_objet->var1);
Exemple de code
La classe suivante permet de calculer le temps de génération d'un script PHP.
class debug {
var $starttime;
function start_timer() {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$this->starttime = $mtime[1] + $mtime[0];
}
function stop_timer() {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
return (round(($mtime - $this->starttime), 4));
}
}
var $starttime;
function start_timer() {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$this->starttime = $mtime[1] + $mtime[0];
}
function stop_timer() {
$mtime = microtime();
$mtime = explode(' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
return (round(($mtime - $this->starttime), 4));
}
}
Remarque : il faut employer $this-> pour faire appel à une variable d'une classe depuis l'intérieur de l'objet, par exemple $this->starttime.
L'utilisation de la classe se fait de la manière suivante :
index.php
<?php
$debug = new debug;
$debug->start_timer();
[...]
echo ('La page a été générée en ' . $debug->stop_timer() . ' secondes');
?>
$debug = new debug;
$debug->start_timer();
[...]
echo ('La page a été générée en ' . $debug->stop_timer() . ' secondes');
?>
Conclusion
Sachez qu'il est possible de faire des classes dérivées ainsi que des fonctions virtuelles, mais cela ne sera pas traité dans ce guide.
Pour la documentation officielle, c'est par ici.
Posté le 10/06/05 à 03:35