Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从前端运行控制台应用程序功能?_Php_Console_Yii2_Yii2 Advanced App - Fatal编程技术网

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

Php 如何从前端运行控制台应用程序功能?,php,console,yii2,yii2-advanced-app,Php,Console,Yii2,Yii2 Advanced App,我想从前端运行控制台应用程序发送邮件功能。我尝试使用扩展,但它不起作用 namespace console\controllers; use Yii; /** * Console controller */ class ConsoleController extends \yii\console\Controller { public function actionSendMail() { Yii::$app->mailer->compose()

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

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;
/**
*控制台控制器
*/
类ConsoleController扩展\yii\console\Controller
{
公共函数actionSendMail()
{
Yii::$app->mailer->compose()
->设置自('test@test1.com')
->设置为('test@test2.com')
->setSubject('消息主题')
->setTextBody('纯文本内容')
->setHtmlBody(“HTML内容”)
->send();
}
}
在命令行中,我可以使用
yii控制台/发送邮件
,并且工作正常

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

不起作用,因为
PHP\u BINDIR
在我的计算机值“C\PHP”中。但是在我的计算机中,PHP没有安装在'C\PHP'目录中。你可以:

1) 创建“C\php”文件夹并将
php.exe
放入此目录

2) 或者在
环境变量中添加
PHP\u BINDIR
变量(如何),并将其放入到
PHP.exe
的正确路径中。然后重新启动计算机


在我的电脑中,我运行了第一步,然后在
SiteControler
中运行
Yii::$app->consoleRunner->run('hello/some action')
,运行起来很好。

你是如何从前端运行的?我尝试了控制台运行程序extesnion Yii:$app->consoleRunner->run('console/send mail');在我的前端站点控制器中。但它不起作用。您在组件配置的
'file'
中设置了绝对路径吗?路径类似于
/var/www/domain/www/yii
是的,我使用了绝对路径:“file”=>“E:\wamp\www\demo\yii”