我實際上在Symfony 2.8項目上運行Sensiolabs Insight分析。Sensiolabs Insight:小枝模板不應包含業務邏輯
我有一個重大問題與我的一些嫩枝模板:
嫩枝模版應該包含業務邏輯
相關的消息始終是相同的:
模板太複雜,達到10的深度,但只允許5個。
例如發生這種情況與下面的模板:
{% 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 %}
我試圖在分離的文件中包含的內部<div id="bookmarks"></div>
代碼和深度已減少到包括,但它不是一個解決方案。我想這個問題是通過幾個對象使用getter訪問某些屬性(例如,bookmark.restaurant.slug)
。
我有一個免費的計劃,所以我無法訪問與此警告相關的文檔任何人都知道如何解決問題?
感謝。
這是因爲你使用bookmark.restaurant.slug這個警告是愚蠢的意思是數據的確在您的控制器中「準備好」,然後訪問它。我想這是這種靜態分析工具的侷限性。 – COil
@COIL我同意你的觀點,數據是在控制器級別準備的,並且在那之前是在學習庫級別(加入)。但是,我分發了[Symfony demo回購](https://github.com/symfony/symfony-demo)並運行了Insight分析。我沒有得到這個警告,例如,在這個應用程序中,您可以在模板中找到如下所示的內容:**'{%for post.comments%} ... {{comment.author.fullName}}。 .. {%endfor%} ** ** – Cruz
@COil你說得對,我只是聯繫了Insight的支持,這裏是答案:「對我來說,你的模板是完美的;)看起來我們的算法存在一個錯誤。我將在我們的內部錯誤跟蹤器中打開一張新票。 與此同時,您可以放心地忽略這種違規行爲。「 – Cruz