私はウェブサイト上で.twigテンプレートを使用しますが、いくつかのビューではかなり論理的になる必要があります。私はtwigがこれとPHPでやるべきケーキを処理できるとは思わない。 (私はそれが何であるかの詳細を説明するつもりはなく、PHPで簡単に知ることができ、実際にコードを持っている)。問題は、タイプ.twigのベーステンプレートまたは親テンプレートに.PHPテンプレートを含めることができますか?.phpテンプレートに.twigベーステンプレートを含める
例(動作しない)以下 - blah.html.phpがbase.html.twigテンプレートを拡張するテンプレートです...
/いくつか/ web /ディレクトリ/バンドル名/リソース/ビュー/何とかブラウザオン/ blah.html.php
<?php $view->extend('::base.html.twig') ?>
<?php $view['slots']->set('title', 'Welcome to nowhere!') ?>
<?php $view['slots']->start('body') ?>
<div id="body">
html stuff here, blah blah blah...
<?php .... ?>
complex php and html stuff, and so on...
</php end....?>
you get the idea...
</div>
<?php $view['slots']->stop() ?>
上記のコードは、(すなわち、テンプレートエンジンによって実行されない)、ブラウザにテキストとして基本テンプレート内のすべての.twigコードをレンダリングします。
PS - はい、私は両方.twigを持っているアプリ/設定/ config.yml
templating: { engines: ['twig', 'php'] }
[OK]を、ここでは "複雑な" ものの詳細がある... に設定された.PHPこれはsymfony 1.4でコード化されたサイトのバージョンから取られている - そのはsymfonyの2にアップグレードされていると私たちは本当にSymfony2の中にサービス層に配置する必要があり、すべての.twig
<?php foreach ($all_items as $item): ?>
<tr>
<td valign="top">
//<?php include_partial('global/item', array('item' => $item)) ?>
<<< some code snipped out here >>>
<td valign="top">
<table border="1" width="100%">
<?php echo $form->renderFormTag('memberitems/additem') ?>
<?php echo $form['item_id']->render(array('value' => $item->getIid())) ?>
<?php echo $form['user_id']->render(array('value' => 1)) ?>
<?php echo $form['_csrf_token'] ?>
<tr>
<td width="50" colspan="2" align="center">Quantity<br><?php echo $form['quantity']->render() ?></td>
<td width="50" colspan="2" align="center">Amount<br><?php echo $form['value']->render() ?></td>
<td width="50" colspan="2" align="center"><input type="submit" value="Add"></td>
</tr>
</form>
<<< here is a complex portion, we're declaring a variable with a value >>>
<<< cant do this with twig - from what I know... >>>
<?php // determine if item is in registry - if so display "Currently Asking For:" ?>
<?php $is_in_registry = false; ?>
<?php foreach($member_items as $m_item): ?>
<?php if($m_item->getIid() == $item->getIid()): ?>
<?php if($is_in_registry == false): ?>
<?php $is_in_registry = true; ?>
<tr>
<td width="50" colspan="6" align="center"><br>Currently Asking For:</td>
</tr>
<?php endif ?>
<?php echo $form->renderFormTag('memberitems/removeitem') ?>
<?php echo $form['item_id']->render(array('value' => $item->getIid())) ?>
<?php echo $form['user_id']->render(array('value' => 1)) ?>
<?php echo $form['id']->render(array('value' => $m_item->getMIid())) ?>
<?php echo $form['_csrf_token']->render() ?>
<tr>
<td width="50" colspan="4" align="center">
<?php echo $m_item->getMIqty()." @ ".$m_item->getMIval() ?>
</td>
<td width="50" colspan="2" align="center"><input type="submit" value="Remove"></td>
</tr>
</form>
<?php endif ?>
<?php endforeach ?>
どのような複雑なもの?あなたは小枝機能またはマクロに置くことができます。 – solarc
Carlosz - 私は複雑なものについていくつかの詳細を添えて質問を更新しました...これは、私が複雑と呼ぶものの1つの例です。複雑なことは、twigが複雑なことを意味します。この。 (私は間違っている可能性があります)。 – ElasticThoughts