2

通常、Silex プロジェクトの場合、次のような最上位ディレクトリがあります。

- app/
   - views/
- src/
- vendor/
- web/

今、私のクラスのいくつかが呼び出さ$app['twig']->render(...)れ、フォルダーからビューが引き出されapp/viewsます。

ライブラリを抽出して複数のプロジェクトで再利用しやすくする場合、そのビュー ファイルはどこに保管すればよいですか? また、Twig にそこを探すように指示するにはどうすればよいですか?

同じ質問は、私が通常 に入れるグラフィック/スタイルシートなどにも当てはまりますweb/

vendor/my-libComposer がファイルをクリーン インストールできるようにするには、ファイルがどこかにある必要がありますか? これを行うための一般的な/ベストプラクティスの方法はありますか?

更新 参考までに、私がやったことは次のとおりです。

<?php

// in my \Silex\ServiceProviderInterface ...

/**
 * @var \Twig_Environment $twig
 */
$twig = $app['twig'];

// Add the paths to our twig templates here
$fsLoader = new \Twig_Loader_Filesystem(array(
    __DIR__.'/views/'
));

$twig->setLoader(new \Twig_Loader_Chain(array($twig->getLoader(), $fsLoader)));

ありがとう。

4

1 に答える 1

4

ビューを src/{Library}/{Class}/View/ に保存します

Twig のベースパスを src に設定します

$app->register(new TwigServiceProvider(), array(
    'twig.path' => array(
        __DIR__ . '/../src/{Library}/'
    ),
    'twig.options' => array('cache' => false, 'strict_variables' => true)
));

render を呼び出すときは、その時点からのパスを渡します

$app['twig']->render('{Class}/View/{twigfile}.html.twig',$data);
于 2012-08-15T11:09:15.897 に答える