学习yii有一段时间了,很惊人的框架,十分顺手!但是还有点想法:
一是yii里面的autoload,既然重写yii类了,我怎么方便地增加一些自动加载的类呢?现在的$_coreClasses是不可写的。建议给一个机制吧。
我现在是这样解决的:
spl_autoload_register(’__autoload’);
require (dirname(FILE) . ‘/../YiiBase.php’);
class Yii extends YiiBase
{
private static $_yaClasses = array(
'YTimeZone' => '/ya/i18n/YTimeZone.php',
//... ...
);
/**
* 自动加载
*
* @param string $className 类名称
* @return boolean 是否载入成功
*/
static public function autoload ($className)
{
if (isset(self::$_yaClasses[$className]))
include YII_PATH . self::$_yaClasses[$className];
}
}
function __autoload ($className)
{
return Yii::autoload($className);
}
感觉很繁琐。
二是,module的语言文件,我希望复制一个module就可以使用其语言文件。但是现在的yii::t()只能加载messages下的文件,不能加载module/abc/messages下的。
我觉得module应该比较独立,所以像语言文件什么的都应该独立放置。我目前的解决方法是重写了t函数,通过yii::t(‘abc/create’, ‘create_success’);的形式来使用module的语言文件。感觉这样很方便。
三是,应该给widgets一个目录,不再放到components目录下面。这样应该更方便管理。