Пространство имен для экшна

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
feodor
Сообщения: 95
Зарегистрирован: 2013.01.28, 00:02

Пространство имен для экшна

Сообщение feodor »

Подскажите, такой вопрос. В Yii 1.1.17

Есть модель models/User.php, в SiteController есть экшн синхронизации actionScripts. Я его вынес в отдельный файл.

Код: Выделить всё

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'scripts'=>'application.controllers.Sсripts.SсriptsAction',
        ];
    }
}
Внутри него вызываю скрипт синхронизации controllers/Scripts/User.php для синхронизации юзеров.

Код: Выделить всё

class ScriptsAction extends CAction
{
    public function run()
    {
        new User;
    }
}
В конфиге добавляю все скрипты синхронизации в глобальный импорт

Код: Выделить всё

'import' => [
    ...
    'application.controllers.Scripts.*',
];
Соответственно модель models/User.php и скрипт controllers/Scripts/User.php начинают конфликтовать.

Можно ли как-то сделать отдельное пространство имен для скриптов?

Я пробовал делать так:

Код: Выделить всё

namespace Scripts;

class ScriptsAction extends \CAction
{
    public function run()
    {
        echo __NAMESPACE__;
    }
}
но это не работает...
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Пространство имен для экшна

Сообщение SiZE »

Половина содержимого у вас о том что вы вынесли в отдельный файл экшен ScriptsAction, а вопрос о том почему конфликтует models/User.php и скрипт controllers/Scripts/User.php.

Изображение

P.S. Используйте пространство имен и не используйте 'import'.
Ответить