20-10-2011, 09:12 AM
+1 Sephi concernant les frameworks! L'apprentissage n'est pas si compliqué, il faut juste choisir le bon framework pour apprendre (personnellement les 2 plus abordables seraient CakePhp et Ruby on rails).
Je reviens également sur ce que tu as dis hier ("je verrais plus tard pour les héritages car là c'est du domaine de l’ésotérisme pour le moment... "), c'est une grave erreur de dire ca, l'héritage est un des concepts les plus importants dans la POO et tu ne pourras sans doute pas faire ce que tu veux sans l'utiliser!
En reprenant ton exemple du blog, qu'est qu'on en commun les objets Categorie, Article et Commentaire? On les gère tous avec une base de données (sauvegarder, trouver selon certain critère, etc...)? C'est ici que l'héritage va être utile!
ton code devient :
Voila, j'espère que je t'ai montré que la POO et l'héritage sont indissociables! Et surtout sache que ce mécanisme ne sera pas à coder si tu utilise un framework puisque, entre autre, c'est une des principales fonctions de ceci
Je reviens également sur ce que tu as dis hier ("je verrais plus tard pour les héritages car là c'est du domaine de l’ésotérisme pour le moment... "), c'est une grave erreur de dire ca, l'héritage est un des concepts les plus importants dans la POO et tu ne pourras sans doute pas faire ce que tu veux sans l'utiliser!
En reprenant ton exemple du blog, qu'est qu'on en commun les objets Categorie, Article et Commentaire? On les gère tous avec une base de données (sauvegarder, trouver selon certain critère, etc...)? C'est ici que l'héritage va être utile!
ton code devient :
class ObjectDB {
function save ($params ) { /*Ici on sauvegarde dans la bdd */ }
function update ($params ) { /*Ici on sauvegarde dans la bdd */ }
function delete () { /* Ici on delete l'objet dans bdd */ }
static function find( $criterion ) { /*Ici on fera du SELECT en fonction des critères*/ }
}
class Article extends ObjectDB {
/* Plus besoin de s'occuper du save et autres ici! */
public $title;
public $body;
public $created_at;
/*Ici tu peux placer les fonctions propres à ton objet
}
/* et tu utilises ca comme ceci :*/
$last_article = Article::find(array("order_by" => "id", "limit" => "1"));
$last_article->update(array("body" => null));
/* Ici j'ai récupéré le dernier article et mis à vide le contenu du corps de l'article */
$very_old_articles = Article::find(array("where" => "NOW() - created_at > 3650"));
foreach ($very_old_articles as $article) {
$aricle->delete();
}
/* Ici j'ai récupéré les articles vieux de plus de 10 ans et je les ai supprimés */
Voila, j'espère que je t'ai montré que la POO et l'héritage sont indissociables! Et surtout sache que ce mécanisme ne sera pas à coder si tu utilise un framework puisque, entre autre, c'est une des principales fonctions de ceci