Files
smarty/docs/es/preface.xml

104 lines
5.0 KiB
XML
Raw Normal View History

2004-10-07 18:50:52 +00:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<preface id="preface">
<title>Pr<EFBFBD>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<73>o?.
Mientras PHP se encarga de como "incrustar scripts en lenguaje HTML",
despu<70>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<63>n, en muchas compa<70>ias la
interpretaci<63>n de esquema es dise<73>ador y programador por separado.
Por consiguiente, la busqueda trae como soluci<63>n una plantilla(template).
</para>
<para>
Por ejemplo en nuestra compa<70>ia, el desarrollo de una aplicaci<63>n es
como sigue: Despu<70>s de tener la documentaci<63>n necesaria, el
dise<73>ador de web dise<73>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<63>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<73>o HTML al rededor del codigo PHP.
Los dise<73>adores precisan de soporte para archivos de configuraci<63>n, bloques
din<69>micos y otras interfaces usadas, mas ellos no quieren ocuparse con las
compejidades del lenguaje de programaci<63>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<63>n de variables dentro del template y hace una forma limitada
de la funcionalidad din<69>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<73>ador quiere alternar colores de fondo sobre bloques
din<69>micos, esto tuvo que trabajarse con el programador anticipadamente.
Nosotros necesitamos tambi<62>n que los dise<73>adores esten capacitados para
usar archivos de configuraci<63>n, y colocar variables de ellos dentro de
los templates. La lista continua.
</para>
<para>
Nosotros empezamos escribiendo por fuera una especulaci<63>n para un
motor de plantillas(templates) atrasado de 1999.
Despu<70>s de terminar la especulaci<63>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<62>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<65>a
ser escrito en PHP como una clase, para que cualquiera lo use de la misma
forma como ellos ven.
As<41> 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<63>n de variables regulares, soporte incluso
de otras plantillas, integraci<63>n con archivos de configuraci<63>n,
incrustaci<63>n de c<>digo PHP, funcionalidades 'if' limitada y muchos
mas bloques din<69>micos robustos que podr<64>an ser anidados muchas veces.
Todo esto con expresiones regulares y el c<>digo producido seria mejor, como
diriamos nosotros, impenetrable.
Eso era tambi<62>n notoriamente lento en grandes aplicaciones por todas
las interpretaciones y expresiones regulares trabajando en cada
requisici<63>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<69>micos de la plantilla. Como hacemos eso facilmente?
</para>
<para>
Entonces se origino la visi<73>n de que finalmente se convirtiera en
Smarty. Nosotros sabemos que r<>pido es el c<>digo PHP sin las cabeceras
y la interpretaci<63>n de plantillas(templates).
Tambi<62>n sabemos que meticuloso y arrogante es el lenguaje PHP su poder
debe ser aceptable para un dise<73>ador, y este podr<64>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
-->