PHP Slim(最新版)には単純なアプリケーションがありますが、データベースからデータを取得してtwigテンプレートで表示するシンプルなWebサイトです。何もない。 私は小枝にカスタム関数を追加しようとしない限り、すべてが完璧に動作します。私はlaragoonが同じPHPのバージョンと本番サーバー上で、正常に動作しますローカルホスト上で(一部のサーバー上で小枝するカスタム機能を追加するとSlimPHP - twig(関数)を拡張する際に奇妙なエラーが発生する
はない私はこのエラーを取得:
致命的なエラー:抽象クラスTwig_Functionをインスタンス化することはできませんエラーが新しいTwig_Functionに接続されていますが、正直なところ、私は...ここに任意の抽象クラスが表示されない、とlocalhostのLaragonにそれはだ - ...以下の4
ライン上twig.phpは私twig.phpです正常に動作します。
誰もこの問題を解決する方法を知っていますか?コンテナ内のビューの
<?php
$twig=$container->get('view')->getEnvironment();
$function = new Twig_Function('fotki', function ($id) use ($container) {
$files=array();
$dir=opendir($container->get('settings')['fotki_path'].(int)$id);
while($file=readdir($dir)){
if((strlen($file)>3)&&(substr($file,-3)=='jpg')){
array_push($files,(int)$id.'/'.$file);
//
}
}
closedir($dir);
return $files;
});
$twig->addFunction($function);
$function = new Twig_Function('fotkalink', function ($path) use ($container) {
$tab=explode('/',$path);
return 'mediaimage/'.$tab[0].'-'.$tab[1];
});
$twig->addFunction($function);
宣言:
$container['view'] = function ($c) {
$a=[];
if($c['settings']['env']=='prod')
$a=[ 'cache' => __DIR__.'/../cache'];
$view = new \Slim\Views\Twig(__DIR__.'/../templates', $a);
$basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
$view->addExtension(new Slim\Views\TwigExtension($c['router'], $basePath));
return $view;
};
ehhh確かに - あなたは100%正しいです。なぜ私はこれを見ていないのかわかりません:/ –
文書は、あなたがそれを見ているとき、例ではTwig_Functionを利用しています。だから私はこの質問が本当にうれしいです。 – Tschallacka