Creando un CMS (I)

Aprovechando estos días de vacaciones intentaré mejorar el gestor de contenidos -rCMS- de este sitio de forma radical. Después de haber cacharreado con CakePHP y otros frameworks similares he decidido seguir con un método de programación más tradicional -como los hombres-.

Debo admitir que ya tenía una versión preparada que tiraba de una especie de framework hecho a medida, pero con demasiadas clases, instancias y requires que no creo necesarios para un simple blog.

Además de eso hay otros dos factores más que me han llevado a tal decisión: el código, por el momento, solo lo estoy tocando yo y, por otro lado MarcosBL me ha enseñado varios ejemplos que podrían pasar por lo que estoy buscando.

Manos a la obra

Como hacer un CMS partiendo de un folio en blanco es tarea complicada, intentaré en esta primera entrega crear una estructura más o menos ordenada de lo que sería el esqueleto de la aplicación teniendo en cuenta factores como la alta disponibilidad del mismo y la sobre-optimización de recursos del lado del servidor.

Estructura de archivos y directorios

Estas primeras decisiones son básicamente de nomenclatura, con lo que tampoco es nada crucial para el funcionamiento de la aplicación. Ahí va el primer skel público:
  • htdocs/
    • _img/
    • _js/
    • _themes/
      • default/
      • mobile/
    • app/
      • langs/
      • models/
      • views/
      • controllers/
      • config.php
      • dispatcher.php
      • init.php
      • routes.php
    • core/
      • functions/
      • libraries/
Todos los directorios que empiezan por _ (guión bajo) guardan en su interior contenido estático legible por cualquier visitante. El directorio app/ guarda el bruto de la aplicación con sus modelos, controladores, vistas, idiomas y demás (configuración, despachador, mapeo de rutas...). Mientras que el directorio core/ guarda código reusable entre proyectos como pueden ser funciones de acceso a la base de datos, paginadores, generador de thumbs...

Step 1, done!

Como ya es tarde y esto irá por capítulos -espero no cansarme antes- dejaré abiertos los comentarios para todo aquel que quiera aportar sus 2 eurocents. y tome parte -activa ó pasiva- en el transcurrir del proyecto. Así que no olviden vitaminarse y supermineralizarse.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.