2016-12-23 9 views
0

Как включить aptoma twig-markdown extension? Я установил его с помощью composer, но когда я использую {% markdown %} в моем файле веточка, я получаю сообщение об ошибке, говорящее:Symfony3: Включить расширение прокрутки aptoma

Unexpected "markdown" tag (expecting closing tag for the "block" tag defined near line 8).

Я посмотрел в документации симфони, но не смог найти решение.

Edit:

Я пытался добавить следующий код services.yml но получил другую ошибку:

twig.markdown: 
    class: Aptoma\Twig\Extension\MarkdownExtension 
    arguments: [] 
    tags: 
     - { name: twig.extension } 

Type error: Argument 1 passed to Aptoma\Twig\Extension\MarkdownExtension::__construct() must be an instance of Aptoma\Twig\Extension\MarkdownEngineInterface, none given [...]

По просьбе моего .twig -файл:

{% extends 'XYZBundle::layout.html.twig' %} 

{% block title %} 
    {{ parent() }} – Eintrag anzeigen 
{% endblock %} 

{% block platform_body %} 
    <ul> 
     <li> 
      <a href="{{ path('work_index') }}">Back to the list</a> 
     </li> 
     <li> 
      <a href="{{ path('work_edit', { 'id': work.id }) }}">Edit</a> 
     </li> 
    </ul> 
    <h1>{{ work.title }}</h1> 

    <div class="work-content"> 
    {% markdown %} 
    {{ work.content }} 
    {% endmarkdown %} 
    </div> 
{% endblock %} 

ответ

1

Согласно документы, необходимые для установки механизма уценки на ваш выбор, например :

composer require michelf/php-markdown 

Вам нужно создать службу для расширения прута и уценка двигателя, добавьте двигатель расширения и зарегистрировать его в качестве расширения прута, Ого, как это в вашем services.yml или config.yml:

services: 
    markdown.engine: 
     class: Aptoma\Twig\Extension\MarkdownEngine\MichelfMarkdownEngine 
    twig.markdown: 
     class: Aptoma\Twig\Extension\MarkdownExtension 
     arguments: ['@markdown.engine'] 
     tags: 
      - { name: twig.extension } 

После этого Symfony автоматически зарегистрирует его как расширение ветки, используя теги или тегированные службы.

+0

Спасибо за ваш ответ! Однако, когда я использую этот код, появляется следующее сообщение об ошибке: «Попытка загрузить класс MarkdownEngine из пространства имен« Aptoma \ Twig \ Extension ». Вы забыли инструкцию «use» для другого пространства имен? ' – Jonas

+0

Извините, что путь класса был неправильным, я исправил его. также обратите внимание на добавленную команду композитора – ivoba

+0

Я очень ценю вашу помощь. Когда я использую его как '{{« # Заголовок уровня 1 »| markdown}}', он работает, но когда я использую '{% markdown%} {% endmarkdown%}', я получаю сообщение об ошибке «Неизвестный« markdown »tag .'. Можете ли вы сказать мне, что я делаю неправильно? – Jonas

0

Согласно новой системе автоподключения, вы должны только объявить движок mardown, реализующий интерфейс двигателя разметки Aptoma.

Aptoma\Twig\Extension\MarkdownEngineInterface: 
    class: the markdown engine of your choice! 

twig.extension.markdown: 
    class: Aptoma\Twig\Extension\MarkdownExtension 
    tags: 
     - { name: twig.extension } 

Если вы не изменения Aptoma\Twig\Extension\MarkdownEngineInterface что-то вроде markdown.engine вы не необходимости объявлять аргументы в вашей веточку декларации расширение услуг.

Если вы хотите использовать рекомендованную уценки двигатель, установите его с помощью:

composer require michelf/php-markdown

Затем объявить:

Aptoma\Twig\Extension\MarkdownEngineInterface: 
    class: Aptoma\Twig\Extension\MarkdownEngine\MichelfMarkdownEngine 

twig.extension.markdown: 
    class: Aptoma\Twig\Extension\MarkdownExtension 
    tags: 
     - { name: twig.extension } 

Вы можете увидеть в vendor\aptoma подкаталогов доступный двигатель. The available engine

Но вы можете использовать свой. Он должен реализовать только MarkdownEngineInterface.