Módulos personalizados de Drupal 8: creación de módulos de Drupal 8 eficientes con estas mejores prácticas

Publicado: 2020-03-17

Los módulos personalizados de Drupal 8 pueden variar desde súper simples hasta altamente complejos, dependiendo de la necesidad de personalización. El verdadero poder de Drupal se puede desbloquear con módulos personalizados en Drupal 8. Independientemente de la complejidad de un módulo personalizado, seguir algunas de las mejores prácticas puede ayudarlo a crear módulos personalizados más eficientes. ¡Entonces empecemos!

Recientemente, estaba buscando un módulo en Drupal y algo se me pasó por la cabeza. En el mundo Drupal, cuando busca o considera soluciones, lo primero que puede escuchar es "¡hay un módulo para eso!". Si bien hay cerca de 70 módulos centrales en Drupal, son los módulos adicionales aportados por la comunidad Drupal los que amplían la funcionalidad de la plataforma. Y con Drupal 8, hay una arquitectura completamente diferente y un enfoque modernizado hacia CMS, con un cambio hacia la orientación a objetos para mejorar la eficiencia general y la calidad del software. Crear un módulo personalizado de Drupal 8 para ampliar aún más las capacidades de Drupal no es lo mismo que en Drupal 7.

módulos personalizados drupal 8

¿Qué es un módulo personalizado en Drupal 8? ¿Por qué crear uno?

Un módulo personalizado de Drupal 8 es básicamente un módulo que se compone de funcionalidades personalizadas. El módulo personalizado de Drupal podría comenzar con un módulo contribuido que necesite pequeñas personalizaciones o un módulo Drupal 8 completamente nuevo con nuevos conjuntos de funcionalidades inexistentes que se adapten al proyecto. O a veces, una migración de Drupal 7 a Drupal 8 requerirá un módulo personalizado porque el módulo Drupal 7 no está disponible en Drupal 8. Un módulo personalizado de Drupal 8 se construye esencialmente para extender la funcionalidad principal de Drupal, que por sí sola viene con un conjunto integrado de módulos centrales.

Independientemente de cómo haya sido su experiencia con las versiones anteriores de Drupal, el desarrollo de módulos en Drupal 8 tiene sus propios desafíos. Para darte una idea clara, existen algunas diferencias entre Drupal 7 y Drupal 8, la clave es que Drupal 8 requiere la última versión de PHP 7 para ejecutarse y usa Symphony, un marco PHP que se basa en la Programación Orientada a Objetos. No obstante, el nuevo enfoque de Drupal 8 es un enfoque futurista y ha abierto las puertas a un conjunto más amplio de desarrolladores que están familiarizados con los conceptos de OOP y MVC.

Además, hay cambios en la forma en que se construye un módulo y existen ciertas mejores prácticas para mantenerse al día con los estándares de la comunidad. Hablemos más sobre esto.

Cambio en la estructura de archivos de Drupal 8

Un punto importante para recordar es que en el desarrollo de módulos de Drupal 8 la estructura de archivos es bastante diferente a la de Drupal 7. Los módulos personalizados en Drupal 8 se almacenan en el directorio / modules , a diferencia de Drupal 7 donde este directorio estaba reservado para el núcleo. módulos. Los módulos principales de Drupal 8 ahora van al directorio / core .
A continuación, para que Drupal 8 sepa que su módulo personalizado existe, debe crear un archivo .info.yml que proporcione los metadatos. Este proceso es similar al utilizado para Drupal 7.

nombre : esta clave es para proporcionar un nombre para su módulo personalizado.
tipo : esta clave define el tipo de extensión (módulo / tema / perfil).
descripción : esta tecla proporciona una descripción detallada sobre el módulo personalizado (que se muestra en la página de lista de módulos).
paquete : esta clave especifica el paquete en el que se debe incluir el módulo.
versión : especifica la versión del módulo.

Si su archivo se parece a ' blogexmple_module.info.yml ', la sintaxis será la siguiente:
nombre - módulo blogexmple
tipo - módulo
descripción : un módulo de demostración simple
paquete - Personalizado
versión - 1.0
núcleo - 8.x

Uso de la configuración antes del código

Tener que reescribir el código cada vez que realiza algún cambio es una tarea ardua. En lugar de codificar una clase en un tema, establezca los valores en la configuración y aplíquelos con el código. Esto asegura formas fáciles y rápidas de codificar y da como resultado módulos de alta calidad. Dado que los códigos reutilizables son la norma en la escritura de software de calidad, las configuraciones en el código garantizan una funcionalidad avanzada y características "fáciles de modificar".

Utilice lo que ofrece Drupal

Una vez que haya creado su módulo, debe saber que Drupal viene con varias funcionalidades de administración integradas para almacenar y mostrar los datos y la configuración del módulo. La página de configuración del módulo se puede definir con el menú de gancho . Este gancho permite a los módulos registrar rutas para definir cómo se manejan las solicitudes de URL. Con el uso de devolución de llamada de la página drupal_get_form , todo lo que debe hacer en la función de devolución de llamada es definir y devolver la configuración que se va a almacenar.

Demasiados cocineros arruinan el caldo

Habiendo trabajado en sitios Drupal a gran escala durante mucho tiempo, los desarrolladores de Drupal habrían aprendido que cientos de módulos pueden trabajar juntos su magia para producir un proyecto efectivo a gran escala. Pero cuando se trabaja en sitios web empresariales de Drupal, es importante tener en cuenta que evitar un solo módulo pobre tiene mayores efectos que evitar 30 módulos Drupal bien desarrollados (en un intento de utilizar módulos menores). Los desarrolladores tienden a favorecer la programación de sus propios módulos sobre la reutilización de módulos existentes. Cuanto mayor sea la cantidad de módulos personalizados que escriba para un proyecto, más trabajo se necesitará para mantener y modificar su sitio Drupal más adelante. En su lugar, considere publicar sus módulos en Github. Esto le permite evitar el uso de una gran colección de módulos personalizados y, en cambio, lo alienta a crear código reutilizable que tenga la configuración requerida.

Estándares medioambientales y de codificación

El entorno de desarrollo es una influencia importante, ya que garantiza que un proyecto Drupal se ejecute sin problemas. Las empresas de desarrollo de Drupal se aseguran de que todo el equipo trabaje exactamente en el mismo entorno de desarrollo para un flujo de trabajo eficiente.

Al trabajar en un entorno de este tipo, uno de los problemas más importantes a tratar es asegurarse de que el código esté limpio y se pueda mantener. Los desarrolladores de Drupal deben asegurarse de que su código sea legible y tenga sentido para todas las personas con las que trabajan. Y esto no se aplica solo a los miembros del equipo ni a cualquier persona de su organización, sino también a la comunidad de Drupal en general. Dado que la participación de la comunidad es una parte esencial del desarrollo de Drupal y un aspecto clave en los equipos distribuidos que trabajan juntos de manera eficiente, seguir los estándares de codificación ayuda a lograr las metas y los objetivos de un proyecto.