根据这个链接,我几乎设法实现了结构.但路径别名让我很困惑.有人可以解释我如何实现这一目标.
http://www.yiiframework.com/wiki/155/the-directory-structure-of-the-yii-project-site/#hh5
我希望我的控制器在前端从公共文件夹访问这些模型.
谢谢
使用setPathOfAlias()YiiBase类来设置路径别名:
Yii::setPathOfAlias('site', $site);
Run Code Online (Sandbox Code Playgroud)
你可以在frontend的config main.php中做到这一点:
$site=dirname(dirname(dirname(__FILE__))); // this will give you the / directory
Yii::setPathOfAlias('site', $site);
return array(
// the config array
// incase you want to autoload the models from common
'import'=>array(
'site.common.models.*'
)
);
Run Code Online (Sandbox Code Playgroud)
如果没有自动加载的要求,在这种情况下,您必须首先包含模型,然后才能实例化它.要包括我们可以使用Yii::import($alias),实际上几乎完全相同(来自指南):
实际上不会包含导入的类定义,直到它第一次被引用(通过PHP自动加载机制实现).
所以要使用在common/models /中定义的DummyModel类:
Yii::import('site.common.models.DummyModel');
$model = new DummyModel;
Run Code Online (Sandbox Code Playgroud)
我建议在main.php配置中使用自动加载,在指定导入数组时没有性能下降,因为仅当引用模型时才会包含该模型.