Il existe de la doc en ligne concernant l'objet proxy dont tu parles ?
Le 18 novembre 2011 13:23, Dsls <[email protected]> a écrit : > Hello, > > Gros sujet de réflexion sur les classes core de dotclear, et de leur > utilisation actuelle. > > J'ai volontairement isolé certaines méthodes des classes dcBlog et > dcCore (voir en annexe). > Pour moi, les fonctions en question ne devraient pas être > disponibles/accessibles coté public du blog. > > Il pourrait être intéressant d'avoir une instanciation différente > selon qu'on est coté > public ou coté admin du blog : coté public, on ouvre un sous-ensemble > de fonctionnalités > (des objets core et blog bridés en quelque sorte), et coté admin on > donne les objets complets. > > Cela peut être mis en oeuvre de plusieurs façons. Exemple pour dcBlog : > * Un objet dcBlog épuré implémenté coté public, dont hérite un objet > dcBlogAdmin plus complet > * Un objet dcBlog complet coté admin, dont hérite un objet > dcBlogPublic qui surcharge les fonctions interdites > * Un objet dcBlog complet coté admin, et un objet "proxy" (au sens > design pattern du terme) utilisé en guise de > dcBlog coté public, le proxy contrôlant ce qui est appelable ou pas. > > L'avantage du 3e cas est qu'on peut mettre les behaviors qu'on veut > avant et/ou après l'appel à des fonctions core et/ou blog. > > Je conçois qu'aujourd'hui c'est assez abstrait et peut paraître > inutile, dans la mesure on on n'a pas vraiment besoin > de cette protection dans la gestion actuelle du moteur de template, > mais si on réfléchit un peu plus loin avec un nouveau moteur > de templates (twig pour ne citer que lui), offrir un objet dcBlog > "protégé" dans le contexte du template permettrait une grande > simplification de l'écriture de templates, et surtout une certaine > sécurisation à ce niveau. > > A+, > Bruno > > > == Annexe == > dcBlog : > public function __construct($core, $id) > public function addCategory($cur,$parent=0) > public function addComment($cur) > public function addPost($cur) > public function categories() > public function delCategory($id) > public function delComment($id) > public function delPost($id) > public function resetCategoriesOrder() > public function setCategoryParent($id,$parent) > public function setCategoryPosition($id,$sibling,$move) > public function > setPostContent($post_id,$format,$lang,&$excerpt,&$excerpt_xhtml,&$content,&$content_xhtml) > public function updComment($id,$cur) > public function updCommentStatus($id,$status) > public function updPost($id,$cur) > public function updPostCategory($id,$cat_id) > public function updPostSelected($id,$selected) > public function updPostStatus($id,$status) > > dcCore : > public function __construct($driver, $host, $db, $user, $password, > $prefix, $persist) > public function addBlog($cur) > public function addFormater($name,$func) > public function addUser($cur) > public function checkNonce($secret) > public function countAllComments() > public function countBlogPosts($id,$type=null) > public function emptyTemplatesCache() > public function indexAllComments($start=null,$limit=null) > public function indexAllPosts($start=null,$limit=null) > public function initWikiComment() > public function initWikiPost() > public function initWikiSimpleComment() > public function setBlog($id) > public function setUserBlogPermissions($id, $blog_id, $perms, > $delete_first=true) > public function setUserDefaultBlog($id, $blog_id) > public function setUserPermissions($id,$perms) > public function setVersion($module,$version) > public function unsetBlog() > public function updBlog($id,$cur) > public function updUser($id,$cur) > public function userDefaults() > public function wikiPostLink($url,$content) > _______________________________________________ > Dev mailing list > [email protected] > http://ml.dotclear.org/listinfo/dev > _______________________________________________ Dev mailing list [email protected] http://ml.dotclear.org/listinfo/dev
