Stavo leggendo da qualche parte che PHP è un linguaggio di template. Cos'è esattamente una lingua di template? Cosa rende PHP uno? Quali sono le altre lingue per i modelli?Che cos'è un linguaggio di template?
risposta
La premessa dietro un linguaggio modello è che la lingua è "incorporata" all'interno di un altro documento master. In particolare, sul tuo documento medio, la dimensione totale del documento è principalmente l'origine del documento rispetto alla lingua del modello.
Consideriamo due esempi inventati:
print "This is a simple document. It has three lines."
print "On the second line is my name: " + firstName
print "This is the third line."
vs
This is a simple document. It has three lines.
On the second line is my name: $firstName
This is the third line.
Si può vedere nel primo esempio, la lingua avvolge il testo del documento. Nel secondo esempio, il testo del documento è il più diffuso, con solo un po 'di codice.
Alcuni linguaggi di modello sono linguaggi generici completi, come PHP, ASP.NET e JSP di Java. Altri sono più limitati progettati specificamente per i template, come Velocity e FreeMarker (entrambe le utilità per Java).
Molti programmi di elaborazione di testi, come Microsoft Word, hanno le proprie funzionalità per i modelli, comunemente denominate "Stampa unione".
PHP non è necessariamente un linguaggio di template, ma può passare quel test a causa del modo in cui viene interpretato.
Quando il file PHP viene letto, viene visualizzato solo il codice all'interno di tag di blocco PHP (<?php
e ?>
), il resto viene passato all'output. Quindi un file .html potrebbe essere elaborato dall'interprete di PHP, e non succederebbe nulla, l'HTML sarebbe emesso.
Se alcune delle aree del file HTML contenevano tag e codice PHP, sarebbe interpretato e probabilmente produrrebbe alcuni dati in tali posizioni. Questo potrebbe essere considerato un modello. Di solito è l'idea di avere un livello di output e quindi avere contenuti dinamici che lo accompagnano. È possibile avere un modello di pagina prodotto e, in base a una variabile di input, inserire nel modello solo singoli dettagli di prodotto/immagini/ecc.
Esistono motori di template effettivi per PHP (Smarty per uno .. http://www.smarty.net/) che è possibile dare un'occhiata.
Non sono mai stato un loro fan, ma molte persone hanno successo con esso.
Prova questo http://en.wikipedia.org/wiki/Template_engine_(web).
Un linguaggio di templateing è fondamentalmente un linguaggio che consente di definire i segnaposto che in seguito dovranno essere sostituiti ai fini dell'attuazione dei progetti. Ovviamente i moderni linguaggi template non solo supportano i segnaposto, ma anche i loop e le condizioni che sono spesso necessarie per progettare una pagina web. Alcuni supportano anche tecniche più avanzate ma comunque utili come l'ereditarietà di modelli, macro e sandboxing.
Informazioni su PHP: poiché il PHP stesso potrebbe essere interpolato in HTML, può essere utilizzato come linguaggio modello. D'altra parte, PHP è piuttosto dettagliato, specialmente se i tag brevi non sono abilitati.
Un motore di template veloce e ricco di funzionalità è Twig. Lo raccomanderei a Smarty. Offre più funzionalità (in particolare l'ereditarietà dei modelli) ed è più veloce.
si potrebbe leggere su Smarty 3.
http://www.smarty.net/v3_overview
ad es. ha ora l'ereditarietà dei modelli
- 1. Quale linguaggio template utilizza Tumblr?
- 2. Che cos'è un linguaggio collante?
- 3. Che cos'è un motore di template?
- 4. C'è qualche linguaggio là fuori che utilizza il codice di template?
- 5. autoreferenziale Template in argomento di un template
- 6. Fogli di calcolo che utilizzano un linguaggio di programmazione funzionale
- 7. Che tipo di linguaggio è CSS?
- 8. Quale caratteristica del linguaggio C++ consente alle classi template di riferirsi a se stesse senza argomenti del template?
- 9. Che cos'è un buon motore di template HTML per C++?
- 10. Classe template che implementa operatori di confronto
- 11. Funzione template C++ che accetta la classe template come parametro
- 12. Oltre a un linguaggio dichiarativo, SQL è un linguaggio funzionale?
- 13. Specializzata un membro template di una classe template
- 14. Che cosa significa esattamente scrivere un'API per un linguaggio OO?
- 15. È corretto dire che JavaScript è un linguaggio "single-thread"?
- 16. Utilizzo di Express senza un motore di template
- 17. Che cosa significa "linguaggio dei sistemi"?
- 18. Creazione di un linguaggio di scripting
- 19. Perl ballerino e Template Toolkit: Compreso template all'interno di template
- 20. Che cosa significa "Costruire il linguaggio"?
- 21. Che cos'è _start globale nel linguaggio assembly?
- 22. variadic alias template come argomenti di template
- 23. Linguaggio di sistema di alto livello che compila in c?
- 24. È necessario un linguaggio modello migliore
- 25. Template un argomento shared_ptr
- 26. Specializzazione di un membro di una classe template per un tipo di parametro classe template
- 27. C++ argomento template che è già "conosciuto"
- 28. Un parametro di un modello di template template può causare ombreggiamento?
- 29. Creare un linguaggio di programmazione con C#
- 30. Analisi del linguaggio naturale di un appuntamento?
Il termine definisce fondamentalmente l'ambito di utilizzo. Un linguaggio dei modelli ha proprietà a metà strada tra un linguaggio di programmazione (completo) e un linguaggio macro (di espansione). – mario