Який шаблонізатор використовувати
Автор: beowulf13th · 23 Кві 2012
Як би не говнилися програмісти 1С:Бітрікс, як би не писали жахливі статті, що XSLT - це складно, страшно, гальмується і взагалі жах якийсь, XSLT має право на існування, принаймні Я так вважаю. І я маю на це кілька причин.
1. Абстрагування від логіки. Досить просто описати XML, який ми видаватимемо, щоб правильно написати XSL-файл. Головне не вносити в XSL якусь логіку. Єдине, що Я дозволяю вибирати в XSL стилях - це який клас буде у елемента, якщо @a = 1. Ну щось таке.
2. Більш зрозуміле та наочне уявлення. Кому як, а мені XSL шаблон подобається набагато більше, ніж мішанина з HTML та PHP, яка виникає при використанні PHP-шаблонізаторів або ще гірше, при виведенні HTML прямо з логіки.
3. Швидкість роботи. Я перевірив на простих прикладах, що працює швидше. Завантажити приклади PHP та XSLT можна внизу сторінки.
Результат цих тестів такий:
Перевірка часу виконання прямого виведення із PHP за 1000 операцій. Прямий висновок працював: 0.0025558471679688 Перевірка часу виконання з використанням файлу, що підключається. Виведення через файл відпрацював: 0.13970184326172 Виведення з використанням XSLT. Висновок з використанням XSLT працював: 0.025261878967285
Прямий висновок як завжди перемагає. Але в нього величезний недолік – код стає нечитабельним. І спроби змінити щось можуть призвести до несподіваних результатів.
На другому місці - XSLT. Він у 10 разів повільніше прямого виведення, але у 5,5 разів швидше виводу з використанням підключення файлу шаблону в циклі. В принципі, є варіант, коли ми виносимо цикл підключається, але це зводиться до висновку з PHP.Тому Я 1000 разів підключаю файл шаблону. :) І, до речі, у прикладі з XSLT враховується час створення XML, тоді як з PHP ми вже відразу виводимо. Якщо буде готова XML, час ще зменшиться.
І підключення файлу шаблону на третьому місці.
Smarty Я не розглядав, можливо наступного разу, коли у мене буде час написати більш складні приклади.