灵异事件

别被标题吓着,呵呵!

我配了个二级域名指向到其中一个module,这个module(admin)是需要登陆的

module初始化时(init)




$this->setImport(array(

	'admin.models.*',

	'admin.components.*',

));



url配置为




'http://admin.domain.com/'=>array('admin/default/index','urlSuffix'=>false),

'http://admin.domain.com/<controller:\w+>/<id:\d+>'=>'admin/<controller>/view',

'http://admin.domain.com/<controller:\w+>/<action:\w+>/<id:\d+>'=>'admin/<controller>/<action>',

'http://admin.domain.com/<controller:\w+>/<action:\w+>'=>'admin/<controller>/<action>',



我在modules下的models里有个LoginForm,同样在外面的models里也有个LoginForm,当然两个东西里面是不一样的。

问题出来了,当我在二级域名登陆时,验证的model竟然不是modules下的LoginForm。

我把module init里的import顺序反一下,就正常了,请问这是为什么呢?

import的次序是很重要的,尤其是有同名类的情况。后面import的要比前面import的优先级高。

问题是这里import的顺序,只是models和components啊。无论怎样的顺序,都应该比外层的models优先级要高呀……

再一个问题,就是配置二级域名指向module的情况下,同样我在init里写上了




Yii::app()->setComponents(array(

    'errorHandler'=>array(

	'errorAction'=>'admin/default/error',

	),

));



为什么当我故意写错url时,这个异常有时候会去找外层默认的site/error,有时候会访问admin/default/error

比如正常的地址为admin.domain.com/site/index.html

当我改成admin.domain.com/site/index.ht时,这个错误会抛到外层的site/error

当我改成admin.domain.com/nosite/index.html时,这个错误会抛到的admin/default/error

如果不是二级域名,直接访问www.domain.com/admin/…这样是正常的

再一个问题,经常遇到第三方类库,文件名有些为xx.xx.xx.php的形式。

这种如果用import导入的话,是不是只能import(‘dir.*’)然后再require文件名?