mirror of
https://github.com/smarty-php/smarty.git
synced 2025-11-02 13:21:36 +01:00
104 lines
5.0 KiB
XML
104 lines
5.0 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision$ -->
|
|
<preface id="preface">
|
|
<title>Prólogo</title>
|
|
<para>
|
|
Esta es indudablemente una de las preguntas que mas se hacen en las listas
|
|
de correo de PHP: Como hacer mis scripts de PHP independientes del diseño?.
|
|
Mientras PHP se encarga de como "incrustar scripts en lenguaje HTML",
|
|
después de escribir los proyectos que mezclan PHP y HTML libremente,
|
|
esto trae como consecuencia la idea de separar la forma y el contenido,
|
|
muy buena idea[TM]. En adición, en muchas compañias la
|
|
interpretación de esquema es diseñador y programador por separado.
|
|
Por consiguiente, la busqueda trae como solución una plantilla(template).
|
|
</para>
|
|
<para>
|
|
Por ejemplo en nuestra compañia, el desarrollo de una aplicación es
|
|
como sigue: Después de tener la documentación necesaria, el
|
|
diseñador de web diseña el prototipo de la interfaz y la entrega al
|
|
programador. El programador implementa las reglas de negocio en PHP y usa el
|
|
prototipo para crear el "esqueleto" de la plantilla.
|
|
El proyeto esta en manos de la persona responsable del HTML designer/web page
|
|
que produzca la plantilla para su gloria completa. El proyecto debe ir y regresar
|
|
entre programación/HTML varias veces. De esa manera, es importante para
|
|
tener un buen suporte de templates porque los programadores no quieren hacer nada
|
|
con HTML ni quieren diseño HTML al rededor del codigo PHP.
|
|
Los diseñadores precisan de soporte para archivos de configuración, bloques
|
|
dinámicos y otras interfaces usadas, mas ellos no quieren ocuparse con las
|
|
compejidades del lenguaje de programación PHP.
|
|
</para>
|
|
<para>
|
|
Buscando, actualmente existen muchas soluciones de templates disponibles para
|
|
PHP, la mayor parte de ellos les provee de una forma rudimentaria de
|
|
sustitución de variables dentro del template y hace una forma limitada
|
|
de la funcionalidad dinámica del bloque.
|
|
Pero nuestras necesidades requieren mas que eso.
|
|
Porque no queremos programadores que no quieran tener trato con HTML del todo,
|
|
pero esto puede ser casi inevitable.
|
|
Por ejemplo, si un diseñador quiere alternar colores de fondo sobre bloques
|
|
dinámicos, esto tuvo que trabajarse con el programador anticipadamente.
|
|
Nosotros necesitamos también que los diseñadores esten capacitados para
|
|
usar archivos de configuración, y colocar variables de ellos dentro de
|
|
los templates. La lista continua.
|
|
</para>
|
|
<para>
|
|
Nosotros empezamos escribiendo por fuera una especulación para un
|
|
motor de plantillas(templates) atrasado de 1999.
|
|
Después de terminar la especulación, comenzamos a trabajar
|
|
un motor de plantillas escrito en C que esperanzadoramente fue aceptado
|
|
para ser incorporado con PHP.
|
|
No solamente nos encontramos con algunas complicadas barreras tecnicas,
|
|
si no también hubo acalorados debates sobre lo que exactamente
|
|
debia de hacer o no un motor de plantillas.
|
|
De esta experiencia, decidimos que un motor de platillas devería
|
|
ser escrito en PHP como una clase, para que cualquiera lo use de la misma
|
|
forma como ellos ven.
|
|
Así nosotros escribimos un motor que es <productname>SmartTemplate
|
|
</productname> nunca volvio a existir(nota: esa clase nunca fue
|
|
enviada al público). Esta era una clase que ralizaba casi todo lo que nosotros
|
|
necesitabamos: sustitución de variables regulares, soporte incluso
|
|
de otras plantillas, integración con archivos de configuración,
|
|
incrustación de código PHP, funcionalidades 'if' limitada y muchos
|
|
mas bloques dinámicos robustos que podrían ser anidados muchas veces.
|
|
Todo esto con expresiones regulares y el código producido seria mejor, como
|
|
diriamos nosotros, impenetrable.
|
|
Eso era también notoriamente lento en grandes aplicaciones por todas
|
|
las interpretaciones y expresiones regulares trabajando en cada
|
|
requisición.
|
|
El mayor problema del punto de vista de un programador era todo el trabajo
|
|
necesario en el procesamiento del scripts PHP y procesamiento de bloques
|
|
dinámicos de la plantilla. Como hacemos eso facilmente?
|
|
</para>
|
|
<para>
|
|
Entonces se origino la visión de que finalmente se convirtiera en
|
|
Smarty. Nosotros sabemos que rápido es el código PHP sin las cabeceras
|
|
y la interpretación de plantillas(templates).
|
|
También sabemos que meticuloso y arrogante es el lenguaje PHP su poder
|
|
debe ser aceptable para un diseñador, y este podría ser enmascarado con
|
|
una simples sintaxis de plantillas(templates).
|
|
Entonces que pasara si nosotros convinamos las dos fuerzas?
|
|
De esta manera, nacio Smarty...
|
|
</para>
|
|
</preface>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../../../../manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|