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):
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).