¿Qué es ExtFW?

media/page/files/6/.tn_1771594624_logobix.png

ExtFW es un framework modular para PHP que permite construir sitios web y APIs de forma sencilla, sin necesidad de usar un sistema MVC tradicional. Se basa en la carga dinámica de módulos, temas y salidas (outputs), permitiendo estructurar un proyecto por carpetas con una lógica intuitiva y flexible.

Filosofía del sistema

  • Mínimo código para hacer módulos funcionales
  • URL limpias, sin necesidad de definir rutas
  • Separación clara entre lógica (módulos), presentación (temas) y datos (outputs)
  • Todo lo que puede estar en una carpeta, lo está

Ventajas sobre sistemas MVC

  • No requiere definir rutas ni controladores
  • Cada módulo es autónomo y autoejecutable
  • Agregar un nuevo módulo o output es tan simple como copiar una carpeta
  • Ideal para sitios pequeños y medianos que necesitan flexibilidad sin sobreestructura

¿Se parece a WordPress?

  • Es mucho más ligero y rápido que WordPress
  • Sin base de datos impuesta: puede usar MySQL, SQLite, Oracle, etc. o incluso sin base de datos.
  • Respeta las "Formas normales de bases de datos". Wp no lo hace.
  • Sin plugins innecesarios ni sobrecarga de código
  • Fácil de adaptar a tus necesidades reales

Manual para desarrolladores

Estructura básica

  • /_modules_/ contiene los módulos funcionales
  • /_themes_/ contiene los layouts HTML del sitio
  • /_outputs_/ define las salidas como json, csv, txt, pdf...
  • index.php es el punto de entrada común

Qué es un módulo?

Un módulo es una carpeta dentro de la carpeta _modules_, cada módulo es una aplicación web.

Crear un módulo nuevo ('a mano')

  1. Copiar la carpeta /_modules_/_template_/ y renombrarla:
    # cp ./_modules_/_template_ ./modules/<nombre_nuevo_modulo>
  1. Editar el init.php y run.php según tus necesidades

Crear un módulo nuevo (desde control panel)

  1. Creación de nuevo módulo: /control_panel/new/<nombre_nuevo_modulo>
  2. Copia de módulo existente: /control_panel/new/<nombre_nuevo_modulo>/<modulo_existente>
  3. Editar código fuente: /edit/_modules_/<nombre_modulo> (experimental)
  4. Agregar outputs si quieres respuestas especiales (json, pdf...)

Compatibilidad de servidores

  • Funciona perfectamente en servidores Apache, nginx y LiteSpeed
  • Compatible con PHP 7.x y 8.x

Salidas alternativas según la URL

Una misma entrada puede mostrarse en formato HTML normal con theme, o devolver un formato alternativo según el output elegido en la URL.

  • miweb.com/documentacion → muestra HTML con el theme
  • miweb.com/documentacion/pdf → genera un PDF (requiere dompdf, que se instala desde el panel de control)
  • miweb.com/documentacion/txt → genera un txt (con imágenes en ascii)

Manual para usuarios

  • Permite editar contenido desde el panel de control
  • Permite cambiar el idioma o tema desde la URL o configuración
  • La URL define qué módulo se carga y con qué salida
  • Por ejemplo: /page/output/json devuelve una versión JSON de la página

Sobre el módulo page

  • Permite a los usuarios crear y gestionar páginas de contenido
  • Incluye edición inline con contenteditable y editor wysiwyg configurable
  • Soporta galerías de fotos, de archivos, enlaces internos y más
  • Shorcuts. Ejemplo: {ajax url=news/html} 

Casos reales de uso con extFW

  • riba2.org: portal institucional. Rápido, limpio, con contenido multilingüe. El sistema modular permite extenderlo sin sobrepeso.
  • store.gilfamily.es: tienda online simple y eficiente. Uso de outputs JSON y PDF. La ligereza de extFW mejora el tiempo de carga.
  • ampa-aidemar.es: sitio de asociación. Sencillo y editable por usuarios con conocimientos básicos gracias al editor inline.
  • grafyco.com: sitio corporativo con diseño personalizado. Usa módulos propios y outputs adaptados. Alta velocidad de carga.
  • web.clasicadelmarmenor.es: sitio de evento. Uso de galerías, módulo page y salidas tipo pdf y json.
  • eache.es: web informativa de producto. Arquitectura clara, modular, sin plugins externos.
  • radioclubtorrevieja.es: sitio con galerías, publicaciones y enlaces. Ligero, sencillo de mantener. Extensible para futuras funciones.

Notas finales

extFW es un sistema abierto, minimalista y fácil de extender. No requiere instalación especial y se adapta al proyecto que tengas en mente. Ideal para desarrolladores que prefieren la simplicidad y el control.