es un framework basado en la idea de
Bif
de separar la lógica, el contenidos y el diseño de una aplicación
PHP
(típicamente una página web) pero con fuerte énfasis en la velocidad y la
simplicidad. también está fuertemente influido por los
hooks
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.
La idea es simple, el diseño se genera con templates (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).
Los objetivos de BIFE son estos (en orden de importancia):
BIFE debe ser rápido.
BIFE debe ser simple.
BIFE debe ser modular.
BIFE debe ser fácil para el creador de contenidos (XML).
es modular. en sí (el corazón) consiste en 4 clases,
3 de ellas abstractas. Cada tag XML es mapeado por el
(única clase no abstracta) a un
objeto (cuya clase coincide con el tag). A su
vez, ese puede ser un
(en cuyo caso además de tener atributos,
tiene un contenido). De no encontrar una clase para ese tag XML, el
puede usar un objeto
que se encargue de resolver el problema.
ni siquiera depende de un sistema de templates particular, la
única limitación consiste en usar el mismo objeto template para
dibujar todos los .
Recordamos que todas estas clases (exceptuando a
) son abstractas. Es por esto que para usar
es necesario implementarlas antes.
, 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
, que consiste sólo de 2 clases:
y .
es un (a su vez un
) 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. es un 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.
Este módulo depende de
(Hooks vs IT), un sistema de templates muy rápido y simple hecho
especialmente para que combina lo mejor de los hooks con el
sistema de templates IT.
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
PEAR) para hacer el trabajo
sucio, 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).