Как запустить функцию консольного приложения из внешнего интерфейса?

Я хочу запустить консольное приложение отправки почты из внешнего интерфейса. Я пытался с помощью этот расширение, но оно не работает.

namespace console\controllers;

use Yii;

/**
* Console controller
*/
class ConsoleController extends  \yii\console\Controller
{
public function actionSendMail()
{
Yii::$app->mailer->compose()
->setFrom('[email protected]')
->setTo('[email protected]')
->setSubject('Message subject')
->setTextBody('Plain text content')
->setHtmlBody('<b>HTML content</b>')
->send();
}
}

Из командной строки я могу использовать yii console/send-mail и работает нормально.

Но как я могу запустить вышеупомянутую команду в контроллере внешнего интерфейса?

1

Решение

Не работает, потому что https://github.com/vova07/yii2-console-runner-extension/blob/master/ConsoleRunner.php#L63 PHP_BINDIR в моем компьютере значение ‘C \ php’. Но на моем компьютере PHP не устанавливается в директорию ‘C \ php’. Ты можешь:

1) Создайте папку ‘C \ php’ и вставьте php.exe в этот каталог.

2) Или добавить PHP_BINDIR переменная в Environment variables (как это — http://www.itechtalk.com/thread3595.html) и укажите свой правильный путь к php.exe, И перезагрузите компьютер.

На моем компьютере я запускаю первый шаг и запускаю Yii::$app->consoleRunner->run('hello/some-action') в SiteControler и это нормально работает.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]