Как создать многоразовый компонент Twig

Я работаю над приложением Symfony 3, которое использует Twig для рендеринга. Чтобы сделать код более читабельным и пригодным для повторного использования, мне нужно разделить экран на небольшие части, части, которые можно было бы использовать на других экранах (например, виджет часов). Сначала это кажется простым, я мог бы использовать метод Twig включают, чтобы включить эту часть кода. Проблема в том, что мои часы используют для работы некоторые специфические скрипты CSS и JS.

Как лучше всего создать повторно используемые компоненты, состоящие из HTML, CSS и JS? Спасибо заранее!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
876
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В Twig нет концепции или подхода «Компонент», но тем не менее вы можете инкапсулировать код CSS + HTML + JS в один файл и включают как изолированный фрагмент кода:

<style>...</style> {# or use <link href = "..."> #}
<div>...</div>
<script>...<script> {# or use <script src = "..."> #}

Однако, вероятно, Twig не является правильным инструментом для достижения этого, и вам следует взглянуть на какой-нибудь интерфейсный фреймворк (например, VueJS https://vuejs.org/v2/guide/index.html), передавая данные через атрибуты HTML.

Хорошо, я бы предположил, что есть возможность включить HTML и перегрузить блоки стилей и javascripts. Я понимаю вашу идею с Vue.js или другим передним фреймворком, но это не вариант для моего проекта. Спасибо за ваш ответ!

RadicalDingos 12.02.2019 18:38

Вероятно, вы можете использовать включение передачи данных в определенный частичный компонент и динамически отображать его.

Проверьте это: https://twig.symfony.com/doc/3.x/tags/include.html

Другие вопросы по теме