]> git.llucax.com Git - software/bife/web.git/blobdiff - index.xbf
Added autoindexing.
[software/bife/web.git] / index.xbf
index cb96fa5eacf78330c09d08c970090a69d8f407c4..93ebc7927e7657399ba13fee6fd13130bf581dcf 100644 (file)
--- a/index.xbf
+++ b/index.xbf
@@ -1,5 +1,78 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Page title="BIFE - Build It FastEr">
-    <Title>Welcome to BIFE!</Title>
-    <P>BIFE is a blah.</P>
-</Page>
+<?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>
+        (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>
+        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/>
+        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">
+        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,
+        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,
+        tiene un contenido). De no encontrar una clase para ese tag XML, el
+        <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
+        única limitación consiste en usar el mismo objeto template para
+        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
+        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
+        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
+        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"/>
+        (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
+        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">
+        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
+        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>