Yii框架的设计很8错~
但是最近项目“重构”过程中引入Yii Framework,在进行SRBAC定制的过程中无意中发现一个很麻烦的问题:
Yii框架对Namespace的支持不够给力?
protected/modules/srbac/controllers/AuthitemController.php的私有方法:
-
private function _extendsSBaseController($controller) {
-
$c = basename(str_replace(".php", "", $controller));
-
if (!class_exists($c, false)) {【在Yii+PHP5.2环境下,导致同名类会判断不准】
-
include_once $controller;
-
} else {
-
}
-
$cont = new $c($c);
-
// if ($cont instanceof SBaseController) {
-
// return true;
-
// }
-
if ($cont instanceof BaseController) {
-
return true;
-
}
-
return false;
-
}
不知在PHP5.3下如何?
感觉Zend Framework框架本身命名规范能更好的规避PHP 5.2不支持Namespace的问题
/ZendFramework/library/Zend/Acl/Role.php
class Zend_Acl_Role implements Zend_Acl_Role_Interface
{
…
}