关于Yii之Namespace

Yii框架的设计很8错~

但是最近项目“重构”过程中引入Yii Framework,在进行SRBAC定制的过程中无意中发现一个很麻烦的问题:

Yii框架对Namespace的支持不够给力?

protected/modules/srbac/controllers/AuthitemController.php的私有方法:

  1.     private function _extendsSBaseController($controller) {
    
  2.             $c = basename(str_replace(".php", "", $controller));
    
  3.             if (!class_exists($c, false)) {【在Yii+PHP5.2环境下,导致同名类会判断不准】
    
  4.                     include_once $controller;
    
  5.             } else {
    
  1.             }
    
  2.             $cont = new $c($c);
    
  1.             //                if ($cont instanceof SBaseController) {
    
  2.             //                        return true;
    
  3.             //                }
    
  4.             if ($cont instanceof BaseController) {
    
  5.                     return true;
    
  6.             }
    
  7.             return false;
    
  8.     }
    

不知在PHP5.3下如何?

感觉Zend Framework框架本身命名规范能更好的规避PHP 5.2不支持Namespace的问题

/ZendFramework/library/Zend/Acl/Role.php

class Zend_Acl_Role implements Zend_Acl_Role_Interface

{

}

这个,牵扯到所有了类的命名。不好改啊。

我也正纠结呢~

Yii Framework类图及时序图

http://mamamiya.5d6d.com/viewthread.php?tid=101&page=1#pid307

Yii Framework的“组件”概念很赞~

但是不知道Yii在PHP 5.3下是否就没有Namespace的问题了

我看了一下Zend Framework的一些源码,它的类好像没有类似CComponent的基类,而且命名规范屏蔽了Namespace的问题,不知道在Yii中是否有好的解决方案~