Smarty

Софтуер снимки:
Smarty
Софтуер детайли:
Версия: 3.1.5
Дата на качване: 11 May 15
Розробник: New Digital Group, Inc.
Разрешително: Безплатно
Популярност: 1

Rating: nan/5 (Total Votes: 0)

Smarty всъщност не е "Template Engine", би било по-точно да бъде описан като "Template / Представяне Framework." Това означава, че тя осигурява на програмист и дизайнер на шаблони с богатство от инструменти за автоматизиране на задачи често разглеждани в слоя представяне на заявление. Искам да подчертая думата рамка, защото Smarty не е проста таг-подмяна шаблон двигател. Въпреки че може да се използва за такава проста цел, си фокус е върху бърз и безболезнен разработването и внедряването на кандидатурата си, като същевременно се поддържа висока производителност, скалируемост, сигурност и бъдещ растеж.
Така е Smarty точно за вас? Какво става дума за е използването на правото инструмент за работа. Ако искате проста променлива замяна, може да искате да погледнете нещо просто или дори поименно своя собствена. Ако искате по-стабилна рамка шаблони с множество инструменти, за да ви помогне като молбата Ви се развива в бъдещето, Smarty вероятно е добър избор.
<Силен> Защо го използвам?
Един от Smartys гола първична дизайн е да се улесни отделянето на кода на приложението от представяне. Обикновено, кода на приложението съдържа бизнес логиката на приложението ви, написани и се поддържат в PHP код. Този код се поддържа от програмисти. Презентацията е начинът, по съдържанието си се представя на крайния потребител, което е написано и се поддържат в шаблонни файлове. Шаблоните се поддържат от дизайнери шаблон.
В най-основната си функция, кода на приложението събира съдържание, той възлага на двигателя шаблон и го показва. Съдържанието може да е нещо като заглавие, Лозунгът, автор и тялото на статия от вестник. Кодът на заявление не е загрижена как това съдържание ще бъде представен в шаблона. Проектантът на шаблон е отговорен за представянето. Те редактирате шаблонните файлове, добавяне на маркиране и да го доведе до завършване. Това обикновено включва неща като HTML тагове, Cascading Style Sheets и други инструменти, предоставени от двигателя шаблон.
Тази парадигма обслужва няколко цели:
) Дизайнерите не може да пробие кода на приложението. Те могат да се забъркваш с шаблоните всички те искат, но кодът остава непроменена. Кодът ще бъде по-строг, по-сигурен и по-лесно да се поддържа.
) Грешки в шаблоните са запазени за отстраняване на грешки, съчетания Smartys, което ги прави толкова просто и интуитивно, колкото е възможно за дизайнера.
) С презентация по своя слой, дизайнерите могат да променят или напълно да го преустроят от нулата, всички без намеса от страна на програмиста.
) Програмистите не са каша с шаблони. Те могат да отидат за поддържане на кода на приложението, се променя съдържанието на начин се придобива, да направи нови бизнес правила и т.н., без да пречи на представянето слой.
) Шаблоните са тясно представителство на какъв ще бъде крайният резултат, който е интуитивен подход. Дизайнерите не се интересуват от това как съдържанието трябва да шаблона. Ако имате външни данни в шаблона като изявление SQL, това отваря риска от счупване на кода на приложението от случайно изтриване или промяна от проектанта.
) Не се отваря вашия сървър с изпълнението на произволен PHP код. Smarty има много функции за сигурност, построени по този дизайнери няма да наруши сигурността, независимо дали умишлено или случайно. Те могат да направят само това, което те се затварят в шаблоните.
Въпреки, че кода на приложението е отделена от представяне, това не означава непременно, че логиката е отделена. Кодът за кандидатстване очевидно има логика, но шаблоните могат да имат логика основава на условието, че тя е само за презентация. Например, ако дизайнерът иска да се редуват трапезни цветове ред или главни букви някои целеви съдържание, което могат. Това е презентация логика, нещо, програмистът не трябва да се занимава с. Колко често сте бе някаква презентация показва в една колона и след това можете да го искаше в две или три колони, така че кодът на приложения трябва регулиране да побере това? По-добрият подход е да се възложи на съдържанието в един масив и нека шаблона справят представянето. Това ще опрости Вашата кандидатура и си шаблони гъвкава. Smarty доставя инструменти, за да се справят с подобни ситуации.
Това не означава, че Smarty ви предпазва от удар логиката на приложението в шаблона, трябва да имаш малко самодисциплина. Ето един пример за вграждане на бизнес логика в шаблона (точно така, избягвайте да правите това, ако изобщо е възможно):
{Ако $ smarty.session.user и ($ user_type екв "редактор" или $ user_type екв "администратор")}
<Тип вход = име квадратчето = редактиране стойност = "Y"> редактиране <Бразилски>
{/ Ако}
Проверките на логиката, ако потребителят е влязъл в и те са или редактор или администратор, след което те се оставят да редактирате тази така кутийката за редактиране се появи. Това е логиката, която принадлежи на кода на приложението. Шаблонът не му пука за това, което пълномощията този потребител, той просто трябва да знае, ако полето за редактиране се показва или не! Така че нека да погледнем по-подходящ подход:
{Ако $ edit_flag}
<Тип вход = име квадратчето = редактиране стойност = "Y"> редактиране <Бразилски>
{/ Ако}
Тя е до програмист за кандидатстване за присвояване на $ edit_flag, прост и лесен за разбиране променлива в шаблона. По този начин шаблона вече не разчита на вашата основната структура на данните. Ако формата на структурата на данните на сесията някога се променя, нищо не трябва да се коригира в шаблона.
Сега нека разгледаме няколко неща, които можете да направите с Smarty. Едно нещо, което той може да направи, е потребителски функции. Това са ключовите думи в шаблона, които изпълняват определена задача. Пример:
{Html_image файл = "masthead.gif"}
Тук имаме функция, наречена "html_image". Тази функция е на картинката, дадено в "файл" атрибут и върши цялата работа е необходимо да се излезе с следния HTML код:

Функцията картинка Знаете скучна работа на фигуриращ височината и ширината и доставка на граничния подразбиране флаг. Разбира се, че може да се използва само на статични HTML тагове в вместо шаблона, но това показва колко потребителска функция може да се използва, за да се опрости много често срещана задача. Дизайнерът може да се съсредоточи върху дизайн и по-малко на технически неща. Освен това, ако дизайнерът решава да падне в различен размер топовата изображение, шаблона не се нуждае от настройка.
html_image е функция, която идва с Smarty. Можете също така да направите ваши собствени функции. Ето още един пример за това, което човек може да изглежда така:
{Тип html_link = "статия" ID = "abc123" текстови = "Fire вади Hotel"}
Това е използване на потребителска функция, наречена "html_link". Той идва със следния HTML код:
<Един HREF = "/ display_article.php? ID = abc123"> Fire вади Hotel
Какво означава това постигнете? От една страна, не е необходимо да се занимава с формата на URL към статия на дизайнера. С твърди кодирани URL адреси, какво се случва, ако един ден на програмиста реши да чисти нещата, и синтаксис промени на URL от /display_article.php?id=abc123 да / Изкуство / abc123? Ние ще трябва да редактирате всеки шаблон с URL статия. Това е просто още един пример за това как една шаблонна функция може да направи шаблони лесно да се поддържа.
Сега за малко на програмисти и шаблони. По-рано беше споменато, че програмистът не се грижи за това, което шаблоните направя със съдържанието. В концептуален план това е вярно, но в реалния свят не ще да се очаква, дизайнерът шаблон, за да се наложи да изгради всички шаблони от нищото. В крайна сметка, бизнес логика може да се определи какво съдържание се определя на шаблоните. Така че, програмистът ще обикновено настройка скелет шаблони за дизайнера за начало. Това обикновено съдържа сурови елементи като променливи съдържание и раздел вериги, а може би и няколко прости маркиращи етикети, така че те не започват със съдържанието в една голяма бъркотия. Ето един пример на шаблон скелет, който контури чрез списък на предмети и ги показва в таблица:
<Маса>
{Име раздел = изкуството контур = $ статия}

{$ член [изкуство] .headline}
{$ член [изкуство] .date}
{$ член [изкуство] .author}

{/ Раздел}

Изходът може да изглежда по следния начин:
<Маса>

Как запад бе спечелен
2 декември 1999 г.
John Wayne


Team губи, треньорът напуска
2 фев 2002
John Smith


Gourmet готвене
23 януари, 1954
Бети Крокър


Сега за някои често задавани въпроси:
Защо да използвате шаблони на всички? Какво е толкова труден за писането на Вместо {$ заглавието}?
Осъществяване нещата по-лесно да се чете не беше гол дизайн, но по-скоро страничен ефект. Използване на шаблони има огромни ползи, много от които са обяснени по-горе. Тъй като ние сме в шаблон среда във всеки случай, {$ заглавието} е по-малко чужди, отколкото , Особено, когато започнете да се гледа на това в дълги страници със съдържание, така че е доста очевидно, че по-прост синтаксис помага да се направи шаблони по-лесно да се чете и поддържа.
Template отнеме време да се анализира, като приложения много по-бавно.
Това може да е вярно в някои случаи, но с Smarty не е по-бавен от изпълнение на PHP скриптове. На първия изпълнението на шаблон, Smarty преобразува шаблонните файлове в PHP скриптове (наречена шаблон компилиране.) След това, скрипт PHP е просто включени. Двойка това с PHP ускорител и вие наистина имате бърза темплейт среда с минимални разходи.
<Силен> Smarty е твърде сложно, как може да бъде толкова бързо?
Сърцевина Smarty е доста постно обмисля какво е способен. Повечето от неговата функционалност се крие в плъгини. Архитектурата на плъгин е проектирана така, че само най-необходимите му модули са заредени по поръчка. С тази рамка, добавяйки, дори стотици нови плъгини няма да се отрази на изпълнението. Това прави Smarty бързо, мащабируема и гъвкава.
Smarty има и кеширане на функции, които могат динамично да се освежат и да пазят части от страницата кеширана в ви хареса. Кеширане съхранява продукцията на събраните шаблони, спестявайки нуждата да ги изпълни по всяко извикване.
<Силен> Всичко това говори за ускорители, как Smarty работи без един?
Всъщност той работи доста добре, без един. Smarty не изисква ускорител, но шаблона се файлове ще се възползва от едно нещо, което е уникално за Smarty (доколкото знам). Ако не разполагате с ускорител, изпълнение шаблон е не толкова бързо, но не и бавно с всякакви средства, тъй като те не са прави разбор! Можете също така да запазят всички други предимства и характеристики на Smarty. Също така, тъй ускорители са свободно достъпни там не е наистина извинение, за да не бъде с помощта на един. Те ще помогнат изпълнение с всички PHP приложения, използвайки Smarty или не.
<Силен> Как може да бъде по-лесно да се поддържа?
Някои неща не могат да бъдат обяснени, но само с опит. Ползата от разделяне на логиката на приложението, от представяне не може да се подчертае достатъчно. Smarty има и някои хубави черти отстраняване на грешки и вграден в отстраняване на грешки конзола, така че можете да видите на йерархията шаблон и се обозначават променливи в един поглед. Добавяне на персонализирани функции към Smarty е толкова лесно, колкото да ги пуснете в директорията плъгин и да ги споменава в шаблона.
<Силен> таговете шаблона са не XML базирани, Редакторът ми не го харесват.
На {} разделителите са само по подразбиране, те са лесни за различи сред HTML тагове. Ако не ги харесвам, промените разделители си или може би нещо повече XMLish харесват Има и много Потребителски приноси за Dreamweaver и други подобни, да ги давам да погледне в района на приноси.
Това е Smarty по-накратко, да се надяваме, можете да го добавите към своя арсенал от инструменти за строителни уеб приложение. Да наистина научите повече, прочетете инструкциите горе до долу, се присъедини към форума и да видим това, което хората, които обсъждаме

<силни> Характеристики :.

    <Ли > изчакват: Smarty осигурява фин функции кеширане за кеширане на цялата или части от постановеното уеб страница, или да се оставят части кеширана. Програмистите могат да се регистрират функции шаблонни като кеширане или не-cachable, групови кешираните страници на логически блокове за по-лесно управление и др.
  • Configuration Files: Smarty да зададете променливи извади от конфигурационни файлове. Шаблон дизайнери могат да поддържат общи за няколко шаблони ценности на едно място, без намеса от страна на програмиста, и конфигурационни променливи могат лесно да бъдат споделяни между програмните и презентационни части на заявлението.
  • Security: Templates не съдържат PHP код. Затова шаблон дизайнер не се освободи с пълната сила на PHP, но само подгрупата на функционалност предоставените им от програмист (кода на приложението.)
  • Лесен за използване и поддръжка: дизайнерите на уеб-страници не се занимават с PHP код синтаксис, но вместо това е лесна за използване синтаксис темплейт не много по-различно от обикновен HTML. Шаблоните са много тясно представителство на крайната продукция, драстично съкращаване на цикъла на проектиране.
  • Променливи Модификатори: съдържанието на възложените променливи могат лесно да се коригират по дисплея време с модификатори, като показвате във всички главни букви, HTML-избягали, форматиране дати, отрязване на текстови блокове, добавяйки пространства между героите и др Again това се постига, без намеса от страна на програмиста.
  • Функции Шаблон: Много функции са достъпни за дизайнера шаблон, за да се справят задачи като генериране на HTML код сегменти (падащите менюта, таблици, изскачащи прозорци, и т.н.), показване на съдържание от други шаблони в-линия, примка над масиви от съдържание , форматиране на текст за електронна поща изход, колоездене макар цветове и др.
  • Filters:. Програмистът има пълен контрол на матрична продукция и компилиран съдържание шаблон с предварително филтри, пост-филтри и изходни филтри
  • Ресурси:. Templates може да бъде изтеглен от произволен брой източници чрез създаване на нови товарачи ресурси, а след това да ги използвате в шаблоните
  • Plugins: почти всеки аспект от Smarty се контролира чрез използването на плъгини. Те обикновено са толкова лесно, колкото да ги пуснете в директорията плъгин и след това да ги споменава в шаблона или да ги използвате в кода на приложението. Много вноски потребителя общността също са на разположение. (Вижте раздела за плъгини на форума и уикито.)
  • Добавки: Много от потребителите на Общността са допринесли добавки са на разположение като Pagination, Формуляр за потвърждаване, падащо меню Менюта, Calander Дата берачи т.н. Тези инструменти допринесе за ускоряване на цикъла на развитие, не е необходимо да се възстанови измислят колело или отстраняване на грешки код, който вече е стабилен и готов за разгръщане. (Виж за Добавки раздел на форума и уикито.)
  • Debugging:. Smarty идва с
  • вграден грешки конзола, така дизайнера шаблон може да видите всички възложени променливи и програмист може да разследва скорости шаблонни оказване
  • Компилиране:. Smarty компилира шаблони в PHP код зад кулисите, елиминирайки по време на изпълнение разбор на шаблони
  • Performance: Smarty изпълнява изключително добре, въпреки огромното си набор от функции. Повечето от възможности Smarty лежат в плъгини, които се зареждат при поискване. Smarty идва с множество инструменти за презентиране, свеждане до минимум на кода на приложението и в резултат по-бързо, по-малко податливи на грешка Application Development / разгръщане. Smarty шаблони се компилира до PHP файлове вътрешно (еднократно), премахване на скъпи шаблонен файл сканиране и деблокирането на скоростта на PHP оп-код ускорители.

Какво ново в тази версия:

  • върне супер глобалните промени за достъп, а вместо това разчитат на USE_SUPER_GLOBALS за сигурност

Какво ново във версия 6.2.23:

  • стриптийз backticks от {} математически уравнения (mohrt)
  • хвърляне грешка, когато съществува шаблон, но не се чете (mohrt)

Какво ново във версия 2.6.22:

  • Тази версия е насочена проблем възникна с Smarty 2.6 0.21 освобождаване и PCRE двигателя бъг в PHP 5.2. Метод верижното е била отстранена, за да се избегне грешката. Метод верижното ще се появи отново в Smarty 3.

Друг софтуер на разработчика New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Коментари към Smarty

Коментари не е намерена
добавите коментар
Включете на изображения!