我把这个想法记下来了,这么简单,我认为这可能是不切实际的,所以我会评论这样一个系统的优点(如果有的话)和缺点。
目的是开发一个简单但实用的系统权限。
我可以看到的问题是,如果你想保护一个特定的函数,你必须突然重命名它以具有conf_
前缀。
我会围绕一个类编写一个代理,该代理在调用方法时检查文档块。只是一个想法:
class ArticlesProxy
{
private $backend;
public function __construct(articles $backend)
{
$this->backend = $backend;
}
public function __call($fn, $args)
{
$rm = new ReflectionMethod($this->backend, $fn);
if (strpos($rm->getDocComment(), 'protected') !== false) {
// this method is protected by whatever
}
// perform the proxy call
return $rm->invokeArgs($args);
}
}
$proxy = new ArticlesProxy(new articles());
$proxy->create(1, 2, 3);