우리는 Symfony에서 만들 웹 앱을 많이 가지고 있습니다. 이 작업을보다 쉽게하기 위해 템플릿 번들을 만들었습니다.Symfony에서 오류 템플릿을 사용하여 작곡가 번들을 만들려면 어떻게해야합니까?
<?php
namespace company\TemplateBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TemplateBundle extends Bundle
{
}
그리고 자원/뷰/template.html.twig에 제목, 내용 같은 것들에 대한 codeblocks를 사용하여 주요 나뭇 가지 템플릿입니다 : (코멘트 밖으로 제거와 함께) 그래서 주 파일 (TemplateBundle.php가) 포함 영역 등 응용 프로그램에서
, 나는 base.html.twig (다른 모든 나뭇 가지 파일이 확장 것을)에서 할 모든은 다음과 같습니다
{# app/Resources/views/base.html.twig #}
{% extends 'TemplateBundle::template.html.twig' %}
{% block title %}App Name{% endblock %}
{% block content %}
<div class="container page-content">{% block body %}{% endblock %}</div>
{% endblock %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('css/appspecific.css') }}">
{% endblock %}
및 배포에
작곡가 설치를 실행할 때,이 번들 템플릿이 업데이트되면 모든 앱이 새로운 버전으로 업데이트되고 재배포. 여태까지는 그런대로 잘됐다.문제가 발생한 곳은 오류 페이지를 번들에 추가하려고 할 때입니다. 응용 프로그램의 순간에 그래서, 그들은 예를 들어 error404.html.twig에 대한 /app/Resources/TwigBundle/views/Exception/errorxxx.html.twig 에 있습니다
{% extends 'base.html.twig' %}
{% block body %}
<h1>That Page Could Not Be Found</h1>
<p>It seems that you are trying to access a page that doesn't exist. Please check your spelling and try again.</p>
{% endblock %}
이 방법은 오류 페이지가 기반을 확장 제목 등을 설정하고 주 사이트 템플릿으로 템플릿을 확장합니다. 따라서 오류 페이지를 각 프로젝트에 추가하는 대신 오류 페이지의 내용이 변경 될 때마다 각 프로젝트를 업데이트해야하므로 번들에 추가하려고합니다.
기본 나뭇 가지 오류 페이지를 넘기위한 쉬운 방법은 템플릿 번들 또는 다른 템플릿을 만들 수 있습니까?
쉬운 방법이 없다면 다른 옵션은 무엇입니까?
TwigBundle - http://symfony.com/doc/current/templating/overriding.html & http://symfony.com/과 같은 핵심 번들을 포함하여 번들 일부를 무시하는 방법에 대한 정의 된 규칙이 있습니다. doc/current/bundles/inheritance.html # override-resources-templates-routing-etc –
이 방법은 작동하지 않습니다. 첫 번째 방법은 위에서 설명한대로 앱의 번들에서 템플릿을 재정의하는 방법을 설명하고 다른 번들에있을 때는 도움이되지 않습니다. 두 번째 옵션은 이전에 시도했지만 번들에있는 다른 실험에서 이탈 한 코드가 남아 있어야합니다. 그것을 정리하고 다시 시도하고 지금 일하게하고, 세부 사항을 가진 답변을 곧 게시 할 것입니다. – MicWit