2017-01-26 11 views
16

У меня проблема с TWIG. Этот код работает в школе, но совсем не с моим ноутбуком. Я попытался с помощью простого кода, но у меня есть ошибка:Аргумент 1 передан Twig_Filter :: __ construct() должен быть экземпляром строки, строка, заданная

Catchable fatal error: Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given, called in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Extension/Core.php on line 139 and defined in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Filter.php on line 35

Я использую 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();> 
+2

Вы не можете напечатать объявить скалярные типы в PHP5. https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration –

+1

вы должны передать строку, а не строку, это довольно ясно ;-) (композитор должен предупредить вас установки Twig 2.0 с Php 5.6 нет?) –

+0

Возможный дубликат [Ошибка при передаче строки в метод с типом намека] (https://stackoverflow.com/questions/3112791/error-when-passing-string-into-method- с-типа хинтинг) – Axel

ответ

26

@CharlotteDunois указал на это, но Twig 2,0 требуется> = PHP7.0, поэтому в среде (PHP 5.6), вы не можете используйте Twig 2.0. Из Twig official documentation:

Prerequisites

Twig needs at least PHP 7.0.0 to run.

Обратите внимание, что для PHP5.x отрасли вы еще Twig 1.x Ивеко

0

только мои 2 цента. Я не смог обновить версию PHP (общий хостинг), поэтому мне пришлось изменить версию Twig в моем пакете.json для использования версии 1.x.

Заменить строку: "symfony/twig-bridge": "~2.8|^3.0", ->"symfony/twig-bridge": "~2.8|3.0.*",

Затем я добавил эту строку:

"twig/twig" : "~1.0" 

и evething правильно работал на PHP сервере против 5,6

 Смежные вопросы

  • Нет связанных вопросов^_^