如何从前端运行控制台应用程序功能?

时间:2015-03-13 09:58:55

标签: php console yii2 yii2-advanced-app

我想从前端运行控制台应用程序发送邮件功能。我尝试使用this扩展程序,但它无效。

namespace console\controllers;

use Yii;

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

从命令行我可以使用yii console/send-mail,它可以正常工作。

但是如何在前端控制器中运行上述命令?

1 个答案:

答案 0 :(得分: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,这样就可以了。