Запуск консольной команды модуля
Запуск консольной команды модуля
Есть yii2-app-advanced приложения..в папке modules находятся мои модули которые подключаются в конфигах..В одном модуле есть команда modules/mailer/commands/MailController... Как мне его вызвать через консоль..подключал в console/config/main-local свой модуль...и пытался вызвать "yii mailer/mail/notify" но пишет что команда не найдена
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Запуск консольной команды модуля
Цепани модуль в консоль в console/config/main
Так же как и
Вызывать должен php yii controller/action . ну а вообще если письмо отправлять нужно то можно сделать другими способами.
Так же как и
Код: Выделить всё
'modules' => [
'gii' => 'yii\gii\Module',
],
Последний раз редактировалось german.igortcev 2015.02.04, 10:04, всего редактировалось 1 раз.
Re: Запуск консольной команды модуля
Это каким образом?sashaaro писал(а):подключал в console/config/main-local свой модуль...
Re: Запуск консольной команды модуля
в console/config/main.php
модуль в консоль в console/config/main есть!
в main-local.php
php yii mail/notify пишет Error: unknown command "mailer/motify"
модуль в консоль в console/config/main есть!
Код: Выделить всё
'id' => 'app-console',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log', 'gii'],
'controllerNamespace' => 'console\controllers',
'modules' => [
'gii' => 'yii\gii\Module',
],
Код: Выделить всё
'modules' => [
'mailer' => [
'class' => \modules\mailer\Module::className(),
]
],
Последний раз редактировалось sashaaro 2015.02.04, 10:29, всего редактировалось 3 раза.
Re: Запуск консольной команды модуля
Какими?german.igortcev писал(а): Вызывать должен php yii controller/action . ну а вообще если письмо отправлять нужно то можно сделать другими способами.
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Запуск консольной команды модуля
Например есть swiftmailersashaaro писал(а):Какими?german.igortcev писал(а): Вызывать должен php yii controller/action . ну а вообще если письмо отправлять нужно то можно сделать другими способами.
http://www.yiiframework.com/doc-2.0/ext ... index.html
Код: Выделить всё
To use this extension, simply add the following code in your application configuration:
return [
//....
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
],
],
];
You can then send an email as follows:
Yii::$app->mailer->compose('contact/html')
->setFrom('[email protected]')
->setTo($form->email)
->setSubject($form->subject)
->send();
Re: Запуск консольной команды модуля
Я им и пользуюсь..Проблема не в том как отправлять сообщение.А как вызвать команду из модуля.german.igortcev писал(а): Например есть swiftmailer
-
- Сообщения: 251
- Зарегистрирован: 2014.08.18, 14:01
Re: Запуск консольной команды модуля
Что ты пытаешься сделать, для чего тебе вызывать нужно
Re: Запуск консольной команды модуля
мне нужно вызывать через консоль actionNotify, который находится в модуле mailer commands\MailController (extends yii\console\Controller) ..Для cron -а что бы отправлять сообщения
Re: Запуск консольной команды модуля
конфиг консоли:
в модуле соответственно контроллер и экшн в нем - все работает.
Код: Выделить всё
'modules' => [
'twitter' => console\modules\twitter\Module::className()
],
Re: Запуск консольной команды модуля
\modules\mailer\Module::className(), - неймспейс-то верный? в какой директории у вас находится дира относительно корня?
Re: Запуск консольной команды модуля
да, в \modules\mailer.
Сам модуль подключается так же к web приложению и нормально работает
Сам модуль подключается так же к web приложению и нормально работает
Re: Запуск консольной команды модуля
алиас @modules есть?sashaaro писал(а):да, в \modules\mailer.
Сам модуль подключается так же к web приложению и нормально работает
Re: Запуск консольной команды модуля
нет, а нужно? и если бы был, то что?
Re: Запуск консольной команды модуля
для автозагрузки классов в Yii необходимо создать алиас с именем корневого неймспейса.sashaaro писал(а):нет, а нужно? и если бы был, то что?
\backend\modules\.... - @backend
\modules\... - @modules
Re: Запуск консольной команды модуля
для console/config/main
Работает..
Но если у меня будет несколько контроллеров. Каждый раз добавлять? Возможно проще было бы добавить целым модулем и вызывать через /module/controller/action как для обычного веб приложения.Странно что так не работает. Может я что то упустил.
Код: Выделить всё
'controllerMap' => array(
'mail' => \modules\mailer\commands\MailController::className(),
),
Но если у меня будет несколько контроллеров. Каждый раз добавлять? Возможно проще было бы добавить целым модулем и вызывать через /module/controller/action как для обычного веб приложения.Странно что так не работает. Может я что то упустил.
Re: Запуск консольной команды модуля
а в какой дире должны быть контроллеры модуля?sashaaro писал(а):для console/config/mainРаботает..Код: Выделить всё
'controllerMap' => array( 'mail' => \modules\mailer\commands\MailController::className(), ),
Но если у меня будет несколько контроллеров. Каждый раз добавлять? Возможно проще было бы добавить целым модулем и вызывать через /module/controller/action как для обычного веб приложения.Странно что так не работает. Может я что то упустил.
Re: Запуск консольной команды модуля
В смысле? Для автозагрузки классов есть autoload..zelenin писал(а): для автозагрузки классов в Yii необходимо создать алиас с именем корневого неймспейса.
\backend\modules\.... - @backend
\modules\... - @modules
У меня в web приложении все подхватывает само. В консоли я так же указал модуль, но не смог запустить.
Ты хочешь сказать что консольное приложение подхватывает только те модули на которых есть соответствующий алиас?? Зачем он если мы указываем Базовый класс модуля в настройках
Это знает как раз наш модуль...свойство controllerNamespace..zelenin писал(а): а в какой дире должны быть контроллеры модуля?
По умолчанию moduleNamespase\controllers\ соответственно наймспейсу
Re: Запуск консольной команды модуля
а контроллеры, которые ты запускаешь в консоли, у тебя где?sashaaro писал(а): Это знает как раз наш модуль...свойство controllerNamespace..
По умолчанию moduleNamespase\controllers\ соответственно наймспейсу
Re: Запуск консольной команды модуля
именно! посмотри как он работает https://github.com/yiisoft/yii2/blob/ma ... utoloader-sashaaro писал(а):В смысле? Для автозагрузки классов есть autoload..zelenin писал(а): для автозагрузки классов в Yii необходимо создать алиас с именем корневого неймспейса.
\backend\modules\.... - @backend
\modules\... - @modules