最初のステップは、テンプレートエンジンを選択することでした。 短い検索の後、選択はTwigに落ち、統合を進めることができます。
統合の本質は、フレームワークの開発者によって作成された基本クラスSlim_Viewの拡張を通じて、いくつかの一般的なテンプレートエンジン、特にTwigとの統合のための機能を実装するSlim Framework Extrasアドオンを接続することです。
次に、プロジェクトにコード、index.phpファイルを含める必要があります(場所とファイル名は異なる場合があります)。
//Require the Slim Framework require_once 'Slim/Slim.php'; //http://twig.sensiolabs.org/doc/intro.html#basic-api-usage require_once 'thirdparty/Twig/Autoloader.php'; Twig_Autoloader::register(); //Require the custom View require_once 'views/TwigView.php'; //Init Slim app with the custom View $app = new Slim(array( 'view' => new TwigView() )); $app->run();
ビューへのパラメーターの受け渡しは変更されていません。 アプリケーションで使用されるルーターとそのコールバック関数の例(コードはいくつかの場所で簡略化されています):
// $app->get('/:id', 'show_gallery'); /** * Callback- * * @global Slim $app * @param <type> $photo_id */ function show_gallery( $photo_id ) { global $app; // ... // $app->view()->appendData( array( 'photo' => $photo ) ); // // /templates $app->render('template.php'); }
template.phpテンプレートのコードの例:
<div class="container"> <a href="{{ photo.l_url }}" class="ajax" title="{{ photo.title }}"> <img class="current" src="{{ photo.m_url }}" alt="{{ photo.title }}" /> </a> </div>
関連資料:
Slim Framework Extras + Twigバンドルの簡単な実装は、トピックASOIUのポスターにあります 。 必要に応じて、すべてのコードをデモする準備ができました(アプリケーションロジックを説明するわずか100行)。
投稿を書く際に間違いや脱落の可能性があることを事前に謝罪します。 これは私の最初の記事です。 資料を習得するのに数日しかかからなかったので、資料への便利なリンクやトピックに関するヒントを礼儀のために検討します。 ありがとう