Smarty

Sagteware kiekie:
Smarty
Sagteware besonderhede:
Weergawe: 3.1.5
Upload datum: 11 May 15
Lisensie: Gratis
Populariteit: 1

Rating: nan/5 (Total Votes: 0)

Smarty is nie eintlik 'n "Sjabloon Engine", sou dit meer akkuraat beskryf word as 'n "Sjabloon / aanbieding Framework." Dit is, bied dit die programmeerder en die sjabloon ontwerper met 'n rykdom van gereedskap om take algemeen hanteer word op die aanbieding laag van 'n aansoek te outomatiseer. Ek beklemtoon die woord Framework omdat Smarty is nie 'n eenvoudige tag vervang sjabloon enjin. Alhoewel dit gebruik kan word vir so 'n eenvoudige doel, sy fokus is op 'n vinnige en pynlose ontwikkeling en implementering van u aansoek, terwyl die handhawing van 'n hoë-prestasie, scalability, sekuriteit en toekomstige groei.
So is Smarty reg vir jou? Wat dit kom neer op die gebruik van die regte gereedskap vir die werk. As jy wil eenvoudige veranderlike vervanging, wil jy dalk om te kyk na iets makliker of selfs jou eie rol. As jy wil 'n robuuste template raamwerk met talle gereedskap om jou te help as jou aansoek ontwikkel in die toekoms, Smarty is waarskynlik 'n goeie keuse.
Hoekom dit gebruik?
Een van Smartys primêre ontwerp doelwitte is om die skeiding van toepassing kode van aanbieding te fasiliteer. Tipies, die program kode bevat die besigheid logika van jou aansoek, geskryf en in stand gehou PHP-kode. Hierdie kode word onderhou deur programmeerders. Die aanbieding is die manier waarop die inhoud is aan die eindgebruiker, wat geskryf is en in stand gehou sjabloon lêers. Die templates gehandhaaf deur sjabloon ontwerpers.
Op sy mees basiese funksie, die aansoek code versamel inhoud, dui dit aan die sjabloon enjin en vertoon dit. Die inhoud kan iets soos die kop, tagline, skrywer en liggaam van 'n koerant artikel. Die aansoek-kode het geen kommer hoe hierdie inhoud in die sjabloon aangebied sal word. Die sjabloon ontwerper is verantwoordelik vir die aanbieding. Hulle wysig die sjabloon lêers, en voeg opmaak en bring dit na voltooiing. Dit behels gewoonlik dinge soos HTML tags, cascading style sheets en ander instrumente wat deur die sjabloon enjin.
Hierdie paradigma dien verskillende doeleindes:
) Ontwerpers kan nie breek aansoek code. Hulle kan mors met die templates al wat hulle wil, maar die kode ongeskonde bly. Die kode sal strenger, meer veilig en makliker om te onderhou.
) Foute in die templates is beperk tot die Smartys fout hantering roetines, maak hulle so eenvoudig en intuïtief as moontlik vir die ontwerper.
) Met die aanbieding op sy eie laag, kan ontwerpers verander of heeltemal herontwerp dit van nuuts af, almal sonder ingryping van die programmeerder.
) Programmeerders is nie geknoei met templates. Hulle kan gaan oor die handhawing van die aansoek-kode, die manier waarop die inhoud is verkry om te verander, die maak van nuwe besigheid reëls, ens sonder om die aanbieding laag.
) Templates is 'n beslote voorstelling van hoe die finale uitset sal wees, wat is 'n intuïtiewe benadering. Ontwerpers gee nie om hoe die inhoud het om die sjabloon. As jy vreemde data in die sjabloon soos 'n SQL-stelling, dit maak die risiko van breek aansoek kode deur toevallige te skrap of verandering deur die ontwerper.
) Jy is nie die opening van jou bediener na die uitvoering van arbitrêre PHP-kode. Smarty het baie sekuriteit funksies gebou in so ontwerpers sal nie verbreek sekuriteit, of opsetlike of onopsetlike. Hulle kan net doen wat hulle is beperk tot die templates.
Hoewel aansoek kode is geskei van die aanbieding, beteken dit nie noodwendig beteken dat logika geskei. Die aansoek-kode het natuurlik logika, maar die templates kan logika gebaseer op die voorwaarde dat dit is slegs vir die aanbieding. Byvoorbeeld, as die ontwerper wil ry in die tabel kleure of hoofletters paar opgedra inhoud, hulle kan wissel. Dit is die aanbieding logika, iets wat die programmeerder moet nie bekommerd te wees met. Hoe dikwels het jy het 'n paar aanbieding vertoon in 'n enkele kolom en dan kan jy dit wou in twee of drie kolomme, sodat die aansoek kode moet pas by hierdie akkommodeer? 'N beter benadering is om die inhoud in 'n enkele verskeidenheid toewys en laat die sjabloon hanteer die aanbieding. Dit sal jou aansoek oorweeg en hou jou templates buigsaam. Smarty verskaf die gereedskap om hierdie soort van situasie te hanteer.
Dit beteken nie dat Smarty verhoed dat jy om aansoek logika in die sjabloon, jy het 'n bietjie van self dissipline. Hier is 'n voorbeeld van inbedding besigheid logika in die sjabloon (dit is reg, vermy om dit te doen indien enigsins moontlik):
{As $ smarty.session.user en ($ user_type eq "editor" of $ user_type eq "admin")}
wysig
{/ Of}
Die logika tjeks as die gebruiker is aangeteken in en hulle is óf 'n redakteur of administrateur, dan is hulle toegelaat om te wysig dit so die boks wysig toon. Dit is logies dat hoort in die program kode. Die sjabloon nie omgee oor wat geloofsbriewe hierdie gebruiker het, is dit net nodig om te weet as die redigeer boks nie vertoon of! So laat ons kyk na 'n meer geskikte benadering:
{As $ edit_flag}
wysig
{/ Of}
Dit is aan die aansoek programmeerder om die $ edit_flag, 'n eenvoudige en maklik-om-te verstaan ​​veranderlike in die sjabloon. Hierdie manier waarop die sjabloon is nie meer vertrou op jou onderliggende data struktuur. Indien die formaat van die sessie data struktuur ooit verander, moet niks aangepas word in die sjabloon.
Nou kan kyk na 'n paar dinge wat jy kan doen met Smarty. Een ding wat dit kan doen, is persoonlike funksies. Dit is etikette in die sjabloon wat 'n sekere taak uit te voer. Voorbeeld:
{Html_image lêer = "masthead.gif"}
Hier het ons 'n funksie genoem "html_image". Hierdie funksie neem die beeld wat in die kenmerk "lêer" en doen al die werk wat nodig is om te kom met die volgende HTML-kode:

Die beeld het die funksie karwei van die uitzoeken die hoogte en breedte en die verskaffing van die standaard grens vlag. Natuurlik kan jy net gebruik die statiese HTML tag in die sjabloon plaas, maar dit demonstreer hoe 'n persoonlike funksie kan gebruik word om 'n baie algemene taak te vergemaklik. Die ontwerper kan fokus op die ontwerp en minder op die tegniese dinge. Verder, as die ontwerper besluit om drop 'n beeld verskillende grootte mashoof in die sjabloon nie aanpassing nodig.
html_image is 'n funksie wat kom met Smarty. Jy kan ook jou eie persoonlike funksies te maak. Hier is nog 'n voorbeeld van wat 'n mens kan sien:
{Type html_link = "artikel" id = "ABC123" text = "Vuur haal Hotel"}
Dit is die gebruik van 'n persoonlike funksie genoem "html_link". Dit kom met die volgende HTML-kode:
Vuur haal Hotel
Wat beteken dit te bewerkstellig? Vir een, het die ontwerper nie nodig om bekommerd te wees met die formaat van 'n URL na 'n artikel. Met harde gekodeerde URLs, wat gebeur as 'n dag die programmeerder besluit om dinge skoon te maak, en verander die URL sintaksis van /display_article.php?id=abc123 na / ART / ABC123? Ons wil hê dat elke sjabloon wysig met 'n artikel URL. Dit is net nog 'n voorbeeld van hoe 'n sjabloon funksie templates makliker om te onderhou kan maak.
Nou vir 'n bietjie op programmeerders en templates. Vroeër is genoem dat die programmeerder het geen sorg vir wat die templates doen met die inhoud. Op 'n konseptuele vlak is dit waar, maar in die werklike wêreld jy is nie van plan om te verwag van die sjabloon ontwerper hê om al die templates bou uit die lug. Na alles, die besigheid logika nie bepaal watter inhoud is toegeken aan die templates. So, die programmeerder sal tipies opstel geraamte templates vir die ontwerper om te begin met. Dit bevat gewoonlik die rou elemente soos inhoud veranderlikes en artikel loops, en miskien 'n paar eenvoudige opmaak tags sodat hulle nie begin met die inhoud in 'n groot gemors. Hier is 'n voorbeeld van 'n geraamte sjabloon wat loops deur 'n lys van artikels en gee dit in 'n tabel:


{Artikel name = kuns lus = $ artikel}


{/ Artikel}
{$ artikel [art] .headline}
{$ artikel [art] .date}
{$ artikel [art] .author}

Die uitset kan iets soos hierdie:







Hoe die weste is gewen
2 Desember 1999
John Wayne
span verloor, afrigter gesluit
2 Februarie 2002
John Smith
Gourmet Cooking
23 Januarie 1954
Betty Crocker

Nou vir 'n paar algemene vrae:
Hoekom gebruik templates by almal? Wat is so moeilik oor die skryf In plaas van {$ titel}?
Dinge maak makliker om te lees, was nie 'n ontwerp doel nie, maar meer van 'n newe-effek. Maatvorms gebruik het groot voordele, baie van wat reeds hierbo verduidelik. Aangesien ons in 'n sjabloon omgewing anyways, {$ titel} is minder as vreemde , Veral wanneer jy begin kyk na dit in 'n lang bladsye van die inhoud, so dit was mooi duidelik dat 'n eenvoudiger sintaksis help om templates makliker om te lees en te behou.
Sjabloon tyd neem om te ontleed, maak aansoeke veel stadiger.
Dit mag waar wees in sommige gevalle, maar met Smarty is dit geen stadiger as die uitvoering van 'n PHP script. Op die eerste uitvoering van 'n sjabloon, Smarty vat die sjabloon lêers in PHP skrifte (genoem sjabloon opstel.) Daarna word die PHP script net ingesluit. Koppel dit met 'n PHP versneller en jy het werklik 'n vinnige template omgewing met 'n minimale oorhoofse.
Smarty is te ingewikkeld, hoe kan dit wees dat 'n vinnige?
Smarty se kern is redelik skraal oorweging van wat dit in staat is. Die meeste van sy funksies lê in plugins. Die plugin argitektuur is so ontwerp dat slegs die vereiste plugins op aanvraag gelaai is. Met hierdie raamwerk, sal die toevoeging van nog honderde nuwe plugins geen invloed prestasie. Dit maak Smarty vinnig, skaal aanvaarde en buigsaam.
Smarty het ook caching funksies wat dinamiese verfris en hou gedeeltes van die bladsy uncached by jou smaak. Caching slaan die uitset van die saamgestel templates, die redding van die behoefte om hulle uit te voer op elke oproep.
Al hierdie gepraat oor versnellers, hoe Smarty voer sonder een?
Eintlik is dit loop baie goed sonder een. Smarty nie 'n versneller vereis, maar die sjabloon lêers self sal neem voordeel van een, iets wat uniek is aan Smarty (AFAIK). As jy nie 'n versneller het, uitvoering sjabloon is nie so vinnig, maar nie stadig op enige manier aangesien hulle nie ontleed! Jy behou ook al die ander voordele en kenmerke van Smarty. Ook, omdat versnellers is vrylik beskikbaar is daar nie regtig 'n verskoning om nie die gebruik van een. Hulle sal die prestasie te help met al PHP programme, met behulp van Smarty of nie.
Hoe kan dit makliker wees om in stand te hou?
Sommige dinge kan nie verduidelik word nie, maar slegs ervaar. Die voordeel van die skeiding van die aansoek logika van die aanbieding kan nie genoeg beklemtoon word nie. Smarty het ook 'n paar mooi fout hantering funksies en 'n ingeboude in debugging konsole sodat jy die sjabloon voeg, kan sien en wat veranderlikes in 'n oogopslag. Die toevoeging van persoonlike eienskappe te Smarty is so maklik soos val hulle in die plugin gids en noem hulle in die sjabloon.
Die sjabloon tags word nie XML-gebaseerde, My redakteur nie daarvan hou nie.
Die {} delimiters is net 'n verstek, hulle is maklik om te onderskei tussen HTML tags. As jy nie hou van hulle, verander jou delimiters of dalk iets meer XMLish soos Daar is ook baie van die gebruikers bydraes vir Dreamweaver en dies meer, gee hulle 'n blik in die bydraes area.
Dit is Smarty in 'n neutedop, hopelik kan jy dit by jou arsenaal van gereedskap vir web aansoek gebou. Om werklik meer inligting, lees die handleiding bo tot onder, by die forums om te sien wat mense bespreek

Eienskappe :.

  • Caching: Smarty bied fyn caching funksies vir caching hele of dele van 'n gelewer webblad, of verlaat dele uncached. Programmeerders kan sjabloon funksies as cacheable of nie-cachable, groep cached bladsye in logiese eenhede vir makliker bestuur, ens te registreer.
  • Configuration Files: Smarty kan veranderlikes getrek uit konfigurasielêers toewys. Sjabloon ontwerpers kan gemeenskaplike waardes verskeie templates in een plek te handhaaf sonder ingryping van die programmeerder en config veranderlikes kan maklik gedeel word tussen die ontwikkeling en aanbieding van gedeeltes van die program.
  • Security: Templates nie PHP kode bevat. Daarom is 'n sjabloon ontwerper nie ontketen met die volle mag van PHP, maar slegs die subset van die funksies aan hulle beskikbaar gestel uit die programmeerder (toepassing code.)
  • Maklik om te gebruik en in stand te hou: Web page ontwerpers nie met PHP-kode sintaksis, maar in plaas daarvan 'n maklik-om-te gebruik template sintaksis nie veel anders as gewone HTML. Die templates is 'n baie goeie voorstelling van die finale uitset, dramaties verkort die ontwerp siklus.
  • Veranderlike Wysigers: Die inhoud van wat veranderlikes kan maklik aangepas word by die vertoning-time met wysigers, soos vertoon in alle hoofletters,-html ontsnap, opmaak datums, truncating teks blokke, en voeg spasies tussen die karakters, ens Weer Dit word gedoen met geen ingryping van die programmeerder.
  • Sjabloon Funksies: Baie funksies is beskikbaar om die sjabloon ontwerper om take soos die opwekking van HTML-kode segmente (vervolg keuselys, tafels, pop-ups, ens), vertoon die inhoud van ander templates in-line, herhaling oor skikkings van inhoud te hanteer , teks formatering vir e-pos uitset, fietsry al kleure, ens.
  • Filters:. Die programmeerder het volle beheer van template uitset en saamgestel sjabloon inhoud met pre-filters, post-filters en uitset-filters
  • Resources. Templates kan van enige aantal bronne getrek deur die skep van nuwe hulpbron hanteerders, dan met behulp van hulle in die templates
  • proppe: Byna elke aspek van Smarty beheer deur die gebruik van plugins. Hulle is oor die algemeen so maklik soos val hulle in die plugin gids en dan noem hulle in die sjabloon of die gebruik van hulle in die program kode. Baie gebruikers-gemeenskap bydraes is ook beskikbaar. (Sien die afdeling plugins van die forum en wiki.)
  • Byvoegings: Baie gebruikers-gemeenskap bygedra Byvoegings beskikbaar soos Paginering, Form Validation, Drop Down Menus, Calander Datum Plukkers, ens Hierdie gereedskap help bespoedig die ontwikkeling siklus, is daar geen behoefte om te re- die wiel of debug kode wat reeds 'n stabiele en gereed vir implementering. (Sien die-byvoegings afdeling van die forum en wiki.)
  • Ontfouting. Smarty kom met 'n ingeboude in die opsporing van konsole so die sjabloon ontwerper al die veranderlikes wat kan sien en die programmeerder kan sjabloon lewering spoed te ondersoek
  • Die opstel. Smarty stel templates in PHP-kode agter die skerms, die uitskakeling van run-time parsing van templates
  • Performance: Smarty voer baie goed, ten spyte van sy groot funksie te stel. Die meeste van Smarty se vermoëns lê in plugins wat op aanvraag gelaai is. Smarty kom met talle aanbieding gereedskap, die vermindering van jou aansoek kode en gevolglike vinniger, minder fout geneig aansoek ontwikkeling / ontplooiing. Smarty templates kry saamgestel om PHP lêers intern (een keer), die uitskakeling van duur sjabloon lêer skanderings en die gebruik van die spoed van PHP op-kode versnellers.

Wat is nuut in hierdie release:

  • terugkeer super globale toegang veranderinge, en in plaas daarvan staatmaak op USE_SUPER_GLOBALS vir sekuriteit

Wat is nuut in die weergawe 2.6.23:

  • strook backticks van {} wiskunde vergelykings (mohrt)
  • gooi fout wanneer sjabloon bestaan ​​maar nie leesbaar (mohrt)

Wat is nuut in die weergawe 2.6.22:

  • Dit release spreek 'n probleem ondervind met die Smarty 2,6 0,21 release en 'n PCRE enjin fout in PHP 5,2. Metode aaneenskakeling verwyder om die fout te vermy. Metode aaneenskakeling sal weer verskyn in Smarty 3.

Ander sagteware ontwikkelaar New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Kommentaar te Smarty

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!