2017-01-26 29 views
16

verilen dize TWIG ile ilgili bir sorunum var. Bu kod okulda çalışıyor ama dizüstü bilgisayarımda kesinlikle değil. Ben basit bir kod ile denedim ama hata var: Yardımlarınız içinBağımsız değişken 1, Twig_Filter :: __ yapısına() aktarılmış bir dize örneği olmalıdır,

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

kullandığım php 5.6/SILEX 2.0/Twig 2.0

teşekkürler.

Kodum çok basit ama çalışmıyor:

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

PHP sunucu v düzgün çalıştı PHP5'te. https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration –

+1

Bir dizgeyi değil, bir dizeyi geçirmelisiniz, bu oldukça açık ;-) (besteci sizi uyarmalı Twig 2.0, Php 5.6 no ile yüklüyor?) –

+0

Olası çoğaltılabilir [Yazının içine ipucu ile bir yöntem geçirilirken hata oluştu] (https://stackoverflow.com/questions/3112791/error-when-passing-string-into-method- ile tipi-ipucu) – Axel

cevap

26

@CharlotteDunois bu işaret, ancak Twig 2.0 ortamınızda (php 5.6) içinde bunu yapamazsınız böylece> = PHP7.0 gerektirir Twig 2.0 kullanın. Twig official documentation Gönderen:

Prerequisites

Twig needs at least PHP 7.0.0 to run.

Uyarı PHP5.x şube için hala

0

Sadece 2 sent aviable Twig 1.x olduğunu. Ben PHP sürümü (paylaşılan hosting) yükseltme olamazdı, bu yüzden benim paketi.json Twx sürümü 1.x sürümünü kullanmak için değiştirmek zorunda kaldı. , "symfony/twig-bridge": "~2.8|^3.0" ->"symfony/twig-bridge": "~2.8|3.0.*",

o zaman, ben bu satırı eklendi:

bu satırı değiştirin

"twig/twig" : "~1.0" 

ve evething Sen sayıl türlerini beyan yazamaz 5.6