我有TWIG的问题。此代码适用于学校,但绝对不适用于我的笔记本电脑。我试过一个简单的代码,但我有错误:
捕获致命错误:传递给Twig_Filter :: __ construct()的参数1必须是字符串的实例,给定字符串,在/ opt / lampp / htdocs / webalizer / projetSilex / vendor / twig / twig / lib / Twig /中调用第139行的Extension / Core.php,第35行的/opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Filter.php中定义
我使用的是php 5.6 / SILEX 2.0 / Twig 2.0
感谢您的帮助。
我的代码非常简单,但不起作用:
require_once __DIR__.'/vendor/autoload.php';
$app = new Silex\Application();
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/views',
));
$app->get('/', function(){
return "hello";
});
$app->get('/hello/{name}', function($name)use($app){
return $app['twig']->render('hello.twig',
array("name"=>$name
));
});
$app->run();>
答案 0 :(得分:32)
@CharlotteDunois指出这一点,但Twig 2.0需要> = PHP7.0,因此在您的环境(php 5.6)中,您无法使用Twig 2.0。来自Twig official documentation:
<强>先决条件强>
Twig至少需要运行PHP 7.0.0。
请注意,对于PHP5.x分支,您仍然可以使用Twig 1.x
答案 1 :(得分:0)
替换此行:
"symfony/twig-bridge": "~2.8|^3.0"
, - &gt; "symfony/twig-bridge": "~2.8|3.0.*",
然后,我添加了这一行:
"twig/twig" : "~1.0"
并且evething在PHP服务器v 5.6上正常工作