web-dev-qa-db-ja.com

Twig_Filter :: __ construct()に渡される引数1は、文字列のインスタンスである必要があります。

TWIGに問題があります。このコードは学校で動作しますが、私のラップトップでは絶対に動作しません。私は簡単なコードで試しましたが、エラーがあります:

キャッチ可能な致命的エラー:Twig_Filter :: __ construct()に渡される引数1は、/ opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Extension/Coreで呼び出される文字列のインスタンスである必要があります。 139行目の.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();>
19
Ben

@CharlotteDunoisはこれを指摘しましたが、Twig 2.0では> = PHP7.0が必要なので、環境(php 5.6)ではTwig 2.0を使用できません。 Twig公式ドキュメント から:

前提条件

Twigを実行するには、少なくともPHP 7.0.0が必要です。

PHP5.xブランチの場合、まだTwig 1.x aviable

31
mTorres

ちょうど私の2セント。 PHPバージョン(共有ホスティング))をアップグレードできなかったため、1.xバージョンを使用するには、package.jsonのTwigバージョンを変更する必要がありました。

次の行を置き換えます:"symfony/twig-bridge": "~2.8|^3.0"、-> "symfony/twig-bridge": "~2.8|3.0.*",

次に、この行を追加しました:

"twig/twig" : "~1.0"

そして、PHP server v 5.6

0
Carlos Bonavia