Smarty

Software kuvakaappaus:
Smarty
Ohjelmiston tiedot:
Versio: 3.1.5
Lähetyksen päivämäärä: 11 May 15
Lupa: Vapaa
Suosio: 1

Rating: nan/5 (Total Votes: 0)

Smarty ei ole oikeastaan ​​"Template Engine", se olisi paremmin kuvailla "Malline / esittely Framework." Eli se tarjoaa ohjelmoija ja mallin suunnittelija runsaasti työkaluja automatisoida tehtäviä yleisesti käsiteltävä esityskerroksen hakemuksen. Korostan sanaa Framework koska Smarty ei ole yksinkertainen tag-tilalle mallin moottori. Vaikka sitä voidaan käyttää tällaiseen yksinkertainen tarkoitus, sen painopiste on nopea ja kivuton kehittämiseen ja käyttöönottoon hakemuksesi, säilyttäen korkean suorituskyvyn, skaalautuvuuden, turvallisuus ja tulevaa kasvua.
Joten on Smarty oikea sinulle? Mitä se tulee alas on käyttää oikea työkalu työhön. Jos haluat yksinkertaisen muuttujan vaihto, saatat haluta katsoa jotain yksinkertaisempaa tai jopa rullata omia. Jos haluat vankka templating puitteet lukuisia työkaluja auttamaan sinua hakemuksesi kehittyy tulevaisuudessa, Smarty on todennäköisesti hyvä valinta.
Miksi käyttää sitä?
Yksi Smartys ensisijainen muotoilu tavoitteena on helpottaa erottaminen sovelluksen koodia esityksen. Tyypillisesti, sovellus koodi sisältää liiketoiminnan logiikkaa hakemuksesi, kirjoitettu ja ylläpidetään PHP. Tämä koodi ylläpitää ohjelmoijia. Esityksen on tapa sisältö esitetään loppukäyttäjälle, joka on kirjoitettu ja ylläpidetään mallitiedostot. Mallit ylläpitää mallin suunnittelijat.
Yksinkertaisimmillaan funktio, sovellus koodin kerää sisältöä, määrittää sen mallin moottori ja näyttää sen. Sisältö voi olla jotain otsikkoa, mainoslause, kirjailija ja ruumis lehtiartikkelin. Sovellus koodi ei ole huolissaan siitä, miten tämä sisältö esitellään malliin. Template suunnittelija vastaa esityksen. He muokata mallitiedostot, lisäten merkkaus ja tuo sen loppuun. Tämä liittyy yleensä asioita, kuten HTML-tagit, CSS ja muut tarjoamia työkaluja mallin moottori.
Tämä paradigma on useita tarkoituksia:
) Suunnittelijat voi rikkoa sovelluksen koodia. Ne voivat sotkea malleja kaikki haluavat, mutta koodi säilyy koskemattomana. Koodi on tiukempi, turvallisempi ja helpompi ylläpitää.
) Virheet malleja rajoittuvat Smartys virheiden käsittelyä rutiineja, mikä tekee niistä niin yksinkertaista ja intuitiivista kuin mahdollista suunnittelija.
) Kun esitys omalle tasolleen, suunnittelijat voivat muokata tai kokonaan uudelleensuunnittelun alusta asti, kaikki ilman väliintuloa ohjelmoija.
) Ohjelmoijat eivät Messing kanssa malleja. He voivat mennä noin säilyttää sovelluksen koodin, muuttaa tapaa sisältö on hankittu, jolloin uuden liiketoiminnan säännöt jne häiritsemättä esityskerroksen.
) Mallit ovat tiivis esitys mitä lopullinen tuotanto on, joka on intuitiivinen lähestymistapa. Suunnittelijat eivät välitä miten sisältö sai malliin. Jos sinulla on ylimääräisiä tietoja malliin, kuten SQL-, tämä avaa murtumisriskiä sovelluksen koodin vahingossa poistetaan tai muuttamista suunnittelija.
) Et ole avaamalla palvelin mielivaltaisen PHP. Smarty on monia turvatekijöitä sisäänrakennettu joten suunnittelijat eivät turvarikkomukseen, tahallisesti tai vahingossa. He voivat vain tehdä, mitä ne rajoittuvat on malleja.
Vaikka sovellus koodia erotetaan esityksen, tämä ei välttämättä tarkoita, että logiikka on erotettu. Sovellus koodi on luonnollisesti logiikkaa, mutta mallit voivat olla logiikka perustuu ehdolla, että se on esitettäväksi vain. Esimerkiksi, jos suunnittelija haluaa vuorotella taulukkorivin värejä tai isoja joitakin osoitettu sisältöä, he voivat. Tämä on esitys logiikkaa, jotain ohjelmoija ei pitäisi olla huolissaan. Kuinka usein olet ollut joitakin esitys näkyy Kaksipalstaisia ​​ja sitten halunnut sitä kahdessa tai kolmessa sarakkeessa, joten sovelluksen koodi on mukautettava vastaamaan tähän? Parempi vaihtoehto on antaa sisältöä yhteen array ja anna mallin hoitaa esityksen. Tämä yksinkertaistaa sovelluksen ja säilyttää malleja joustava. Smarty toimittaa välineitä käsitellä tällaista tilannetta.
Tämä ei tarkoita, että Smarty estää sinua laskemisesta sovelluksen logiikkaa malliin, sinun täytyy olla hieman itsekuria. Tässä on esimerkki upottamisen liiketoiminnan logiikkaa malliin (aivan oikein, et tekisi tätä, jos suinkin mahdollista):
{Jos $ smarty.session.user ja ($ user_type eq "editor" tai $ user_type eq "admin")}
Muokkaa
{/ Jos}
Logiikka tarkistaa, onko käyttäjä on kirjautunut sisään, ja ne ovat joko toimittaja tai ylläpitäjä, niin he voivat muokata tätä niin muokkauksen valintaruutu näkyy. Tämä on logiikka, joka kuuluu hakemuksessa koodin. Template ei välitä mitä valtakirjansa tämän käyttäjän on, se vain täytyy tietää, jos muokkauksen avautuu tai ei! Joten katsokaamme sopivampi lähestymistapa:
{Jos $ edit_flag}
Muokkaa
{/ Jos}
Se on jopa sovelluksen ohjelmoija määrittää $ edit_flag, yksinkertainen ja helposti ymmärtää muuttujan malliin. Näin malli on enää tukeutuen teidän taustalla tietorakenne. Jos muoto istunnon tietorakenteen joskus muuttuu, mitään ei tarvitse säätää malliin.
Nyt Katsotaanpa muutamia asioita, voit tehdä Smarty. Yksi asia, se voi tehdä on mukautettuja toimintoja. Nämä ovat tagit malliin, että suorittaa tietty tehtävä. Esimerkki:
{Html_image file = "masthead.gif"}
Täällä meillä on toiminto nimeltään "html_image". Tämä toiminto kuvan annettu "tiedosto" määrite ja tekee kaiken tarvittavan työn keksiä seuraava HTML-koodi:

Kuva-toiminto ei urakka miettiminen korkeus ja leveys ja toimittaa oletus rajalla lippua. Tietenkin voit vain käyttää staattisia HTML-tunnisteen mallin sijaan, mutta tämä osoittaa, miten mukautetun toimintoa voidaan hyödyntää yksinkertaistamaan hyvin yleinen tehtävä. Suunnittelija voi keskittyä suunnitteluun ja vähemmän teknisiä juttuja. Lisäksi jos suunnittelija päättää laskea eri kokoa mastonhuippu kuvaa, mallin ei tarvitse säätö-.
html_image on toiminto, joka tulee Smarty. Voit myös tehdä omia toimintoja. Tässä toinen esimerkki siitä, mitä voisi näyttää:
{Html_link type = "article" id = "abc123" text = "Fire nostaessa Hotel"}
Tämä käyttää mukautettua toiminto nimeltään "html_link". Se keksii seuraava HTML-koodi:
Tuli ottaa pois hotelli
Mitä tämä saavuttaa? Yhden, suunnittelija ei tarvitse olla huolissaan muotoa URL artikkelin. Kova-koodattu URL-osoitteita, mitä tapahtuu, jos jonakin päivänä ohjelmoija päättää siivota asioita, ja muuttaa URL syntaksien /display_article.php?id=abc123 ja / ART / abc123? Meidän pitäisi muokata jokaisen mallin kanssa artikkelin URL. Tämä on vain yksi esimerkki siitä, miten mallin funktio voi tehdä malleja helpompi ylläpitää.
Nyt hieman ohjelmoijia ja malleja. Aiemmin mainittiin, että ohjelmoija ei ole hoitoa, mitä malleja tehdä sisältöä. Tällä käsitteellisellä tasolla tämä on totta, mutta todellisessa maailmassa et aio odottaa mallin suunnittelija on rakentaa kaikki mallit tyhjästä. Onhan liiketoiminnan logiikkaa ei määritellä, mitä sisältöä on määritetty malleja. Joten, ohjelmoija on yleensä setup luuranko malleja suunnittelija aloittaa. Tämä sisältää yleensä raaka tekijöistä, kuten sisällön muuttujat ja osio silmukoita, ja ehkä muutama yksinkertainen markup tunnisteet, jotta ne eivät ala sisällön iso sotku. Tässä on esimerkki luuranko malli, joka silmukoita kautta listan artikkeleita ja näyttää ne taulukossa:


{Jakso name = taidetta loop = $ article}


{/ Jakso}
{$ artikkelissa [art] .headline}
{$ artikkelissa [art] .date}
{$ artikkelissa [art] .author}

Tuotos voi näyttää suunnilleen tältä:







Miten lännessä voitti
02 joulukuu 1999
John Wayne
Team menettää, valmentaja sulkeutuu
02 helmikuu 2002
John Smith
Gourmet Cooking
23 tammikuu 1954
Betty Crocker

Nyt joitakin yleisiä kysymyksiä:
Miksi käyttää malleja ollenkaan? Mikä on niin kova kirjoittamisesta Sijasta {$ title}?
Tehdä asioita helpompi lukea ollut suunnittelu tavoite, mutta enemmän haittavaikutuksia. Mallien on valtavia etuja, joista monet on selitetty edellä. Koska olemme malliin ympäristössä anyways, {$ title} on vähemmän ylimääräisiä kuin , Varsinkin kun alkaa katsella sitä pitkään sivua sisältöä, joten se oli melko selvää, että yksinkertaisempi syntaksin auttaa tekemään malleja helpompi lukea ja huoltaa.
Template aikaa jäsentää, joten sovelluksia paljon hitaammin.
Tämä voi olla totta joissain tapauksissa, mutta Smarty se ei ole hitaampaa kuin suorittamalla PHP script. Ensimmäisellä toteuttamisen mallin, Smarty muuntaa mallin tiedostot PHP-skriptit (kutsutaan mallin laatiminen.) Tämän jälkeen skripti on vain mukana. Kahvan sekä PHP kiihdytin ja sinulla todella on nopea templating ympäristössä mahdollisimman vähän yläpuolella.
Smarty on liian monimutkainen, miten se voi olla, että nopeasti?
Smarty ydin on melko laiha harkitsee, mitä se pystyy. Suurin osa sen toiminnoista piilee plugins. Liitännäinen arkkitehtuuri on suunniteltu siten, että vain tarvittavat lisäosat on ladattu kysyntää. Tämän kehyksen, lisäten jopa satoja uusia liitännäisiä ei vaikuta suorituskykyyn. Tämä tekee Smarty nopea, skaalautuva ja joustava.
Smarty myös välimuistia ominaisuuksia, jotka voivat dynaamisesti päivittää ja pitää osia sivun uncached osoitteessa sinun makuusi. Caching tallentaa lähtö koottu malleja, säästö tarvetta toteuttaa niitä jokaiseen vetoaminen.
Kaikki tämä puhe kiihdyttimiä, miten Smarty ajaa ilman sitä?
Oikeastaan ​​se toimii ihan hyvin ilman sitä. Smarty ei vaadi kiihdytintä, mutta mallin tiedostot itse aikoo hyödyntää jotakin, jotakin, joka on ainutlaatuinen Smarty (AFAIK). Jos sinulla ei ole kiihdytintä, mallin toteutus ei ole niin nopea, mutta ei hidasta millään tavalla, koska ne eivät ole jäsennetty! Sinulla on myös säilyttää kaikki muut edut ja ominaisuudet Smarty. Lisäksi, koska kiihdyttimiä ovat vapaasti käytettävissä ei ole oikeastaan ​​tekosyy aio käyttää yhtä. He auttavat suorituskyky kaikissa PHP sovellukset käyttävät Smarty vai ei.
Miten voi olla helpompi ylläpitää?
Joitakin asioita ei voida selittää, mutta vain kokenut. Hyöty erottaminen sovelluslogiikka esityksestä ei voi korostaa tarpeeksi. Smarty on myös joitakin mukavia virheiden käsittelyä ominaisuuksia ja sisäänrakennettu debuggaus konsoli niin näet mallin Hierarchy ja annetaan muuttujia yhdellä silmäyksellä. Lisäämällä mukautettuja ominaisuuksia Smarty on yhtä helppoa kuin pudottamalla ne plugin hakemistoon ja mainitsematta niitä malliin.
template tunnisteet eivät XML-pohjainen, Päätoimittaja ei pidä siitä.
{} Delimiters ovat vain oletus, ne on helppo erottaa keskuudessa HTML tageja. Jos et pidä niistä, muuttaa rajoittimien tai ehkä jotain enemmän XMLish kuin On myös paljon käyttäjän maksujen Dreamweaver ja vastaavia, antaa heille katsoa muokkaukset alueella.
Se Smarty pähkinänkuoressa, toivottavasti voit lisätä sen arsenaali työkaluja web-sovellusten rakentamiseen. Jos haluat todella oppia enemmän, lue ohjekirja ylhäältä alas, liittyä foorumit ja nähdä, mitä ihmiset keskustelevat.

Ominaisuudet

  • Caching: Smarty tarjoaa hienorakeinen välimuistiin ominaisuuksia välimuistiin kokonaan tai osittain sulatettu web-sivun, tai jättää osia uncached. Ohjelmoijat voivat ilmoittautua malliin toimii välimuistiin tai ei-cachable, ryhmä välimuistissa sivut loogisiin yksiköihin helpottaa hallintaa, jne.
  • Configuration Files: Smarty voi määrittää muuttujia vetää asetustiedostoja. Template suunnittelijat voivat ylläpitää yhteisiä arvoja useita malleja yhteen paikkaan ilman väliintuloa ohjelmoija, ja config muuttujia helposti jaetaan ohjelmointi ja esittelyä osia sovelluksen.
  • Suojaus: Mallit eivät sisällä PHP. Siksi mallin suunnittelija ei valloilleen täydellä voimalla PHP, vaan ainoastaan ​​osajoukon toiminnallisuus saatavilla niitä ohjelmoija (sovellus koodi.)
  • Helppo käyttää ja ylläpitää: Web sivujen suunnittelijat eivät käsittele PHP syntaksi, vaan helppo käyttää templating syntaksia ei ole paljon erilainen kuin tavallinen HTML. Mallit ovat hyvin lähellä edustus lopullinen tuotos, dramaattisesti lyhentää suunnittelun aikana.
  • Muuttuva Modifiers: sisältö sidottujen muuttujien voidaan helposti säätää näytön-aikaa määritteet, kuten näyttää kaikilla isoilla, html-pakeni, muotoilu päivämääriä, lyhennetty tekstilohkot, lisäämällä välejä, jne Again tämä toteutetaan ilman väliintuloa ohjelmoija.
  • Malline toiminnot: Monet toiminnot ovat käytettävissä mallin suunnittelija käsittelemään tehtäviä, kuten tuottaa HTML segmenttejä (dropdowns, pöydät, pop-ups, jne), näyttämällä sisältöä muilta mallit in-line, kiehkura yli ryhmät sisältöä , muotoilut tekstiä sähköpostin lähtö, pyöräily kuitenkin värejä, jne.
  • Suodattimet: ohjelmoija on täydellisen hallinnan mallin tuotoksen ja kootaan mallin sisältöä esisuodattimia, post-suodattimet ja output-suodattimia.
  • Resurssit: Malleja voidaan vetää useista eri lähteistä luomalla uusia resursseja käsittelijät, sitten käyttämällä niitä malleja.
  • Plugins: Lähes kaikessa Smarty ohjataan käyttämällä plugins. Ne ovat yleensä yhtä helppoa kuin pudottamalla plugin hakemistoon ja sitten mainitsematta niitä mallin tai käyttämällä niitä sovelluksen koodia. Monet käyttäjäkuntaa maksut ovat myös saatavilla. (Ks plugins osa foorumin ja wiki.)
  • Add-ons: Monet käyttäjäkuntaa osaltaan lisäosat ovat saatavilla, kuten sivutus, Form Validation, valikoista, Calander Date Pickers jne Näiden työkalujen avulla nopeuttaa kehitystä syklin, ei ole tarvetta uudelleen keksiä pyörää tai debug-koodin, joka on jo vakaa ja valmis käyttöön. (Ks lisäosat osa foorumin ja wiki.)
  • Debugging: Smarty mukana sisäänrakennettu virheenkorjaus konsolissa, joten mallin suunnittelija voi nähdä kaikki osoitettu muuttujien ja ohjelmoija voi tutkia mallin muodostamisaikaa.
  • Kääntäminen: Smarty kokoaa malleja osaksi PHP kulissien takana, poistaa run-time jäsentää malleja.
  • Suorituskyky: Smarty toimii erittäin hyvin, vaikka sen laaja ominaisuuksia. Useimmat Smarty kyvyistä valehdella liitännäiset ladattujen-demand. Smarty mukana lukuisia esitystyökalut, minimoida sovelluksen koodin ja tuloksena nopeampi, vähemmän virhealtista sovelluskehitys / käyttöönottoa. Smarty malleja saada koottu PHP tiedostot sisäisesti (kun), poistaa kallista mallitiedoston skannaa ja hyödyntämällä nopeus PHP op-koodin kiihdyttimiä.

Mikä on uusi tässä julkaisussa:

  • palaa Super maailmanlaajuista saatavuutta muutoksia, ja sen sijaan luottavat USE_SUPER_GLOBALS varten turvallisuus

Mikä on uusi versiossa 2.6.23:

  • kaistale backticks välillä {math} yhtälöt (mohrt)
  • heittää virheen, kun mallin on olemassa, mutta ei luettavissa (mohrt)

Mikä on uusi versiossa 2.6.22:

  • Tämä julkaisu korjaa ongelmia kohdataan Smarty 2.6 .21 release ja PCRE moottorin vika PHP 5.2. Menetelmä ketjutus on poistettu välttää bug. Menetelmä ketjutus uudelleen näkyvät Smarty 3.

Muu ohjelmistojen kehittäjä New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Kommentit Smarty

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!