Smarty

Screenshot der Software:
Smarty
Softwarebeschreibung:
Version: 3.1.5
Upload-Datum: 11 May 15
Lizenz: Frei
Popularität: 1

Rating: nan/5 (Total Votes: 0)

Smarty ist nicht wirklich ein "Template Engine", wäre es genauer als beschrieben werden "Template / Presentation Framework". Das heißt, es bietet dem Programmierer und Designer-Vorlage mit einer Fülle von Werkzeugen, um Aufgaben gemeinsam mit der Präsentationsschicht einer Anwendung behandelt zu automatisieren. Ich betone das Wort Rahmen weil Smarty ist kein einfacher Tag-Template-Engine ersetzt. Obwohl es für einen solchen einfachen Zweck verwendet werden, ist der Fokus auf schnelle und schmerzlose Entwicklung und Implementierung der Anwendung, während High-Performance, Skalierbarkeit, Sicherheit und das künftige Wachstum.
So ist Smarty richtige für Sie? Was es darum geht, ist mit dem richtigen Werkzeug für den Job. Wenn Sie einfach Variablenersetzung wollen, möchten Sie vielleicht an etwas einfacher aussehen oder sogar Ihre eigene Rolle. Wenn Sie ein robustes Template Framework mit zahlreichen Tools, die Ihnen helfen, wie Ihre Anwendung entwickelt sich in die Zukunft wollen, ist Smarty wahrscheinlich eine gute Wahl.
Warum verwenden?
Eines der primären Smartys Designziele ist es, die Trennung der Anwendungscode von der Präsentation zu erleichtern. Typischerweise enthält das Anwendungscode die Geschäftslogik der Anwendung, geschrieben und in PHP-Code erhalten. Dieser Code wird von Programmierern gehalten. Die Präsentation ist die Art und Weise Ihre Inhalte an den Endverbraucher, die geschrieben wird und in Vorlagendateien gepflegt präsentiert. Die Vorlagen werden von Template-Designer erhalten.
Am einfachsten Funktion, der Anwendungscode speichert Inhalte, weist ihn der Template-Engine und zeigt sie an. Der Inhalt könnte wie die Überschrift, Untertitel, Autor und Körper eines Zeitungsartikels sein. Der Anwendungscode hat keine Sorge, wie diese Inhalte werden in der Vorlage vorgelegt werden. Das Template Designer ist für die Präsentation verantwortlich. Sie bearbeiten die Template-Dateien, Hinzufügen von Markup und es bis zum Abschluss zu bringen. Dies umfasst in der Regel Dinge wie HTML-Tags, Cascading Stylesheets und andere Werkzeuge von der Template-Engine zur Verfügung gestellt.
Dieses Paradigma dient mehreren Zwecken:
) Designer können Anwendungscode nicht brechen. Sie können Durcheinander mit den Vorlagen alles, was sie wollen, aber der Code intakt bleibt. Der Code wird fester, sicherer und einfacher zu verwalten sein.
) Fehler in den Vorlagen werden auf die Smartys Fehlerbehandlungsroutinen beschränkt, so dass sie so einfach und intuitiv wie möglich für den Designer.
) Mit Präsentation auf einer eigenen Ebene können Designer modifizieren oder komplett neu zu gestalten es von Grund auf neu, alles ohne Eingriff durch den Programmierer.
) Programmierer nicht mit Vorlagen durcheinander. Sie können über die Aufrechterhaltung des Anwendungscodes, verändert die Art, Inhalt erfasst wird, neue Geschäftsregeln usw., ohne die Präsentationsschicht zu stören gehen.
) Templates sind eine nahe Darstellung dessen, was die endgültige Ausgabe sein wird, die eine intuitive Ansatz ist. Designer ist es egal, wie der Inhalt muss der Vorlage. Wenn Sie irrelevante Daten in der Vorlage, wie eine SQL-Anweisung haben, eröffnet dies die Bruchgefahr Anwendungscode durch versehentliches Löschen oder Veränderung durch den Designer.
) Sie sind der Server nicht öffnen, um die Ausführung von beliebigen PHP-Code. Smarty bietet zahlreiche Sicherheitsfunktionen in so Designer gebaut werden nicht verletzen Sicherheit, ob absichtlich oder zufällig. Sie können nur tun, was sie in den Vorlagen beschränkt sind.
Obwohl Anwendungscode wird von der Präsentation getrennt sind, bedeutet dies nicht zwangsläufig, dass Logik wird getrennt. Der Anwendungscode hat offensichtlich Logik, aber die Vorlagen kann eine Logik haben, basierend auf der Bedingung, dass es nur für Präsentation. Zum Beispiel, wenn der Designer will Tabellenzeile Farben oder Großbuchstaben zugewiesen einige Inhalte, können sie abwechseln. Dies ist Präsentationslogik, was der Programmierer nicht mit betroffen sein. Wie oft haben Sie hatte einige Präsentation in einer einzigen Spalte angezeigt und dann können Sie es wollten in zwei oder drei Spalten, so dass die Anwendung Code muss der Anpassung an diese unterzubringen? Ein besserer Ansatz ist es, den Content in einem einzigen Array zuweisen und lassen Sie die Vorlage übernehmen die Präsentation. Dies wird Ihre Anwendung zu vereinfachen und halten Sie Ihre Vorlagen flexibel. Smarty liefert die Werkzeuge, um diese Art von Situation zu handhaben.
Dies bedeutet nicht, dass Smarty verhindert, dass Sie setzen die Anwendungslogik in der Vorlage, müssen Sie ein wenig Selbstdisziplin haben. Hier ist ein Beispiel der Einbettung von Business-Logik in der Vorlage (das ist richtig, zu vermeiden, dies zu tun, wenn überhaupt möglich):
{If $ smarty.session.user und ($ user_type eq "Editor" oder $ user_type eq "admin")}
bearbeiten
{/ If}
Die Logik prüft, ob der Benutzer angemeldet ist und sie entweder ein Redakteur oder Administrator, dann dürfen sie bearbeiten, damit das Kontrollkästchen bearbeiten erscheint. Das heißt, die Logik in den Anwendungscode, gehört. Die Vorlage ist es egal, was die Anmeldeinformationen dieser Benutzer, es muss nur wissen, ob das Bearbeitungsfeld angezeigt wird oder nicht! So schauen wir uns eine geeignetere Ansatz:
{If $ edit_flag}
bearbeiten
{/ If}
Es ist Aufgabe der Anwendungsprogrammierer die $ edit_flag, eine einfache und leicht zu verstehende Variable in der Vorlage zuzuordnen. Auf diese Weise wird die Schablone nicht mehr unter Berufung auf die zugrunde liegende Datenstruktur. Wenn das Format des Sitzungsdatenstruktur überhaupt ändert, muss nichts in der Vorlage angepasst werden.
Nun sehen wir uns ein paar Dinge, die Sie mit Smarty tun können. Eine Sache, die sie tun können, ist kundenspezifische Funktionen. Dies sind Tags in der Vorlage, die eine bestimmte Aufgabe auszuführen. Beispiel:
{Html_image file = "masthead.gif"}
Hier haben wir eine Funktion namens "html_image". Diese Funktion übernimmt die in der "Datei" Attribut gegebenen Bild und macht die ganze notwendige Arbeit zu kommen mit dem folgenden HTML-Code:

Die Bildfunktion hat die lästige Pflicht, herauszufinden, die Höhe und Breite und die Versorgung der Standardrahmen Flagge. Natürlich könnte man einfach die statische HTML-Tag in der Vorlage statt, aber das zeigt, wie eine benutzerdefinierte Funktion kann genutzt werden, um eine sehr häufige Aufgabe zu vereinfachen. Der Designer kann auf Design und weniger auf die technischen Sachen konzentrieren. Darüber hinaus, wenn der Designer beschließt, in einer anderen Bildgröße Topp fallen, die Vorlage nicht richtig eingestellt.
html_image ist eine Funktion, mit Smarty kommt. Sie können auch Ihre eigenen benutzerdefinierten Funktionen zu machen. Hier ist ein weiteres Beispiel dafür, was man könnte so aussehen:
{Html_link type = "Artikel" id = "abc123" text = "Fire nimmt Hotel"}
Dies geschieht mit Hilfe einer benutzerdefinierten Funktion namens "html_link". Es kommt mit dem folgenden HTML-Code:
Brand nimmt Hotel
Was bedeutet dies? Zum einen hat der Designer nicht notwendig, um mit dem Format eines URL auf einen Artikel befassen. Mit hartcodierte URLs, was passiert, wenn eines Tages der Programmierer entscheidet, die Dinge bereinigen, und ändert die URL-Syntax aus, um /display_article.php?id=abc123 / Kunst / abc123? Wir müssten jede Vorlage mit einem Artikel URL bearbeiten. Dies ist nur ein weiteres Beispiel dafür, wie eine Template-Funktion tätigen Vorlagen leichter zu pflegen.
Jetzt für ein wenig auf Programmierer und Vorlagen. Zuvor wurde erwähnt, dass der Programmierer keine Pflege für das, was die Vorlagen zu tun mit dem Inhalt. In begrifflicher Hinsicht das wahr ist, aber in der realen Welt, die Sie nicht gehen, um den Vorlagendesigner erwarten, alle Vorlagen aus dem Nichts aufbauen zu müssen. Immerhin funktioniert die Geschäftslogik zu bestimmen, welche Inhalte auf die Vorlagen zugeordnet. So, der Programmierer in der Regel Setup-Skelett-Vorlagen für den Designer, um mit zu beginnen. Dieser enthält in der Regel die rohen Elemente wie etwa Variablen und Abschnitt Schleifen, und vielleicht ein paar einfache Markup-Tags, damit sie nicht mit dem Inhalt in ein großes Durcheinander zu starten. Hier ist ein Beispiel von einem Skelett-Vorlage, die durch eine Liste von Artikeln Schlaufen und zeigt sie in einer Tabelle:


{Section name = art loop = $ article}


{/ Abschnitt}
{$ Artikel [art] .headline}
{$ Artikel [art] .Date}
{$ Artikel [art] .author}

Die Ausgabe kann in etwa so aussehen:







wie der Westen gewonnen wurde
2. Dezember 1999
John Wayne
Team verliert, beendet Coach
2. Februar 2002
John Smith
Gourmet Cooking
23. Januar 1954
Betty Crocker

Jetzt einige häufig gestellte Fragen:
Warum nutzen Sie Vorlagen überhaupt? Was ist so schwer zu schreiben Anstelle von {$ title}?
Die Dinge einfacher zu lesen war nicht ein Design-Ziel, sondern eher ein Nebeneffekt. Verwenden von Vorlagen hat enorme Vorteile, von denen viele wurden oben erläutert. Da wir uns in einem Template-Umgebung auch immer, ist {$ title} weniger Fremd als , Vor allem, wenn Sie beginnen, sie in langen Seiten Inhalt, so war es ziemlich offensichtlich, dass eine einfachere Syntax trägt dazu bei, Vorlagen einfacher zu lesen und zu pflegen.
Template nehmen Sie sich Zeit, um zu analysieren, so dass Anwendungen langsamer.
Das mag in einigen Fällen sein, aber mit Smarty ist nicht langsamer als der Ausführung einer PHP-Skript. Bei der ersten Ausführung einer Vorlage wandelt Smarty die Template-Dateien in PHP-Skripten (genannt Template Kompilieren.) Danach wird das PHP-Skript nur enthalten. Verbinden Sie dieses mit einem PHP-Beschleuniger und Sie wirklich einen schnellen Template-Umgebung mit minimalem Overhead.
Smarty zu kompliziert ist, wie kann es schnell sein, dass?
Smarty Kern ist ziemlich mager zu überlegen, was sie in der Lage ist. Die meisten seiner Funktionalität liegt in Plugins. Das Plugin-Architektur ist so ausgelegt, dass nur die erforderlichen Plugins sind bei Bedarf geladen. Mit diesem Rahmen wird das Hinzufügen sogar Hunderte von neuen Plugins nicht auf die Leistung auswirken. Dies macht Smarty schnell, skalierbar und flexibel.
Smarty hat auch Caching-Funktionen, die sich dynamisch aktualisieren und zu halten Teile der Seite in einer Vielzahl von Designs uncached können. Caching speichert die Ausgabe der kompilierten Templates, spart die Notwendigkeit, sie bei jedem Aufruf auszuführen.
All dieses Gerede über Beschleuniger, wie funktioniert Smarty ohne einen laufen?
Eigentlich läuft es ganz gut ohne. Smarty erfordert nicht einen Beschleuniger, aber die Vorlagendateien selbst werden die Vorteile eines übernehmen, was die einzigartig für Smarty (AFAIK) ist. Wenn Sie nicht über einen Beschleuniger haben, ist Vorlage Ausführung nicht so schnell, aber mit allen Mitteln nicht langsam, da sie nicht analysiert werden! Sie behalten auch alle anderen Vorteile und Funktionen von Smarty. Da Beschleuniger sind frei verfügbar es gibt nicht wirklich eine Ausrede, um nicht mit einem werden. Sie werden die Leistung bei allen PHP-Anwendungen zu helfen, mit Smarty oder nicht.
Wie kann es einfacher sein, um aufrecht zu erhalten?
Manche Dinge kann man nicht erklären, sondern nur erlebt. Der Vorteil der Trennung von der Anwendungslogik von der Darstellung kann nicht genug betont werden. Smarty hat auch einige nette Fehlerbehandlungsfunktionen und eine integrierte Debugging-Konsole, so dass Sie die Vorlage Hierarchie sehen und zugewiesenen Variablen auf einen Blick. Hinzufügen von benutzerdefinierten Funktionen, um Smarty ist so einfach wie Drop im Plugin-Verzeichnis und erwähnen sie in der Vorlage.
Die Template-Tags werden nicht auf der Basis von XML, Mein Editor mag es nicht.
Die Trennzeichen {} sind nur Standardmäßig sie leicht zu unter HTML-Tags erkennen sind. Wenn Sie nicht mögen, ändern Sie die Trennzeichen an oder vielleicht etwas mehr XMLish wie Es gibt auch viele Benutzerbeiträge von Dreamweaver und dergleichen, geben ihnen einen Blick in den Bereich Beiträge.
Das ist Smarty auf den Punkt gebracht, hoffentlich können Sie es zu Ihrem Arsenal von Tools für die Web-Anwendung Gebäude hinzufügen. Um wirklich zu erfahren Sie mehr, lesen Sie das Handbuch von oben nach unten, kommen Sie mit den Foren und sehen, was die Leute diskutieren

Eigenschaften .

  • Caching: Smarty bietet feinkörnige Caching-Funktionen für die Zwischenspeicherung alle oder Teile eines gerenderten Webseite oder Teile uncached verlassen. Programmierer können Template-Funktionen wie Cache gespeichert werden oder nicht cachable, Gruppe zwischengespeicherten Seiten in logische Einheiten für ein einfacheres Management, usw. registrieren.
  • Konfigurationsdateien: Smarty können Variablen aus Konfigurationsdateien gezogen zuordnen. Template-Designer können Werte, die mehreren Vorlagen an einem Ort ohne Eingriff des Programmierers zu halten und config-Variablen können einfach zwischen der Programmierung und Darstellung Teile der Anwendung gemeinsam genutzt werden.
  • Sicherheit: Templates müssen PHP-Code enthalten. Daher wird ein Template-Designer nicht mit der vollen Leistung von PHP entfesselt, sondern nur die Teilmenge der Funktionalität gemacht vom Programmierer zur Verfügung, um sie (Anwendungscode.)
  • Einfach zu bedienen und zu warten: Webseiten-Designer nicht mit PHP-Code-Syntax zu tun haben, sondern ein einfach zu bedienendes Template-Syntax nicht viel anders als einfachem HTML. Die Vorlagen sind eine sehr nahe Darstellung der endgültigen Ausgabe, dramatisch Verkürzung der Designzyklus.
  • Variablen-Modifikatoren: Der Inhalt der zugewiesenen Variablen leicht an Anzeigezeit mit Modifikatoren, wie die Anzeige in allen Großbuchstaben eingestellt werden, html-entgangen, Formatierungsdaten, Abschneiden Textblöcke, Hinzufügen Räume zwischen Zeichen usw. Wieder wird dies ohne Intervention der Programmierer durchgeführt.
  • Template-Funktionen: Viele Funktionen stehen zur Verfügung, um das Template-Designer, um Aufgaben wie das Erzeugen von HTML-Codesegmente (Dropdown-Listen, Tabellen, Pop-ups, etc.), die Anzeige von Inhalten aus anderen Vorlagen in-line, Schleifen über Feldern von Inhalten umgehen , Formatieren von Text für die E-Mail-Ausgang, mit Radfahren durch Farben, etc.
  • Filters:. Der Programmierer hat die vollständige Kontrolle der Vorlage ausgegeben und kompilierte Template Inhalte mit Vorfilter, post-Filter und Ausgabe-Filter
  • Ressourcen:. Templates können aus einer beliebigen Anzahl von Quellen durch die Schaffung neuer Ressourcen-Handler, dann mit ihnen in den Vorlagen gezogen werden
  • Plugins: Fast jeder Aspekt der Smarty wird durch die Verwendung von Plugins gesteuert. Sie sind im Allgemeinen so einfach wie Ablegen in das Plugin-Verzeichnis und dann erwähnen sie in der Vorlage oder mit ihnen im Anwendungscode. Viele Benutzer-Community Beiträge sind ebenfalls erhältlich. (Siehe die Plugins-Bereich des Forums und Wiki.)
  • Add-ons: Viele Benutzer-Community beigetragen Add-ons sind wie Nummerierung, Formularüberprüfung, Drop Down Menüs, Calander Datumsauswahl usw. Diese Werkzeuge helfen, den Entwicklungszyklus verfügbar sind, gibt es keine Notwendigkeit, Wieder erfinden das Rad oder Debug-Code, die bereits stabil und einsatzbereit ist. (Siehe das Add-ons-Bereich des Forums und Wiki.)
  • Debugging:. Smarty wird mit einer eingebauten Debugging Konsole so der Designer können alle zugewiesenen Variablen finden und der Programmierer Vorlage Rendering-Geschwindigkeiten zu untersuchen
  • Kompilieren:. Smarty-Templates erstellt in PHP-Code hinter den Kulissen, wodurch Laufzeit Parsen von Vorlagen
  • Performance: Smarty extrem gut, trotz seiner großen Funktionsumfang. Die meisten von Smarty Fähigkeiten liegen in Plugins, die On-Demand-geladen werden. Smarty kommt mit zahlreichen Präsentationswerkzeuge, die Minimierung der Anwendungscode und was zu schnelleren, weniger fehleranfällig Anwendungsentwicklung / deployment. Smarty-Templates erhalten, um PHP kompilierten Dateien intern (einmalig), kostspielige Vorlage-Datei-Scans und die Nutzung der Geschwindigkeit von PHP Op-Code-Beschleuniger.

Was ist neu in dieser Pressemitteilung:

  • zurückkehren Super globalen Zugriff ändert, und sich stattdessen auf USE_SUPER_GLOBALS für vertrauen Sicherheit

Was ist neu in Version 2.6.23:

  • Streifen Backticks von {math} Gleichungen (mohrt)
  • Wurffehler bei Vorlage vorhanden ist, aber nicht lesbar (mohrt)

Was ist neu in Version 2.6.22:

  • Diese Version behebt ein Problem mit dem Smarty 2.6 angetroffen .21 Release und PCRE Motor Fehler in PHP 5.2. Methoden Verkettung wurde entfernt, um den Fehler zu vermeiden. Methoden Verkettung erscheint wieder in Smarty 3.

Andere Software von Entwickler New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Kommentare zu Smarty

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!