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 traducido 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 hiper-ví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 bibliotecas 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).