Phalcon Volt template engine - зачем использовать его и какие преимущества

Я не понимаю, почему разработчик будет использовать phalcon Volt template engine.

Потому что, в конце концов, после компиляции создаются одни и те же файлы PHP, которые я могу написать вручную в первую очередь. Для меня это выглядит только пагубно для производительности.

Является ли ответ - "чтобы вы могли передавать файлы .volt перед парнем"?

Спасибо, Темури

Ответ 1

Ответ заключается в разработке вашего приложения. Почему вы используете фреймворк вместо чистого PHP? Зачем беспокоиться о объектно-ориентированном программировании, когда процедурный/прямой PHP быстрее?

Конечно, есть много причин, и это долгая дискуссия. Резюме - это простота использования и ремонтопригодности.

То же самое происходит с Volt. Вы можете использовать шаблоны вольт, чтобы делать то, что вам понадобится намного дольше, если вы создадите простые файлы phtml (HTML с тегами PHP там). Примеры, которые я могу вам дать, - это наследование шаблонов, частичные вычисления, вычисления внутри шаблона (для каждого цикла) и т.д.

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

Решение зависит от вас. Volt, Smarty, Twig и другие, чтобы помочь в разработке вашего приложения. Ваше решение - это то, что заставляет вас использовать механизм шаблонов или нет.

Ответ 2

Это старый вопрос, но я хочу добавить некоторые идеи.

Вы спросили, почему вы должны использовать Volt, механизм шаблонов Phalcon, но в своем объяснении, которое вы хотите узнать, в более общем плане, почему вы должны использовать механизм шаблонов. Короткий ответ на ваш вопрос: вы должны использовать механизм шаблонов, чтобы не смешивать PHP с HTML.

Но я тоже хочу ответить на главный вопрос. Почему Вольт? Перегрузка вольта минимальна по сравнению с любыми другими двигателями шаблонов, и она не потому, что написана на C, а потому, что она генерирует уникальный PHP файл для вашего представления.

Twig - это, вероятно, самый полный шаблонный движок. Twig имеет гораздо больше возможностей по сравнению с Volt, он более стабилен и старше. Во всяком случае, Twig не генерирует уникальный PHP файл, а кучу классов PHP с методами, которые называют друг друга. Неважно, если вы используете расширение Twig C, Twig все равно будет медленным.

Twig действительно очень медленный по сравнению с Volt и даже до старого старого Smarty. Итак, если вы используете Phalcon, вероятно, потому, что вы хотите добиться лучших результатов, подавая множество запросов на страницу; в этом случае Вольт - ваш друг.

Ответ 3

Когда начинается история PHP, она была стандартной, что HTML был сгенерирован непосредственно внутри PHP-скриптов. Но это вызвало некоторые проблемы, когда оно выросло до одного из самых популярных в мире языков программирования.

Чтобы люди, работающие в огромных проектах, были довольны своими задачами, т.е. при разработке веб-сервисов, где был изобретен архитектурный образец MVC. M для модели используется для хранения данных и обработки их в поддерживаемом и повторяемом виде. V для представления в виде части, которая отвечает за формирование правильного вывода. C для контроллера, ответственного за отправку команд в модели и т.д., являясь основной логикой приложения.

Когда пользователь отправляет команду на обслуживание, контроллер обрабатывает ее и понимает. Запуск изменений в правильных моделях и, возможно, переадресация действий другим контроллерам до тех пор, пока достигнут контроллер просмотра. Контроллер просмотра получает правильное представление, вводит в него сгенерированные данные и выполняет его для создания вывода, который отправляется обратно пользователю. Если шаблон для представления еще не создается, он запускает механизм шаблонов для этого.

Правильная реализация полного MVC очень помогает как программистам, системным архитекторам, так и сторонним разработчикам и т.д. Но когда с одной стороны бывает трудно поддерживать базы данных (поэтому ORM были разработаны), на другой стороне системы было сложно поддерживать просмотров.

Одним из принципов MVC является то, что логика (с огромным "L" ) находится только в контроллерах. Таким образом, в представлениях нет логики. Использование механизма шаблонов обеспечивает простоту достижения этого из-за плохой поддержки логики ими. Не секрет, что программисты "ленивы" - поэтому, если у них есть возможность представить более продвинутую логику, они сделают это.

Я предполагаю, что все интерфейсные разработчики имеют навыки программирования. Проблема заключается в том, чтобы заставить их остаться с вами. Работа над огромным проектом с большим количеством просмотров (и поэтому шаблонами hudge) с PHP, смешанным с ними, приведет их в бешенство. Намного легче читать код, написанный для механизма шаблонов.

Идея движков шаблонов заключается в том, чтобы добавить еще одну часть в систему, которая предлагает возможно простой язык, позволяющий использовать базовые логики, такие как циклы и операторы if. С одной стороны, механизм шаблонов получает текстовый файл, который преобразует его в PHP файл со смешанной в него гипер-дозой всего важного HTML.

Если вы один разработчик, никому не важно, что вы используете файлы, которые смешивают PHP с HTML. Похоже, что это близко:

<html>
<head>
    <title><?=$title?></title>
    <? foreach($metas as $meta) { ?>
    <meta name="<?=$meta['name']?>" content="<?=$meta['content']?>"/>
    <? } ?>

Но любой разработчик frontend скорее захочет работать над файлом, выглядящим следующим образом:

<html>
<head>
    <title>{{ title }}</title>
    {% for meta in metas %}
        <meta name="{{ meta.name }}" content="{{ meta.content }}" />
    {% endfor %}

для него более высокая читаемость. Это очень удобно, когда в шаблон входит какой-то javascript. В конце концов, вы получите тот же файл, который вы можете создать вручную, но этот файл создается для вас и сохраняется, поэтому он больше не генерируется, так как файл ядра не изменяется. Мы генерируем наши шаблоны во время развертывания, что имеет 0 удар по производительности, особенно сейчас, когда вольт-движок написан на C.

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

В глобальном масштабе это случай:

чтобы вы могли передавать файлы .volt переднему парню

но это эффект работы в шаблоне MVC. И Фалкон создан для выполнения принципов MVC. Я даже не пытаюсь угадать, как вам удалось работать с этим программным обеспечением в течение ~ 2,5 лет, не используя механизм шаблонов. Возможно, вы работаете один.

Ответ 4

У каждого человека свой вкус, но я говорю вам свое видение.

Я думаю, что вольт полезен, потому что:

  • Как и все фальконечные рамки, Volt обладает отличной производительностью.
  • Преимущества от движков шаблонов (я не хочу повторять, что уже говорят другие ответы)
  • Иерархический рендеринг: Больше информации → https://docs.phalconphp.com/en/3.0.2/reference/views.html#hierarchical-rendering

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

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