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”