You play we dance

Wordpress como framework

A lo largo de mi vida profesional he aprendido una máxima a golpe de experiencia: “no existe la solución perfecta para cualquier problema“. Esto quiere decir que ninguna solución software puede ser la mejor para todo, hablemos de bases de datos (MySQL, PostgreSQL, Oracle, SQLite, etc.), de sistemas operativos servidor (GNU/Linux, BSD, Windows Server, UNIX, etc), lenguajes de programación (PHP, C, Java, Python, etc.), o como es el caso que nos atañe, de frameworks (Zend Framework, Spring, Symphony, etc.) y gestores de contenidos (Wordpress, Drupal, Joomla, etc.).

Wordpress como framework

Wordpress es un gestor de contenidos limitado a contenidos tipo blog, pero como todo CMS (Content Management System, o Gestor de Contenidos), hace uso de un framework, sea interno (como es el caso que nos ocupa) o externo (cualquiera de los frameworks del mercado). Su framework interno es muy limitado, pero puede ser suficiente para determinado tipo de proyectos. Entre las características más destacables podemos resaltar:

  • Funciones de acceso a base de datos (sólo MySQL):
    • Permite una mínima RAD (Rapid Application Development, o Desarrollo Rápido de Aplicaciones) para hacer consultas a la base de datos.
    • Por otro lado la definición de estructuras de datos y la modificación de los datos son asignaturas pendientes de este framework. Pero Wordpress, como gestor de blogs, no necesita de estas funcionalidades, y por lo tanto es compresible esta carencia en su framework.
  • Funciones de internacionalización:
    • Realmente sólo posee traducción de contenidos estáticos, por lo que es un sistema muy limitado.
    • El sistema es simple, sin posibilidad de gestión en el panel de Wordpress, pero cumple su cometido.
  • Sistema de plantillas:
    • Este sistema puede que sea lo que ha conseguido popularizar tanto a Wordpress. Es realmente muy sencillo crear nuevas plantillas, y páginas (estáticas y dinámicas) que las usen.
    • Se podría decir que el framework está pensado para su sistema de plantillas, o al menos esa es la sensación que da al desarrollar sobre Wordpress. Su sistema de consultas se integra a la perfección con el sistema de plantillas.
  • Categorización de contenidos:
    • Dado que Wordpress es un gestor de contenidos tipo blog, esta funcionalidad se antoja imprescindible.
    • Podemos usar este sistema para dividir nuestros contenidos en secciones (categorías según Wordpress).
  • Gestión de usuarios:
    • La funcionalidad es mínima, pero suficiente para sistemas donde sólo se necesita autentificar a los distintos administradores (como es el sistema de gestión de blogs de Wordpress).
  • Otras funciones de utilidad:
    • Posee además una serie de funciones para hacer más fácil la vida al programador, como envío de emails, expresiones regulares para comprobar emails, redirecciones, librería XMLRPC, etc.

La mayor carencia de Wordpress en general, es que no provee herramientas específicas para desarrollo. Algo incomprensible dado que Wordpress lo creó un programador (Matt Mullenweg, con 19 años), y éstos suelen ser muy complacientes con los suyos (especialmente en el mundo del software libre).

Algunos aspectos son un verdadero problema para el desarrollo de aplicaciones web con Wordpress, como por ejemplo su sistema de redirecciones, que impiden acceder al sitio desde distintos nombres de host. Esta opción es muy útil para poder usar como mínimo dos entornos, el de desarrollo y el de producción, y cada uno con un nombre de host distinto (dev.miproyecto.com y www.miproyecto.com) y haciendo uso de bases de datos distintas, pero para poder hacer algo así en Wordpress es necesario “hackearlo”, consiguiendo con esto que no podamos volver a actualizar Wordpress (o que tengamos que ir aplicando parches a cada actualización).

Yo jamás recomendaría usar Wordpress para desarrollar una web que no sea un blog, o al menos que el blog sea el centro de la web. Pero existen algunos tipos de proyecto que, por su reducido tamaño (sencillez) y con un único desarrollador, pueden desarrollarse haciendo uso del framework de Wordpress y se podría considerar una buena solución. Pero es muy importante que esta opción se evalúe por parte del desarrollador o analista junto con otras opciones antes de decantarse por ella.

4 comentarios sobre “Wordpress como framework”

  1. Ismael Fuentes dijo:

    Tienes muchos problemas de conceptos y funcionamiento de Wordpress, se nota que lo has utiliizado para proyecto de baja envergadura, y seguramente por ello desconoces el real potencial. Sin ánimo de atacar por atacar, te recomiendo que te des solamente una vuelta a la sección de plugins y extensiones de wordpress y podrás dimensionar lo que actualmente se está desarrollando en él.

    No recomendar wordpress para sitios mediano e incluso complejos y encasillarlo sólo a blog es desconocer por completo el potencial de esta real herramienta, y muestra el grado de irresponsabilidad para emitir contenido y experiencias en la internet, lo que supone que para otra entrada poco te puedo creer.

    Yo utilizo constantemente Drupal, Joomla y Wordpress, de hecho actualmente estoy metido en tres proyectos distintos en los cuales trabajo con ese trío… y wordpress tiene mucho mucho más que ofrecer de lo que apuntaste…

    Salu2.

  2. Armando Sosa dijo:

    Pienso igual que tú, WordPress es una plataforma muy interesante porque existen un gran número de instalaciones y mucha gente la sabe usar, además que es muy fácil comenzar a desarrollar Plugins y Temas.

    Por otra parte, tambien creo que como framework de desarrollo, su calidad deja mucho que desear. Cuando te acostumbras a programar en frameworks de alta calidad como RubyOnRails, CakePHP o Cocoa –por poner algunos ejemplos– regresar a trabajar con WordPress es un poco frustrante.

    Pero como quejarse es más fácil que actuar, yo decidí escribir un framework de programación sobre WordPress, que facilita la creación de temas avanzados. Lo llamo Duperrific Theme Engine y está alojado en GitHub ( http://github.com/soska/dte ). Disculpa el autobombo, pero temía haber creado una solución para un problema que nadie tenía.

    Saludos!

  3. Javier Pérez dijo:

    Ismael, no se nos debe olvidar cuál es el objetivo de Wordpress, y ese es el de gestor de contenidos de tipo blog. A partir de ahí se le puede buscar más utilidades, porque el software es de muchísima calidad, pero insisto en que siempre sin perder de vista que Wordpress es una solución concreta ideada para un problema concreto.

    El sistema de plugins es fantástico, a pesar de que no use ni una sóla línea de POO. Pero es fantástico para usarlos en Wordpress CMS, no en Wordpress framework, ya que, tal y como titulo el artículo, estamos hablando en todo momento de Wordpress como framework.

    Te animo a que nos muestres en qué sentido he minusvalorado a Wordpress y por qué motivos Wordpress es más válido para grandes proyectos que otros como Symphony, CakePHP o Zend Framework, por poner unos ejemplos. Creo que me lo merezco después de haberme tildado de irresponsable.

  4. Javier Pérez dijo:

    Armando, muchas gracias por desarrollar y compartir ese framework. En cuanto tenga un hueco lo pruebo porque por tu experiencia y trabajo seguro que tu trabajo nos es muy útil.
    Yo también soy de tu opinión, cuando te acostumbras a MVC, POO, CRUD, y patrones de diseño avanzados, entre otras maravillas de la programación de hoy, es realmente molesto tener que desarrollar en un framework limitado como es el de Wordpress. Pero también es cierto que para proyectos muy pequeños es incómodo tener que usar un framework demasiado “grande”, y es aquí donde entran opciones como Wordpress.
    Por suerte para los programadores de hoy, el software libre nos ha traido todo tipo de soluciones, y cada una de ellas es perfecta para su correspondiente problema.
    Un saludo.

Añadir un comentario