-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<PAGE title="BIFE - Build It FastEr">
- <SECTION title="Bienvenido a BIFE!" test="1">
- <BIFE/> es un <EM>framework</EM> basado en la idea de
- <LINK url="http://www.lunix.com.ar/Bif.php" desc="Build It Fast">Bif</LINK>
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<page title="BIFE - Build It FastEr">
+ <section title="Bienvenido a BIFE!">
+ <bife /> es un <em>framework</em> basado en la idea de
+ <link url="http://www.lunix.com.ar/Bif.php" desc="Build It Fast">Bif</link>
de separar la lógica, el contenidos y el diseño de una aplicación
- <LINK url="http://www.php.net/" desc="PHP Hypertext Preprocesor">PHP</LINK>
+ <link url="http://www.php.net/" desc="PHP Hypertext Preprocesor">PHP</link>
(típicamente una página web) pero con fuerte énfasis en la velocidad y la
- simplicidad.<BR/>
- <BIFE/> también está fuertemente influido por los
- <LINK url="http://www.lugmen.org.ar/" desc="hooks">hooks</LINK>
+ simplicidad.<br />
+ <bife /> también está fuertemente influido por los
+ <link url="http://www.lugmen.org.ar/" desc="hooks">hooks</link>
por lo que no deben extrañarse al encontrar similitudes, como la
simplicidad, velocidad, atomicidad y el mismo conceptos de separación
- de lógica, contenidos y diseño.<BR/>
+ de lógica, contenidos y diseño.<br />
La idea es simple, el diseño se genera con <EM>templates</EM> (modulares
tipo hooks), el contenido a través de XML (simple) y de la lógica se
encarga el PHP (transformar el XML según los templates con un poco de
magia en el medio).
- </SECTION>
- <SECTION title="Objetivos">
+ </section>
+ <section title="Objetivos">
Los objetivos de BIFE son estos (en orden de importancia):
- <UL>
- <LI>BIFE debe ser rápido.</LI>
- <LI>BIFE debe ser simple.</LI>
- <LI>BIFE debe ser modular.</LI>
- <LI>BIFE debe ser fácil para el creador de contenidos (XML).</LI>
- </UL>
- </SECTION>
- <SECTION title="El corazón de BIFE">
- <BIFE/> es modular. <BIFE/> en sí (el corazón) consiste en 4 clases,
+ <ul>
+ <li>BIFE debe ser rápido.</li>
+ <li>BIFE debe ser simple.</li>
+ <li>BIFE debe ser modular.</li>
+ <li>BIFE debe ser fácil para el creador de contenidos (XML).</li>
+ </ul>
+ </section>
+ <section title="El corazón de BIFE">
+ <bife/> es modular. <bife /> en sí (el corazón) consiste en 4 clases,
3 de ellas abstractas. Cada tag XML es mapeado por el
- <CLASS name="Parser"/> (única clase no abstracta) a un
- objeto <CLASS name="Widget"/> (cuya clase coincide con el tag). A su
- vez, ese <CLASS name="Widget"/> puede ser un
- <CLASS name="Container"/> (en cuyo caso además de tener atributos,
+ <class name="Parser" /> (única clase no abstracta) a un
+ objeto <class name="Widget" /> (cuya clase coincide con el tag). A su
+ vez, ese <class name="Widget" /> puede ser un
+ <class name="Container" /> (en cuyo caso además de tener atributos,
tiene un contenido). De no encontrar una clase para ese tag XML, el
- <CLASS name="Parser"/> puede usar un objeto <CLASS name="Fallback"/>
+ <class name="Parser" /> puede usar un objeto <class name="Fallback" />
que se encargue de resolver el problema.
- <BIFE/> ni siquiera depende de un sistema de templates particular, la
+ <bife /> ni siquiera depende de un sistema de templates particular, la
única limitación consiste en usar el mismo objeto template para
- dibujar todos los <CLASS name="Widget"/>.<BR/>
+ dibujar todos los <CLASS name="Widget" />.<br />
Recordamos que todas estas clases (exceptuando a
- <CLASS name="Parser"/>) son abstractas. Es por esto que para usar
- <BIFE/> es necesario implementarlas antes.
- </SECTION>
- <SECTION title="Implementación simple de BIFE">
- <BIFE/>, el corazón, es un framework abstracto y sin una
+ <class name="Parser" />) son abstractas. Es por esto que para usar
+ <bife /> es necesario implementarlas antes.
+ </section>
+ <section title="Implementación simple de BIFE">
+ <bife />, el corazón, es un framework abstracto y sin una
implementación no sirve de mucho. A modo de ejemplo, y para darle
funcionalidad básica (web) se implementó el módulo
- <MODULE name="Base"/>, que consiste sólo de 2 clases:
- <CLASS name="Link"/> y <CLASS name="Translate"/>.
- <CLASS name="Link"/> es un <CLASS name="Container"/> (a su vez un
- <CLASS name="Widget"/>) que se encarga de generar hipervínculos a
+ <module name="Base" />, que consiste sólo de 2 clases:
+ <class name="Link" /> y <class name="Translate"/>.
+ <class name="Link" /> es un <class name="Container"/> (a su vez un
+ <class name="Widget" />) que se encarga de generar hipervínculos a
otras páginas y provee métodos útiles para usar en otros widgets
- que a su vez necesiten generar links.<BR/>
- <CLASS name="Translate"/> es un <CLASS name="Fallback"/> que
+ que a su vez necesiten generar links.<br />
+ <class name="Translate" /> es un <class name="Fallback"/> que
traduce por medio de templates los tags XML. De no encontrar un
template para ese tag, simplemente copia el tag entero (tag, atributos
y contenido) a la salida. Esto es suficiente para hacer un sitio web
- simple, de hecho esta página está hecha con este módulo.<BR/>
- Este módulo depende de <CLASS name="HIT" package="HTML_Template"/>
+ simple, de hecho esta página está hecha con este módulo.<br />
+ Este módulo depende de <class name="HIT" package="HTML_Template"/>
(Hooks vs IT), un sistema de templates muy rápido y simple hecho
- especialmente para <BIFE/> que combina lo mejor de los hooks con el
- sistema de templates <LINK
+ especialmente para <bife /> que combina lo mejor de los hooks con el
+ sistema de templates <link
url="http://pear.php.net/manual/en/package.html.php#package.html.html-template-it"
- desc="Integrated Templates">IT</LINK>.
- </SECTION>
- <SECTION title="El Futuro">
+ desc="Integrated Templates">IT</link>.
+ </section>
+ <section title="El Futuro">
La idea es que en el futuro hayan muchos widgets para bajar y
y armar una pagina web (o similar) solo escribiendo el XML (y
probablemente los templates).
Sería bueno que los widgets usen a su vez otras biblioteca de PHP (como
- <LINK url="http://pear.php.net/">PEAR</LINK>) para hacer el trabajo
- <EM>sucio</EM>, de manera tal que los widgets se limiten a actuar de
+ <link url="http://pear.php.net/">PEAR</link>) para hacer el trabajo
+ <em>sucio</em>, de manera tal que los widgets se limiten a actuar de
nexo entre entre el HTML (o la salida que sea), el XML y la lógica
(realizada en su mayor parte por una biblioteca general).
- </SECTION>
-</PAGE>
+ </section>
+</page>