私は実際にSymfony 2.8プロジェクトでSensiolabs Insight分析を実行しています。 Sensiolabs Insight:Twigテンプレートにビジネスロジックを含めることはできません
は、私は私の小枝テンプレートの一部で大きな問題があります。ビジネスロジックを含むべきではない小枝テンプレート
関連するメッセージは常に同じです:
テンプレート複雑すぎると深さは10に達するが、5つしか許されない。例えば
これは、次のテンプレートで発生:私は分離ファイルに<div id="bookmarks"></div>
内部に含まれるコードと深さを含むことを試み
{% extends "FBNGuideBundle::layout.html.twig" %}
{% block title %}
{{ 'fbn.guide.page_title.bookmarks'|trans }}
{% endblock %}
{% block body %}
<div id="bookmarks" data-bookmark-ids="{{bookmarkIds|json_encode()}}">
{% if (restaurants|length > 0) %}
<div class="restaurants">
<h3>MES RESTOS</h3>
{% for bookmark in restaurants %}
<div class="bookmark" id="{{'bookmark-' ~ bookmark.id}}">
<a href="{{ path('fbn_guide_restaurants', {'slug': bookmark.restaurant.slug}) }}">{{ bookmark.restaurant.name }}</a>
<br>
<br>
<button>SUPPRIMER DES FAVORIS</button>
<br>
<hr>
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% endblock %}
が低減されているが、それは解決策ではありません。私は問題がゲッターを使用していくつかのオブジェクトを介していくつかのプロパティを介していくつかのプロパティにアクセスしていると考えています(bookmark.restaurant.slug)
)
私はこの警告に関連するドキュメントにアクセスすることができません。 ?
感謝。
それはこの場合にはデータが実際にあったことを意味しているので、あなたがこの警告をbookmark.restaurant.slug使用していることは愚かであるので、それはですあなたのコントローラに「準備」してアクセスしてください。私はそのような静的解析ツールの限界だと思う。 – COil
@COil私はあなたに同意します。データはコントローラレベルで準備されており、それ以前は教義リポジトリレベル(結合)で準備されています。しかし、私は[Symfony demo repo](https://github.com/symfony/symfony-demo)をフォークし、Insight分析を実行しました。たとえば、このアプリケーションでテンプレートの中に次のようなものが見つかったとしても、この警告は表示されませんでした:** '{post.comのコメント%%} {{コメント.author.fullName}}。 .. {%endfor%} '** – Cruz
@Cililあなたは正しかった、私はInsightのサポートに連絡しました。ここに答えがあります:"あなたのテンプレートは完璧です;)アルゴリズムにバグがあるようです。その間に、この違反を無視しても問題ありません。 – Cruz