Pull to refresh

Comments 15

Ну и что, что Smarty «старый и большой»? Мне он по всем параметрам приятнее, чем Twig. А по теме, хотел бы сказать спасибо конечно за такую заметку. Вдруг будет необходимость.
смарти еще и быстрее, недоавно статья была на хабре
Есть сравнение по скорости шаблонизаторов и родных средств php?
К примеру что-то типа:
$data['tpl']['head'] = $this->load->view('tpl/head', $data, true);
$data['tpl']['footer'] = $this->load->view('tpl/footer', $data, true);
$this->load->view('page', $data);

views/page.php
<?=$tpl['head']?>
<?="content"?>
<?=$tpl['footer']?>

Лично замеры не проводил — опыта нету, поэтому не могу гарантировать точность результата.
То что нашел
#1 habrahabr.ru/blogs/php/76021/ (есть сравнение с найтивным php)
#2 habrahabr.ru/blogs/php/75901/

Главной целью было, чтобы вместо шести строчек вверху (хотя даже больше, ведь нужно подключать head и footer в каждой функции с выводом), писать один раз три строчки.
{% include 'header.twig' %}
{% block content %} {{ content }} {% endblock %}
{% include 'footer.twig' %}
Каюсь. Надо было использовать поиск.
Спасибо. Вижу что Twig действительно быстр и близок по скорости к нативному php.
Вы всегда верите тому что пишут? Лучше бы сами попробоваили в деле и убедились что скорость Твиг очень хорошая + те возможности что предлагает Твиг дает много приемуществ, особенно на больших проектов. Так как многие вещи можно делать в виде макросов и не дублировать везде одно и тоже. Также дает приемущество в плане обновления/изменения комонентов, обновляем нужный нам макрос и вуаля во всей системе обновления вступают в силу, в место того чтобы тратить часы на поиски нужно нам кусочка и везде вносить нужные обновления.
У вас отказало чувство юмора? Взгляните на первые 2 комментария и загляните в словарь за значением слова «ирония»

Без разницы кто что умеет и кто как быстро работает. Нет смысла разводить километровые срачи из-за 5-7% прироста производительности.
Почему вам всем так и хочется использовать шаблонизаторы? native-php почему не устраивает?
или человеку сложно объяснить, что место, например {#var#}, ему нужно писать <?=$var>?
По-моему уже очень много холивара было на эти темы.
Представим, что используем native-php. Нужно наследование шаблонов, потому что с ним явно быстрее разрабатывать. Пишу простенькую функцию для наследования, а по сути получаю примитивный шаблонизатор. Точнее маленький кривой велосипед. Так почему сразу не взять готовое и проверенное решение?

Да, native-php быстрее. Но я ещё не видел, чтобы узким местом был именно шаблонизатор (имею в виду классический, а не как в Magento, например).

<?php
  function my_include($filename){
     ob_start();
     include $filename;
     return ob_get_clean();
  }
?>

Вы эту реализацию имеете ввиду? Она заняла у меня 1 минуту. Быстрее, чем установить и настроить шаблонизатор. (:
неа, это оптимизированный include (что, как по мне, круто), а я про наследование
думаю, что все шаблонизаторы должны быть опциональными, захочет разработчик использовать, включит. Я, лично, за native php.
Спасибо за статью, сам я не догадался подключить twig через application/libraries/, раньше он лежал просто в папке external.

На нашем проекте twig используется для рендера шаблонов писем, шаблоны хранятся в базе, так что не понимаю о каком native php может идти речь в данном случае :)
в libraries/Twig.php нужно будет поправить регистр буквы «S»
$loader = new Twig_Loader_FileSystem($this->_template_dir, $this->_cache_dir);
на
$loader = new Twig_Loader_Filesystem($this->_template_dir, $this->_cache_dir);

иначе
Fatal error: Class 'Twig_Loader_FileSystem' not found in ...
Sign up to leave a comment.

Articles