Smarty что за программа

Smarty – это движок шаблонов PHP, написанный Монте Ортом и Андреем Змиевским . Еще один шаблонный движок, говорите? Авторы (и я тоже) были бы не согласны. Smarty отличается от остальной части пакета. Что отличает Smarty от других шаблонизаторов, таких как FastTemplate и patTemplate, так это то, что Smarty компилирует ваши шаблоны в сценарии PHP, устраняя накладные расходы, возникающие при разборе шаблонов при каждом обращении к ним. Это делает Smarty очень масштабируемым для больших приложений и веб-сайтов с большим трафиком… и если это не имеет для вас никакого смысла, просто примите во внимание, что Smarty работает очень быстро и будет хорошо работать в условиях стресса и большого трафика!

Шаблонный движок Smarty имеет несколько других замечательных функций помимо компиляции шаблонов, и мы обсудим их чуть позже. Но сначала давайте рассмотрим компиляцию шаблонов …

Компиляция шаблонов объяснила

Что означает «компиляция шаблонов»? Какое отношение имеют веб-страницы к компиляции? Разве компиляция не то, что делают программисты на C ++ и Java? Да, но это другой тип компиляции.

#1.4.1 Эксперт PHP: Шаблонизатор Smarty

Smarty анализирует ваши шаблоны и создает из них PHP-скрипты (а не двоичные файлы, как в общем программировании). Затем, когда ваша веб-страница просматривается, Smarty читает из этих сценариев PHP вместо извлечения самих шаблонов, что избавляет от необходимости повторного анализа шаблонов. Smarty также хорошо знает, когда нужно компилировать: он перекомпилирует ваши шаблоны только тогда, когда вы вносите в них изменения, поэтому вам не нужно беспокоиться о ручной компиляции шаблонов (это похоже на JSP, если вы знаете о как это устроено).

Хорошая вещь в этом заключается в том, что вам даже не нужно знать, есть ли сценарии PHP, и как работает компиляция. Все это скрыто от глаз, поэтому, если вы используете дизайнеров шаблонов для работы над вашими шаблонами, им (или вам, если вы разрабатываете свои собственные шаблоны) не нужно знать, что Smarty – это «механизм компиляции шаблонов».

Кэширование

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

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

PHP Шаблонизатор Smarty

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

Один момент, на который следует обратить внимание (и на который авторы Smarty быстро указывают), заключается в том, что эта функция кэширования полностью отличается от Zend Cache, PHP Accelerator и тому подобного. Инструменты кэширования, такие как PHP Accelerator, кэшируют исполняемый байт-код ваших PHP-скриптов, тогда как Smarty кэширует выходные данные ваших шаблонов. Таким образом, Smarty может работать рука об руку с Zend Cache, где Zend Cache будет кэшировать сценарии PHP, которые Smarty создает из ваших шаблонов. Это обеспечивает отличную производительность, о чем свидетельствуют результаты тестов . Цитирую авторов:

«Производительность Smarty _really_ превосходит в сочетании с ускорителем PHP».

Модификаторы переменных

Smarty также предоставляет модификаторы переменных, которые, как следует из названия, позволяют вам изменять содержимое переменной. Вы можете делать такие вещи, как строчные буквы в верхнем регистре (например, <$title|upper>$title <$content|truncate:30>$content . bad word $article ***

Читайте также:
Что за программа protect

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

Функции шаблона

Smarty предоставляет встроенные и настраиваемые функции для использования в ваших шаблонах. Эти функции похожи на API шаблонов Smarty, за исключением того, что пользовательские функции могут быть изменены, но не встроенные функции. Функции позволяют вам делать такие вещи, как условный вывод программы (используя операторы if foreach section

Это особенно полезно для тех из нас, кто генерирует веб-страницы с контентом из баз данных – это циклические функции (section и foreach), которые можно использовать для зацикливания и отображения набора результатов.

фильтры

Smarty позволяет вам задавать (на самом деле « register load Префильтры – это функции, через которые проходят ваши шаблоны до их компиляции; постфильтры после; и выходные фильтры, после вывода шаблона по запросу.

‘Почему фильтры?’ ты говоришь. Предварительные фильтры позволяют вам выполнять такие действия, как удаление нежелательных комментариев (например, созданных Dreamweaver), и следить за тем, чтобы содержимое нежелательных шаблонов не передавалось компилятору. Постфильтры позволяют добавлять дополнительную информацию к вашим шаблонам, такую ​​как дата создания шаблона (в виде комментария) после их компиляции. Выходные фильтры дают вам возможность изменять выходные данные шаблона, позволяя вам делать такие вещи, как обфусцирование адресов электронной почты на вашей веб-странице для защиты от спам-ботов (используя preg_replace()

Файлы конфигурации

Файлы конфигурации – это файлы конфигурации, в которых вы можете хранить глобальные переменные шаблона. Это позволяет хранить переменные, которые должны влиять на каждый шаблон (то есть глобальные переменные), в центральном месте. Хорошим примером такой переменной будет цветовая схема для ваших шаблонов. Ваши дизайнеры шаблонов должны изменить значения в файле конфигурации только в случае необходимости изменения цветовой схемы. Это избавляет их от мучительной альтернативы прохождения каждого отдельного шаблона для изменения цвета.

Файлы конфигурации также допускают разделы, которые мало чем отличаются от файлов .ini. Названия разделов заключены в квадратные скобки (например, [welcome_page] Все, чего нет в разделе, доступно глобально (после вызова функции config_load

Плагины

Архитектура плагинов Smarty была введена в версии 2.0 и позволяет настраивать Smarty в соответствии с вашими целями (какими бы грандиозными или гнусными они ни были). Префильтры, постфильтры и выходные фильтры, которые я обсуждал ранее, являются лишь некоторыми из типов плагинов, доступных для настройщика. Другими типами подключаемых модулей являются типы модификаторов, блоков, компиляторов, ресурсов и вставок.

С помощью плагинов вы можете создавать свои собственные функции шаблонов, модификаторы переменных и фильтры. Вы даже можете изменить источник данных, из которого вы хотите, чтобы Smarty считывал (по умолчанию это простые файлы), используя плагин ресурса. С помощью плагина ресурсов вы можете сохранять свои шаблоны в базе данных и извлекать их, используя сокеты (или любой другой метод, который вы используете для доступа к шаблонам с помощью PHP. Это означает, что вы можете получить доступ практически к любому источнику).

Вывод

Smarty – это качественный шаблонизатор, который стоит обязательно рассмотреть, если вы ищете версию PHP.

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

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

Андрей Змиевский, один из авторов, также работает в команде разработчиков PHP и тесно связывает разработку Smarty с PHP. Таким образом, вы можете быть уверены, что последние изменения в PHP (например, недавняя проблема register_globals в PHP 4.2.0) будут поддерживаться Smarty.

Источник: coderlessons.com

Smarty — простой способ разобраться в структуре чужих шаблонов

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

Читайте также:
Что за программа duolingo

// Объявляем функцию
function smarty_marktpl($tpl_source, template_dir.$smarty->_current_file;
return «».$tpl_source.»»;
>
// И регистрируем ее в качестве префильтра
$smarty->register_prefilter(‘smarty_marktpl’);

Теперь остается только посмотреть код сгенерированной страницы и сразу становится понятно что откуда взялось.

Источник: habr.com

Все о Smarty

Smarty — это движок (обработчик) шаблонов для PHP, облегчающий отделение данных (HTML / CSS) от логики приложения. Это означает, что PHP-код является логикой приложения и отделен от показа информации конечному пользователю.

Цели создания Smarty

  • отделение показа от кода приложения
  • PHP backend, Smarty шаблон frontend
  • дополняйте PHP, а не заменяйте его
  • быстрая разработка / развертывание для программистов и дизайнеров
  • быстрый и простой в обслуживании
  • синтаксис прост для понимания, не требуется знание PHP
  • гибкость для разработки на заказ
  • безопасность: изоляция от PHP
  • бесплатный, с открытым исходным кодом

Когда речь заходит о шаблонах в PHP, есть в основном два лагеря мышления. Первый лагерь восклицает, что»PHP — это шаблонный движок». Этот подход просто смешивает PHP код с HTML. Хотя этот подход быстр с точки зрения чистого выполнения скрипта, многие утверждают, что синтаксис PHP является беспорядочным и трудным для поддержания при смешивании с выводом. PHP хорошо работает для программирования, но не так хорошо для шаблонизации.

Второй лагерь восклицает, что «витрина» сайта должна быть лишена всего программного кода и вместо этого использовать простые теги, чтобы указать, где раскрывается содержимое приложения. Этот подход является общим для других шаблонных движков (и других языков программирования) и является подходом, который использует Smarty.

Почему важно отделить PHP от шаблонов?

Существует много преимуществ отделения PHP кода от шаблонов, некоторые из которых являются:

Синтаксис: Шаблоны обычно состоят из семантической разметки, такой как HTML. Синтаксис PHP хорошо работает для кода приложения, но быстро усложняется при смешивании с HTML. Простой синтаксис smarty’s разработан специально для вывода. Smarty фокусирует ваши шаблоны на презентации и меньше на «коде». Это позволяет ускорить развертывание шаблона и упростить его обслуживание.

Синтаксис Smarty не требует никаких рабочих знаний PHP и интуитивно понятен как для программистов, так и для не-программистов.

Особенности: механизм шаблонов имеет множество функций для презентации, которые в противном случае необходимо было бы разработать, протестировать и поддерживать в своем собственном коде приложения. Теги также маскируют сложность PHP-операторов. Например:

Smarty является слоем абстракции на PHP для упрощения обслуживания шаблонов (также как и PHP — слой абстракции поверх C для упрощения разработки).

Песочница: когда PHP смешивается с шаблонами, нет никаких ограничений на то, какая логика может быть введена в шаблон. Smarty изолирует шаблоны от PHP, создавая управляемое отделение вывода от бизнес-логики. Smarty также имеет функции безопасности, которые могут дополнительно применять детализированные ограничения на шаблоны.

Переносимость: поскольку шаблоны Smarty являются языковыми агностиками, они могут быть легко скомпилированы на другие языки (например, javascript) с помощью другого компилятора, а знакомый синтаксис также может быть перенесен на другие языки программирования.

Веб-дизайнеры и PHP

Распространенный вопрос: «веб-дизайнеры должны изучить синтаксис в любом случае, почему бы и не PHP?» Конечно, веб-дизайнеры могут изучить PHP, и они уже могут быть знакомы с ним. Проблема заключается не в их способности изучать PHP, а в поддержании PHP, смешанного с HTML. являются более простыми, интуитивно понятными и менее хрупкими, чем PHP-операторы.

Шаблоны также ограничивают то, что может быть помещено в шаблон. PHP делает его слишком легко добавлять код в шаблоны, которые не принадлежат там. Вы могли бы научить дизайнеров правилам проектирования приложений, но если они этому научатся то станут разработчиками. А им это совсем ненужно.

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

Как это работает?

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

Smarty заботится об этом для вас, поэтому дизайнер шаблонов просто редактирует шаблоны Smarty и никогда не должен управлять скомпилированными версиями. Этот подход позволяет легко поддерживать шаблоны и в то же время сохраняет время выполнения чрезвычайно быстро. Поскольку скомпилированные версии являются PHP, ускорители op-кода, такие как APC или ZendCache, продолжают работать над скомпилированными сценариями.

Читайте также:
Подмосковные вечера программа что это

Наследование шаблона

Наследование шаблонов является новым для Smarty 3, и это одна из многих отличных новых функций. До наследования шаблонов мы управляли нашими шаблонами по частям, таким как шаблоны верхнего и нижнего колонтитулов. Эта организация имеет многие проблемы, которые требуют «костылей», таких как управление контентом в верхнем/нижнем колонтитуле на основе каждой страницы.

С наследованием шаблонов, вместо того, чтобы включать другие шаблоны, мы сохраняем наши шаблоны в виде отдельных страниц. Затем мы можем манипулировать блоками содержимого внутри, наследуя их. Это делает шаблоны интуитивно понятными, эффективными и простыми в управлении.

Почему бы не использовать синтаксис XML/XSLT?

На то есть несколько веских причин. Во-первых, Smarty можно использовать для больше чем как раз шаблоны на основе XML / HTML, такие как создание электронных писем, javascript, CSV и PDF-документов. Во-вторых, синтаксис XML/XSLT еще более подробен и хрупок, чем PHP-код! Это прекрасно для компьютеров, но ужасно для людей. Smarty — это то, что легко читать, понимать и поддерживать.

Безопасность шаблона

Хотя Smarty изолирует вас от PHP, у вас все еще есть возможность используйте его определенным образом, если вы хотите. Шаблон силовых структур ограничение PHP (и выберите функции Smarty.) Это полезно, если у вас есть сторонние шаблоны редактирования, и вы не хотите, чтобы раскрыть всю мощь PHP или Smarty к ним.

Другие шаблонные движки

Smarty — это не единственный движок, следующий философии «отдельный программный код от вывода». Например, Python имеет шаблонные движки, построенные на тех же принципах, таких как Шаблоны Django и Гепард. Примечание: такие языки, как Python, не смешиваются с HTML изначально, что дает им преимущество правильного разделения программного кода с самого начала. Есть доступные библиотеки чтобы смешать Python с HTML, но они, как правило,применяются редко.

Чем Smarty не является

Smarty — это не платформа для разработки приложений. Smarty — это не MVC. Smarty не является альтернативой Zend Framework, CodeIgniter, CakePHP или любой другой инфраструктуре разработки приложений для PHP.

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

Разве Smarty подходит мне?

Smarty не должен быть инструментом для каждой работы. Важно определить, соответствует ли Smarty вашим потребностям. Есть несколько важных вопросов, чтобы задать себе:

СИНТАКСИС ШАБЛОНА. Вы согласны с тегами PHP, смешанными с HTML? Ваши веб-дизайнеры комфортно с PHP? Может быть, ваши веб-дизайнеры предпочитают синтаксис на основе тегов, предназначенный для презентации? Некоторый опыт работы как с Smarty, так и с PHP помогает ответить на эти вопросы.

Бизнес-кейс: есть ли требование изолировать шаблоны от PHP? Есть ли у вас ненадежные партии редактирования шаблонов, которые вы не хотите, чтобы развязать власть PHP к? Необходимо ли программно управлять тем, что доступно и что недоступно в шаблонах? Smarty предоставляет эти возможности по дизайну.

Набор функций: есть ли функции Smarty’s, такие как кэширование, наследование шаблонов и архитектура плагинов, которые сохраняют циклы разработки, пишущие код, который был бы необходим в противном случае? Имеет ли кодовая база или платформа, которую вы планируете использовать, необходимые функции для компонента презентации?

Многие известные PHP-проекты используют Smarty, такие как XOOPS CMS , CMS Made Simple и Tiki CMS/Groupware.

Используете ли вы Smarty для небольшого веб-сайта или массового корпоративного решения, он может удовлетворить ваши потребности. Есть множество функций, которые делают Smarty более широкий выбор:

  • разделение PHP и HTML / CSS
  • удобочитаемость для организации и управления
  • безопасность для доступа к шаблонам сторонних производителей
  • завершенность, легко расширяемый к вашим собственным потребностям
  • массивная база пользователей
  • Лицензия LGPL для коммерческого использования
  • 100% бесплатно, проект с открытым исходным кодом

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

Источник: upread.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru