[spip-dev] programmation objet

Coucou,

en y réfléchissant, il serait peut-être pas mal, à moyen terme, de passer
spip en programmation objet. Si j'ai bien compris l'exemple de la "class
Link" donné par Antoine, une classe Article permettrait de programmer
l'espace privé de spip avec des choses relativement simples, et surtout sans
commandes mySQL :

// exemple 1 - modifier le texte de l'article $id_article
$article = new Article;
$article->id_article = 7
$article->getSQLData(); // recupere les donnees de l'article n° 7 dans la base
$article->texte = ereg_replace(...., $article->texte);
$article->saveSQLData();

// exemple 2 - créer un nouvel article
$article = new Article;
$article->titre = "Nouvel article";
$article->saveSQLData(); // pas d'id_article dans l'objet $article, donc
                         // la classe va faire un insert() SQL au lieu
                         // d'un update() et mettre à jour le champ
                         // id_article de l'objet
echo "nous venons de créer l'article ".$article->id_article;

etc. C'est ça ? L'objet se chargerait lui-même de vérifier que celui qui
le modifie a bien les permissions d'éditer les champs en question, ce qui
soulagerait le concepteur de l'interface privée des questions de sécurité.

Si c'est une bonne piste, on devrait en faire une première étape avant
l'internationalisation, car ça permettrait de mettre toutes les commandes de
structure dans les classes objets, et de construire autour une interface
privée très légère en code. Donc un spip moins "uzine à gaz".

-- Fil