好的,我试着解释尽可能简单:
在我的PHP Web应用程序中,我使用"lavary/crunz"
设置了一些自动化任务。
我面临的问题是当我尝试使用“Twig模板引擎”来创建我的电子邮件主体时,它会以某种方式工作,而且我在调试时无法获得错误信息。:
class MyClass
{
public static function _testTask()
{
$receiver = ['email'=>COMPANY_EMAIL,'name'=>COMPANY_NAME];
return function() use($receiver)
{
$mail = new \MailerCtrl();
$loader = new \Twig_Loader_Filesystem("views/templates");
$twig = new \Twig_Environment($loader,["cache" => "views/cache"]);
$content = array('name'=>'My Name','age'=>25);
$subject = 'Something';
$mail->send($subject,$receiver,$twig->render('report.html.twig', $content));
};
}
}
$schedule->run(MyClass::_testTask())->cron('* * * * *');
我的MailerCtrl
类是一个简单的PHPMailer表示,它期望我希望从$twig->render('report.html.twig', $content);
呈现的html主体
还有其他甚至更好的方法来实现这一目标吗?当我从http调用此脚本时,它按预期工作,但当通过“crunz”运行时,我收到此错误:
PHP Catchable致命错误:
传递给Twig_Filter :: __ construct()的参数1必须是一个实例 字符串,给定字符串,调用 /home/httpd/vhosts//httpdocs/vendor/twig/twig/lib/Twig/Extension/Core.php 在第139行并在中定义 /home/httpd/vhosts//httpdocs/vendor/twig/twig/lib/Twig/Filter.php on 第35行
答案 0 :(得分:1)
HTTP正在运行PHP 7 和
“lavary / crunz”
通过PHP命令行没有运行PHP 7,因为Twig 2.0至少需要PHP 7,如下所述:https://stackoverflow.com/a/41888528/1865829
将PHP命令行更新为7,它应该可以正常工作。