2017-01-26 23 views
16

Mam problem z TWIG. Ten kod działa w szkole, ale absolutnie nie z moim laptopem. Próbowałem za pomocą prostego kodu, ale mam błąd:Argument 1 przekazany do twig_Filter :: __ construct() musi być instancją ciągu, ciągiem podanym

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

używam php 5.6/2.0 SILEX/Twig 2,0

Dzięki za pomoc.

Moje kodu jest bardzo proste, ale nie działa:

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

Nie można wpisać zadeklarować skalarne typy w PHP5. https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration –

+1

musisz podać ciąg, a nie ciąg znaków, jest to całkiem jasne ;-) (kompozytor powinien cię ostrzec instalowania Twig 2.0 z Php 5.6 no?) –

+0

Możliwy duplikat [Błąd przy przekazywaniu łańcucha znaków do metody z podpowiedziami typu] (https://stackoverflow.com/questions/3112791/error-when-passing-string-into-method- z podpowiedziami typu) – Axel

Odpowiedz

26

@CharlotteDunois zwróciłem na to uwagę, ale wymaga Gałązka 2,0> = PHP7.0, a więc w swoim środowisku (PHP 5.6) nie można użyj Twig 2.0. Z Twig official documentation:

Prerequisites

Twig needs at least PHP 7.0.0 to run.

Zauważ, że dla PHP5.x oddział nadal masz Gałązka 1.x aviable

0

tylko moje 2 centy. Nie mogłem uaktualnić wersji PHP (dzielonego hostingu), więc musiałem zmienić wersję Twig w moim package.json na wersję 1.x.

Wymień ten wiersz: "symfony/twig-bridge": "~2.8|^3.0", ->"symfony/twig-bridge": "~2.8|3.0.*",

potem dodałem ten wiersz:

"twig/twig" : "~1.0" 

i evething działało poprawnie na PHP serwera v 5.6

Powiązane problemy