¿Qué es Drupal?

Drupal es un popular sistema de gestión de contenido de código abierto escrito en PHP. Al haber sido creado a principios de la década de 2000 por un estudiante belga, ahora alimenta algunos de los sitios web más destacados de la web (WhiteHouse.gov, Weather.com, etc.). A menudo se lo considera un competidor de CMS como WordPress y Joomla.

Uno de los componentes más importantes del proyecto Drupal es su comunidad de colaboradores (contribuyentes, desarrolladores, evangelistas, dueños de negocios, etc.). En esta comunidad destaca la Asociación Drupal, responsable de "fomentar y apoyar el proyecto de software Drupal, la comunidad y su crecimiento".

Un salto gigante de su predecesor, el octavo lanzamiento importante del proyecto Drupal, acaba de llegar a los estantes. Provocó una seria modernización de su código, prácticas y mentalidad. Muchos consideran este cambio como un verdadero alejamiento de la noción tradicional de un CMS a una gestión de contenido más. Marco de referencia (CMF) que proporciona una gran plataforma para construir aplicaciones complejas.

En este artículo, voy a responder algunas de las preguntas más frecuentes que tiene la gente sobre Drupal cuando se inician por primera vez o consideran hacerlo:

  • ¿Está bien para mí? A quién esta dirigido?
  • ¿Cómo se puede instalar y dónde puedo alojarlo??
  • ¿Cómo puedo empezar a trabajar con él como desarrollador??
  • ¿Qué opciones tengo para extender la funcionalidad o el estilo??

¿A quién está dirigido Drupal??

Desde el inicio del proyecto, Drupal ha evolucionado de ser principalmente una herramienta para construir sitios más pequeños a uno que ahora puede impulsar plataformas de nivel empresarial. Especialmente con Drupal 8, los desarrolladores y creadores de sitios pueden escalar fácilmente de sitios web pequeños a plataformas grandes con muchas integraciones. Por ejemplo, la adopción de Composer le permite no solo incorporar bibliotecas externas a un proyecto de Drupal, sino también usar Drupal como parte de un proyecto más grande de aplicaciones y bibliotecas. Es seguro decir que Drupal es lo suficientemente flexible para satisfacer las necesidades de una amplia gama de proyectos.

En lo que se refiere al desarrollo, Drupal siempre ha tenido una comunidad relativamente cerrada, no porque las personas sean hostiles, sino todo lo contrario, pero principalmente debido a que el código normalmente se escribe de forma Drupal (lo que a veces se conoce como Drupalismos). Esto ha significado una curva de aprendizaje para el inicio de cualquier desarrollador, pero también un menor interés por parte de los desarrolladores de otros proyectos PHP para participar y contribuir..

Este ya no es el caso. Especialmente con el lanzamiento de Drupal 8, la comunidad ahora promueve una nueva mentalidad de reutilización de código y mejores prácticas en diferentes proyectos de código abierto. La participación activa en el Grupo de Interoperabilidad del Marco de PHP es parte de este esfuerzo, y el uso de varios componentes populares de Symfony en el núcleo de Drupal 8 es un testimonio de este compromiso. 

Con este movimiento, la comunidad de Drupal se ha enriquecido al dar la bienvenida a muchos desarrolladores de otras comunidades y proyectos, y seguramente crecerá aún más. Así que si eres un desarrollador de Laravel, mirar el código de Drupal ya no será tan desalentador.

¿Cómo puedo instalar Drupal y dónde puedo alojarlo??

Tradicionalmente, Drupal ha tenido un proceso de instalación relativamente fácil, en particular para las personas que al menos conocían el entorno de Linux. El proyecto simplemente debe colocarse en una carpeta que su servidor web puede ejecutar (que necesita estar usando PHP y tener una base de datos MySQL o MariaDB). Luego apunta tu navegador a la /install.php Archivo y siguiendo los pasos se encarga del resto. La pantalla más importante que verá es aquella en la que selecciona una base de datos específica para usar.

En términos de requisitos, el entorno de pila LAMP (Linux, Apache, MySQL y PHP) siempre ha sido el favorito de Drupal para ejecutarse. Sin embargo, no está restringido para ello. Existen soluciones para instalarlo directamente en Windows o Mac (por ejemplo, utilizando el Acquia Dev Desktop) pero también en un sistema Linux que ejecuta otros servidores web.

El enfoque más sencillo, si va con su propia configuración, es utilizar un servidor LAMP para el alojamiento. Para obtener un poco más de rendimiento, puede reemplazar Apache con Nginx, pero luego tendrá que cuidar de alguna configuración específica que, de lo contrario, se maneja en el .htaccess archivo Drupal se envía con.

Sin embargo, si no quiere la molestia de mantener su propio servidor de alojamiento, hay tres proveedores principales de alojamiento administrado por Drupal especializado: Acquia, Pantheon y Platform.sh. Estos también proporcionan un flujo de trabajo para actualizaciones fáciles y flujo de desarrollo. Más allá de eso, usted está buscando un hosting completamente administrado con una compañía de desarrollo Drupal.

¿Cómo puedo empezar a desarrollarlo??

Desarrollar sitios web de Drupal ha sido típicamente el tipo de cosas que te gustaron o no te gustaron en absoluto. Esto se debe a que cuando se introdujo por primera vez en Drupal, se encontraron muchas especificidades que no vio en otros proyectos. Así que si esos te hicieron cosquillas, te encantó para siempre..

Con bajar de esto isla en Drupal 8, este ya no es el caso. Todavía tienes un montón de Drupalismos a la izquierda que puedes amar u odiar, pero ahora también tienes componentes externos como Symfony o Guzzle y, lo más importante, una forma más moderna de escribir código en general (OOP, patrones de diseño, componentes reutilizables, etc.). Así que tus habilidades de PHP de construir sitios web con Zend te serán útiles.

Una buena manera de entrar en el desarrollo de Drupal es seguir algunos cursos de video en línea. Hay un par de recursos que son excelentes para este propósito, especialmente Drupalize.me. Sin embargo, si el video no es su medio favorito, también hay muchos tutoriales escritos y guías disponibles para comenzar. Vea los siguientes enlaces para ver algunos de los primeros pasos que puede tomar:

  • Guías oficiales de desarrollo de Drupal.
  • La referencia de la API de Drupal
  • Guías de desarrollo de módulos.
  • Tutoriales del Código Drupal de Envato

Como Drupal 8 es completamente nuevo, encontrará un contenido de aprendizaje significativamente mayor para Drupal 7. Sin embargo, el enfoque en la comunidad ha estado cambiando recientemente hacia Drupal 8, por lo que puede esperar que surjan más y más de estos recursos. Y si no tiene experiencia con ninguna versión de Drupal, es mejor centrarse exclusivamente en Drupal 8, ya que los cambios entre los dos son grandes y tal vez enfrentaría desafíos innecesarios..

¿Cómo puedo extender Drupal??

El punto de extensión principal de una instalación central de Drupal es su módulo sistema. 

Los módulos se utilizan para encapsular fragmentos más grandes de funcionalidad reutilizable que pueden / deberían funcionar en diferentes sitios. Aparte de los módulos principales, hay una gran cantidad de módulos contribuidos, disponibles para la instalación. 

Por supuesto, la mayoría aún son solo para Drupal 6 y 7, pero la comunidad también se está poniendo al día con la versión más reciente. Este problema también se ve mitigado por la incorporación en Drupal 8 de algunos módulos populares contribuidos, además de ampliar el alcance de lo que el núcleo puede hacer fuera de la caja (en comparación con Drupal 7). 

Por último, los módulos personalizados (los que usted mismo escribe) son la forma principal en que puede agregar cualquier funcionalidad que desee y que no está disponible a través de un módulo contribuido..

La instalación de módulos puede permitirle conectar varias piezas de funcionalidad, pero no debe tratar esto como una luz verde para agregar demasiados. Siempre es mejor atenerse a los que realmente necesita, y no tenga miedo de ser crítico a este respecto. También puede trabajar para encontrar un buen equilibrio entre el código contribuido y el personalizado que usted mismo escribe.. 

Además, ya que estamos hablando de software de código abierto, siempre debe evaluar los módulos que instala. Los siguientes indicadores son buenos ejemplos a los que hay que prestar atención: número de descargas y uso, frecuencia de confirmación, compromiso del mantenedor, estado de la cola de problemas.

Y tenga en cuenta la seguridad también. Se recomienda encarecidamente mantener actualizados el núcleo de Drupal y cualquier módulo contribuido, ya que esto le ayudará significativamente a mantener su sitio y servidor seguros (aunque no lo garantiza).

¿Qué pasa con el estilo?

La capa de estilo de un sitio de Drupal se maneja (en gran parte) por su tema. Los temas son similares a los módulos en que son un punto de extensión, pero tienen diferentes responsabilidades. Contienen los estilos, las bibliotecas front-end y, en la mayoría de los casos, los archivos de plantilla que se utilizan para generar datos..

Ha habido un gran progreso en Drupal 8 en comparación con la versión anterior: el popular motor Twig ha sido adoptado para la creación de plantillas, la temática se ha limitado a los archivos de plantillas de Twig, la depuración y el reemplazo de plantillas se ha hecho mucho más fácil, etc. Similar a los avances en experiencia de desarrollo de back-end (DX), la capa temática se ha hecho más atractiva para la multitud que no es Drupal. Los desarrolladores de front-end ahora pueden trabajar fácilmente con temas de Drupal sin tener que entender los entresijos del back-end..

El núcleo de Drupal incluye una serie de temas que pueden proporcionarle ejemplos, pero también de los que puede ampliar. También hay temas contribuidos similares a cómo hay módulos. Los frameworks front-end populares como Bootstrap o Zurb Foundation tienen implementaciones maduras de Drupal para Drupal 7, que también se están preparando para Drupal 8. Estos funcionan muy bien como temas de base, pero también para andamiar rápidamente un sitio web y hacer que se vea decente..

Temas pagados también están disponibles para probar. Por lo general, son muy baratos y rápidos de configurar. El problema con ellos es que valen exactamente lo mismo que usted paga por ellos y, por lo general, tienen grandes vacíos en su flexibilidad. Como principiante, estos temas pueden parecer una excelente manera de configurar un sitio, y pueden muy bien serlo. Sin embargo, a medida que avanza, aprenderá a evitarlos y a construir sus propios diseños basados ​​en diseños externos o incluso en plantillas simples de HTML / CSS / JS..

Conclusión

Drupal es una poderosa herramienta para crear sitios web y plataformas de cualquier tipo. Con cada nuevo lanzamiento importante, Drupal ha demostrado un compromiso para superarse a sí mismo, ser más robusto y flexible, y abrazar a las comunidades externas también..