如何让 "lavary/crunz" 与 twig 一起工作

How to get "lavary/crunz" to work with twig

好的,我尽量解释得通俗易懂: 在我的 PHP Web 应用程序中,我使用 "lavary/crunz" 设置了一些自动化任务。

我面临的问题是在尝试使用 "Twig Templating engine" 创建我的电子邮件正文时,它无法正常工作,我在调试时收到的错误消息没有帮助。:

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 class 是一个简单的 PHP 邮件程序表示,它期望 html 正文我希望从 $twig->render('report.html.twig', $content);

呈现

是否有其他甚至更好的方法来完成此任务?当我从 http 调用此脚本时,它按预期工作,但是当 运行 通过 "crunz" 时,我收到此错误:

PHP 可捕获的致命错误:

Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given, called in /home/httpd/vhosts//httpdocs/vendor/twig/twig/lib/Twig/Extension/Core.php on line 139 and defined in /home/httpd/vhosts//httpdocs/vendor/twig/twig/lib/Twig/Filter.php on line 35

HTTP 是 运行 PHP 7 和

"lavary/crunz"

通过 PHP 命令行不是 运行 PHP 7 因为 Twig 2.0 至少需要 PHP 7 如下所述:

将您的 PHP 命令行更新为 7,它应该可以工作。