J'ai trouvé ça : http://www.zeitoun.net/articles/proxyfier-un-objet-php/start

Le 18 novembre 2011 13:53, Franck Paul <[email protected]> a écrit :
> 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

Répondre à