Creando una Web con Grav CMS, adios a las bases de datos

Maikel Llamaret Heredia Leído 971 veces Aplicaciones Grav CMS

Una de las cosas que han marcado la nueva llegada del Blog SWL-X es el cambio de WordPress por Grav, pasando a ser una Web de contenido estático. ¿Grav, donde estabas que no te había conocido antes?. Tal vez muchos se pregunten de que va esto de hacer una Web estática y si podría aplicarse a algo tan supuestamente dinámico como un Blog. Grav a pesar de generar un sitio estático, puede usarse para blogs, además les aseguro que Grav es en extremo sencillo incluso desde la propia instalación que deja casi en ridículo a la famosa instalación en 5 minutos de WordPress.

Conociendo Grav CMS

Llevo varios años dedicados, entre otras cosas, al desarrollo y diseño Web, y aunque he probado muchas tecnologías, por cosas de la vida el universo PHP es el que más alimento ha llevado a mi mesa cada día, no significando ello que las herramientas PHP sean las mejores.

No cabe dudas que los CMS o sistemas de administración de contenidos (en lo adelante CMS) simplifican mucho el trabajo pero muchos de ellos tienen en común el problema de armar líos a la hora de gestionar la base de datos que contiene el contenido dinámico, llegando a ser tan problemático que estoy seguro que no solo yo he tenido problemas con ciertos proveedores de hosting por este hecho.

En esto de la pésima gestión de las bases de datos (y no quiero mencionar los problemas de seguridad que hoy en día se encuentran "a pululu") WordPress es de los que más dolores de cabezas crea, sobre todo para aquellos que dependen de los plugins y themes de terceros.

Si pudiéramos generar una Web estática, los problemas de seguridad quedarían limitados a nuestra experticia blindando nuestro servidor Web (si usamos un VPS o un dServer) o a lo seguridad que implemente nuestro proveedor de hosting compartido. Por otro lado, los recursos físicos que necesitaríamos en el servidor se reducen drásticamente.

¿Qué ventajas nos brindaría un CMS generador de contenido estático?

Estos CMS que generan contenido sin necesidad de empleo de bases de datos han ido ganando seguidores en los últimos años y actualmente tenemos un gran número de opciones interesantes en el panorama web. Se podrían categorizar en diferentes formas ya que hay plataformas para generar simplemente contenido estático o los que directamente trabajan con los archivos. Algunos ejemplos de generadores de contenido estático son Statamic, Kirby, Monstra, Razor, Pico o Grav. Existen muchos otros tan diveros como las tecnologías bajo las que están desarrollados como PHP, Ruby, Python, Javascript, etc.

Dentro de las ventajas que nos brindan, tenemos:

  • Velocidad: Al no depender de una base de datos, es rápido, muy rápido. Simplemente archivos, guardados de una forma lógica dentro de carpetas, por ejemplo archivos de texto escritos en Markdown.
  • Versionable: Todo está dentro de una carpeta, diseño, maquetación, programación y contenido. Puedes versionar totalmente tu sitio en un repositorio e ir haciendo commits con cada actualización que hagas en el.
  • Seguridad: Hasta cierto punto el usar solo archivos nos evitamos de los problemas que heredan otros sistemas con base de datos como SQL injections o tablas corruptas. No debe obviarse ni un minuto la seguridad de tu webserver
  • Facilidad de instalación: La mayoría de estos CMS son instalar y listo, vía terminal, clonando de Github o simplemente descargar y usarlo con tu servidor web.
  • Estabilidad: La carga solo depende del servidor web, nunca mas una web caída por desconexión con la base de datos.
  • Portabilidad: Si te ha llegado el momento de cambiar de hosting solo tendrás que copiar la carpeta y pegarla en el nuevo espacio de hosting. Igual si cambias de dominio, luego de hacer los quehaceres a nivel de DNS y apuntar hacia la carpeta, dentro de la Web no tendrás que cambiar nada.

Vista cierta ventaja en el uso de una Web estática, surge la duda ¿Existirá algo que permita crear una Web estática de una manera tan sencilla como en WordPress generamos una dinámica? Puede haber múltiples respuesta, La mía fue GRAV CMS.

Ahora sí, vamos por Grav

Grav es un moderno CMS de código abierto que permite la construcción de páginas web de manera rápida, simple y flexible. Está basado en Web-platform y no necesita ser instalado, simplemente debemos extraer el archivo ZIP y tendremos a Grav funcionando.

Grav sigue principios similares a otras plataformas CMS, pero tiene una filosofía de diseño diferente de la mayoría. Grav viene con un potente sistema de gestión de paquetes para permitir una fácil instalación, mejora de plugins y temas, así como simples actualizaciones.

Su creador es Andy Miller, antiguo fundador del proyecto Joomla y desde su perfil en Github podemos ver que se mueve bastante y mantiene varios proyectos en marcha.

Grav posee varios puntos fuertes que enganchan al que lo prueba por primera vez (al menos ocurrió conmigo). Primero, si has trabajado con algún proyecto en Symfony o su hermano pequeño Silex, reconocerás rápido las tecnologías que usa ya que también utiliza algunos de los Symfony Components en su core.

Grav funciona con PHP al nivel más bajo. Otras tecnologías incluidas son Twig Templating para el control del alcance de la interfaz de usuario, Markdown para crear contenidos de manera fácil, YAML para una configuración sencilla, Parsedown para tener Markdown más rápido y con más soporte, Doctrine Cache para obtener un buen rendimiento, Pimple Dependency Injection Container para que sea extensible y mantenible, Symfony Event Dispatcher para la gestión de los eventos de los plugin, Symfony Console para la interfaz CLI y Gregwar Image Library para la manipulación de imágenes dinámicas.

Redactar en Markdown es realmente divertido
Redactar en Markdown es realmente divertido

Instalando Grav

Los requisitos son mínimos, un servidor web con PHP 5.4 o superior. Recomendable siempre alguna extensión para cache como APC o Memcached, el se encarga de usarla según las tenga disponibles.

Para instalar solo tienes que bajarlo desde getgrav.org directamente, el core o cualquier skeleton montado para ponerte a trabajar al momento. O bien puedes clonarlo vía Git.

Una vez lo tenemos veremos la estructura de directorios que tiene, al ser archivos lo único con lo que trabajamos, la estructura está pensada para facilitarnos la vida.

Anatomía de Grav

Una vez instalado notarás varias carpetas en tu servidor, debes tomar en cuenta que la mayoría son del propio sistema, no debes modificar ningun archivo o carpeta, salvo lo que encuentras bajo la carpeta /user

Una carpeta USER clásica tendrá los siguientes carpetas:

/user/accounts: Contendrá un archivo del tipo .md por cada usuario de la página web, GRAV puede ser un sistema multiusuario con distintos privilegios.
/user/config: Guarda un archivo del tipo .yaml para cada configuración personalizada del sistema, página, themas y plugins.
/user/data: (Opcional) Guarda información de algunos plugins.
/user/pages: Aqui está todo el contenido de tu Web, las páginas de tu sitio web, contiene una carpeta para cada página (por ejemplo, cada post genera una carpeta), algunas páginas directamente relacionadas con una boton del menu, otras no son visibles al público, eso se controla desde el dash de administración.
/user/plugins: Contiene una carpeta por cada plugin, generalmente no modificamos nada ahi dentro, ya que en caso de necesitarlo, todas las salidas que generan los plugins se pueden modificar "override" en tu plantilla.
/user/themes: Contiene una carpeta por cada tema o plantilla, aqui dentro estan todos los archivos .twig que generarán la salida formateada de tu contenido.

Tema SWL-X en el Blog SWL-X
Grav es sencillo, doy fe de ello. Me presentaron el CMS hace pocos días, y al día siguiente tenía montado mi propio Blog incluso con un tema visual hecho por mi, mas claro ni el refresquito de a peso

Hay mucho, pero mucho más que hablar de Grav pero creo que con esta presentación demostramos parte de las potencialidades de este fabuloso CMS.

Fuente:
https://learn.getgrav.org/





Acerca del Autor
Maikel Llamaret HerediaMaikel Llamaret Heredia: Creador y actual Mantenedor del Proyecto SWL-X. Desarrollador y diseñador Web. Cofundador de Web & Media Integrated Solutions. Con más de 10 años de experiencia en la administración de sistemas GNU/Linux. Actualmente uno de los administradores de la Web del Grupo de Usuarios de Tecnologías Libres en Cuba.

Blog Comments powered by Disqus.

Entrada Anterior Siguiente Entrada