За последние 24 часа нас посетили 22497 программистов и 1276 роботов. Сейчас ищут 740 программистов ...

Шаблонизатор twig

Тема в разделе "PHP для новичков", создана пользователем Konstant1n, 28 мар 2019.

  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Привет формучане!
    Как мне зарегистрировать автозагрузчик? Скачал twig 2.7.4. Но там нет Twig_Autoloader.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    да, это так. как тогда им начать пользоваться. Вроде бы, в начале надо регистрировать автозагрузчик - Twig_Autoloader::register ?
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Это в первой версии, если без композитора
    upload_2019-3-29_7-37-13.png
    --- Добавлено ---
    Во второй они сочли, что сейчас никому в голову не придёт без композитора, видимо.
     
    Konstant1n нравится это.
  5. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Да, это я тоже видел.
    я как раз скачал вторую через композитор, подключил автозагрузчик, который создал композитор. но в lib/Twig нет Autoloader.php.
    как быть? в документации тоже не нашёл
     
  6. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    PHP:
    1. require_once '/path/to/vendor/autoload.php';
    2.  
    3. $loader = new \Twig\Loader\ArrayLoader([
    4.     'index' => 'Hello {{ name }}!',
    5. ]);
    6. $twig = new \Twig\Environment($loader);
    7.  
    8. echo $twig->render('index', ['name' => 'Fabien']);
    только это. значит так?
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    А попробовать? Я поделкой (твигом, в смысле) почти не пользуюсь, но должно работать через сгенеренный композитором автолоад
     
    Konstant1n нравится это.
  8. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    ты каким шаблонизатором пользуешься?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Когда проект на Laravel, то Blade, иначе - никаким. В Yii для наследования шаблонов есть API, а иначе можно http://platesphp.com/ пользовать.
    А вообще, у меня всё чаще на фронте Angular или Vue
     
    romach нравится это.
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Есть такая довольно популярная October CMS, она основана на Laravel, но шаблоны таки Twig. Почему так? Я думаю потому что в CMS шаблоны должны быть безопасны для редактирования из админки. По умолчанию вставка кода на PHP невозможна и, соответственно песочница под контролем. А шаблоны Blade это всё-таки исходники на php с сахарком.

    Подключение вендора Twig: https://github.com/octobercms/library/blob/master/composer.json#L26
    Регистрация в сервис провайдере: https://github.com/octobercms/october/blob/master/modules/system/ServiceProvider.php#L275
    --- Добавлено ---
    P.S. лично мне нравятся легковесные php-шаблоны. Plates и Blade восхитительны! Но инструмент должен быть адекватен задаче — для CMS больше подходит Twig, я считаю.
     
    AlexProg и Konstant1n нравится это.
  11. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград

    1.
    Что такое Angelar и Vue вкратце? какие есть современные аналоги?

    2.
    Нужна ваша помощь, подсказка. Как я писал выше, я пишу сайт на PHP MVC. В работе буду использовать Active Record и Twig. Про модели понятно, что надо их унаследовать от AD. Контроллеры буду создавать как и прежде, только вьюшка теперь у меня будет реализована с помощью Twig? Или в контроллере буду вызывать Twig, а View вообще не нужен?

    прошу прощения, если в вопросе допущены ошибки
     
    #11 Konstant1n, 1 апр 2019
    Последнее редактирование: 1 апр 2019
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Современные аналоги Vue и Angular? Так они сами - передовые js-фреймворки, если что. Ещё есть React, мне не очень. Если совсем упрощённо, то это js-фреймворки для генерации вёрстки и подстновки в неё данных на клиенте, без ручной возни с DOM. Начинать, имхо, лучше с Vue, там всё очень просто. Angular лично мне не очень нравится, он какой-то пересложнённый, но есть клиенты, которые хотят именно Angular. Плюс для Angular-а надо выучить TypeScript - надстройку над JS от мелкомягких, которая добавляет в JS типизацию. Компилируется в чистый JS.
    В контроллере будешь через экземпляр твига рендерить шаблон, на нём написанный. Возню с твигом я бы вынес как минимум в базовый класс контроллеров, как максимум - вообще отдельный класс.
    --- Добавлено ---
    В Yii сделали комбинацию обоих подходов :) Отдельный класс View, отвечающий за рендер шаблонов, и его дёргают методы render, renderPartial и т.п., которые есть в базовом классе всех контроллеров. Там, правда, твига нет по дефолту, но прикрутить можно.
     
    Konstant1n нравится это.