[英]I want to Install FOSUser Bundle in Symfony but geting Composer error
[英]How can I create a composer bundle with error templates in Symfony?
我們有一堆將在Symfony中創建的Web應用程序。 為了簡化操作,我為模板創建了一個捆綁包。 因此,主文件(TemplateBundle.php)包含(刪除了注釋):
<?php
namespace company\TemplateBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TemplateBundle extends Bundle
{
}
然后在Resources / views / template.html.twig中是主要的樹枝模板,對標題,內容區域等使用代碼塊。
在應用程序中,我在base.html.twig(所有其他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 %}
在部署時,運行composer安裝時,將安裝此捆綁包,並且在更新模板時,所有應用程序都將更新到新版本並重新部署。 到現在為止還挺好。
我遇到問題的地方是當我想將錯誤頁面添加到捆綁包中時。 因此,目前在應用程序中,它們位於/app/Resources/TwigBundle/views/Exception/errorxxx.html.twig中,例如error404.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 %}
這樣,錯誤頁面以標題等設置為基礎擴展,然后使用主站點模板擴展模板。 因此,我不必將錯誤頁面添加到每個項目(並在錯誤頁面的內容更改時更新每個項目),而是將它們添加到捆綁包中。
是否有一種簡便的方法(可以在模板包中創建,也可以創建另一個模板)以超越默認的細枝錯誤頁面?
如果沒有簡便的方法,還有哪些其他選擇?
所以看來答案是用我的捆綁包取代捆綁包。 為此,我所做的就是將TemplateBundle.php修改為
<?php
namespace company\TemplateBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TemplateBundle extends Bundle
{
public function getParent()
{
return 'TwigBundle';
}
}
然后,我可以在需要時替換模板,控制器等,因此我只需將我的錯誤模板(例如error404.html.twig)放入Resources / views / Exception目錄(與它們在/ vendor的TwigBundle捆綁包中的位置相同) / symfony / symfony / src / Symfony / Bundle / TwigBundle),由於它們擴展了base.html.twig,因此它們現在看起來像應用程序的其余部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.