]> git.llucax.com Git - software/bife/bife++.git/blob - test.xml
- Normalized Fallback constructor to be the same of Widget (or Container).
[software/bife/bife++.git] / test.xml
1 <?xml version="1.0" encoding="iso-8859-1" ?>
2 <page title="BIFE - Build It FastEr">
3     <section title="Bienvenido a BIFE!">
4         <bife /> es un <em>framework</em> basado en la idea de
5         <link url="http://www.lunix.com.ar/Bif.php" desc="Build It Fast">Bif</link>
6         de separar la lógica, el contenidos y el diseño de una aplicación
7         <link url="http://www.php.net/" desc="PHP Hypertext Preprocesor">PHP</link>
8         (típicamente una página web) pero con fuerte énfasis en la velocidad y la
9         simplicidad.<br />
10         <bife /> también está fuertemente influido por los
11         <link url="http://www.lugmen.org.ar/" desc="hooks">hooks</link>
12         por lo que no deben extrañarse al encontrar similitudes, como la
13         simplicidad, velocidad, atomicidad y el mismo conceptos de separación
14         de lógica, contenidos y diseño.<br />
15         La idea es simple, el diseño se genera con <EM>templates</EM> (modulares
16         tipo hooks), el contenido a través de XML (simple) y de la lógica se
17         encarga el PHP (transformar el XML según los templates con un poco de
18         magia en el medio).
19     </section>
20     <section title="Objetivos">
21         Los objetivos de BIFE son estos (en orden de importancia):
22         <ul>
23             <li>BIFE debe ser rápido.</li>
24             <li>BIFE debe ser simple.</li>
25             <li>BIFE debe ser modular.</li>
26             <li>BIFE debe ser fácil para el creador de contenidos (XML).</li>
27         </ul>
28     </section>
29     <section title="El corazón de BIFE">
30         <bife/> es modular. <bife /> en sí (el corazón) consiste en 4 clases,
31         3 de ellas abstractas. Cada tag XML es mapeado por el
32         <class name="Parser" /> (única clase no abstracta) a un
33         objeto <class name="Widget" /> (cuya clase coincide con el tag). A su
34         vez, ese <class name="Widget" /> puede ser un
35         <class name="Container" /> (en cuyo caso además de tener atributos,
36         tiene un contenido). De no encontrar una clase para ese tag XML, el
37         <class name="Parser" /> puede usar un objeto <class name="Fallback" />
38         que se encargue de resolver el problema.
39         <bife /> ni siquiera depende de un sistema de templates particular, la
40         única limitación consiste en usar el mismo objeto template para
41         dibujar todos los <CLASS name="Widget" />.<br />
42         Recordamos que todas estas clases (exceptuando a
43         <class name="Parser" />) son abstractas. Es por esto que para usar
44         <bife /> es necesario implementarlas antes.
45     </section>
46     <section title="Implementación simple de BIFE">
47         <bife />, el corazón, es un framework abstracto y sin una
48         implementación no sirve de mucho. A modo de ejemplo, y para darle
49         funcionalidad básica (web) se implementó el módulo
50         <module name="Base" />, que consiste sólo de 2 clases:
51         <class name="Link" /> y <class name="Translate"/>.
52         <class name="Link" /> es un <class name="Container"/> (a su vez un
53         <class name="Widget" />) que se encarga de generar hipervínculos a
54         otras páginas y provee métodos útiles para usar en otros widgets
55         que a su vez necesiten generar links.<br />
56         <class name="Translate" /> es un <class name="Fallback"/> que
57         traduce por medio de templates los tags XML. De no encontrar un
58         template para ese tag, simplemente copia el tag entero (tag, atributos
59         y contenido) a la salida. Esto es suficiente para hacer un sitio web
60         simple, de hecho esta página está hecha con este módulo.<br />
61         Este módulo depende de <class name="HIT" package="HTML_Template"/>
62         (Hooks vs IT), un sistema de templates muy rápido y simple hecho
63         especialmente para <bife /> que combina lo mejor de los hooks con el
64         sistema de templates <link
65         url="http://pear.php.net/manual/en/package.html.php#package.html.html-template-it"
66         desc="Integrated Templates">IT</link>.
67     </section>
68     <section title="El Futuro">
69         La idea es que en el futuro hayan muchos widgets para bajar y
70         y armar una pagina web (o similar) solo escribiendo el XML (y
71         probablemente los templates).
72         Sería bueno que los widgets usen a su vez otras biblioteca de PHP (como
73         <link url="http://pear.php.net/">PEAR</link>) para hacer el trabajo
74         <em>sucio</em>, de manera tal que los widgets se limiten a actuar de
75         nexo entre entre el HTML (o la salida que sea), el XML y la lógica
76         (realizada en su mayor parte por una biblioteca general).
77     </section>
78 </page>