Страница 1 из 1

странная загрузка модуля

Добавлено: 2011.01.18, 16:20
zibert02
есть модуль test, мне надо вызвать у него ф-ю в самом приложении , в котором этот модуль крутится(главное приложение)
вызываю так TestModule::ф-я на что мне выводит
include(TestModule.php) failed to open stream: No such file or directory
но если до этого вызвыать yii::app()->getModule('test')->ф-я то затем вызовы TestModule::ф-я отрабатывают нормально
это бага или фича? причем в конфиге сделан соответствующий импорт app.modules.test.models.* и модуль подключен

Re: странная загрузка модуля

Добавлено: 2011.01.18, 16:49
slavcodev
ты импортируешь только модели из app.modules.test.models.*
конечно приложения не известно о классе app.modules.test.TestModule.php

просто перед вызовом TestModule::ф-я сделай импорт
Yii::import(app.modules.test.TestModule.php);
производительности это не помешает, Yii не будет грузить файл дважды.

Re: странная загрузка модуля

Добавлено: 2011.01.18, 16:56
zibert02
я вызов TestModule::ф-я делаю в layout, кошерно ли вызов Yii::import делать там же? или может в инит контроллера сделать?

кстати выражение Yii::import(app.modules.test.TestModule.php); не сработало, пришлось подправить Yii::import(app.modules.test.TestModule); интересно почему?

Re: странная загрузка модуля

Добавлено: 2011.01.18, 17:47
mitaichik
я вызов TestModule::ф-я делаю в layout, кошерно ли вызов Yii::import делать там же? или может в инит контроллера сделать?
Я бы вызывал Yii:import непосредственно перед вызовом функции.
кстати выражение Yii::import(app.modules.test.TestModule.php); не сработало, пришлось подправить Yii::import(app.modules.test.TestModule); интересно почему?
В Yii::import мы пишем не путь, а алиас. Кстати, можно импортировать так : Yii::import('test.TestModule'); ибо Yii автоматом создает алиасы для каждого модуля.

Re: странная загрузка модуля

Добавлено: 2011.01.18, 17:58
zibert02
mitaichik писал(а):
кстати выражение Yii::import(app.modules.test.TestModule.php); не сработало, пришлось подправить Yii::import(app.modules.test.TestModule); интересно почему?
В Yii::import мы пишем не путь, а алиас. Кстати, можно импортировать так : Yii::import('test.TestModule'); ибо Yii автоматом создает алиасы для каждого модуля.
т.е. в конфиге в разделе import тоже можно писать test.models.* вместо application.modules.test.models.* ?

Re: странная загрузка модуля

Добавлено: 2011.01.18, 18:08
slavcodev
zibert02 писал(а):т.е. в конфиге в разделе import тоже можно писать test.models.* вместо application.modules.test.models.* ?
да