hux

Motivos para implementar Hux en tu proyecto

Submitted by Oskar on Sat, 11/03/2023 - 22:05

Hux es módulo que permite escribir módulos de Drupal sin necesidad de usar el archivo *.module, me han comentado que únicamente para algunos hooks que hacen referencia al tema sería necesario usar el archivo *.module, me queda por comprobar eso.

Uno de los requisitos importantes de Hux es que es necesario usar PHP 8.x ya que usa anotaciones en los métodos de las clases que se crean, otro de los requisitos es que solo se puede usar a partir de la versión 9.4 de Drupal, o en su defecto la 9.3 con un parche que existe, ya que para hacer posible el funcionamiento del módulo hubo que modificar el core de Drupal.


¿Qué nos permite hacer Hux? Con Hux podemos mover los hooks del archivo *.module a clases dentro de la ruta /src/Hooks del módulo custom que se esta desarrollando, de esta forma en vez de tener un archivo *.module gigantesco lo separaremos en archivos mucho más pequeños y nos permite organizar mejor el código, con Hux podemos usar una o más clases para escribir nuestros hooks, tenerlo todo en una única clase que simule el viejo *.module es posible, pero también podemos tener varias clases el como o que tiene cada clase ya queda a decisión de cada uno, se puede ordanizar pensando en entidades de Drupal, se puede organizar el código pesando en DDD, o como queramos ya que ahora no estamos obligados a usar el archivo *.module (menos los hooks de temas).

Otra de funcionalidades que tenemos es que podemos invocar el mismo hook varias veces en la misma clase o en clases diferentes y gracias a esto mantener el principio de responsabilidad única cada vez que se invoca el hook; un ejemplo de esto sería un tipo de contenido que quiere definir varios pseudofields, en vez de tener todos los pseudofields en 2 hooks, se puede tener una clase por cada pseudofield y en esa clase declarar los hooks necesarios para cada uno de los pseudofields.

 

En este artículo se explica mejor que se puede hacer con el módulo, y el archivo Readme.md del módulo
 

Módulo hux, una oportunidad para organizar mejor el código de Drupal

Submitted by Oskar on Sun, 19/02/2023 - 21:15

Hux es un modulo que permite que dejemos de usar (parcialmente) los hooks en el archivo *.module de Drupal y usar en su defecto clases, en este artículo explican como funciona el módulo: https://www.previousnext.com.au/blog/hux-alternative-to-hooks

He jugado un rato para aclarar dudas:

 

Se pueden usar hooks genéricos que afecten a todas las entidades o filtrando por bundle (entre otras cosas).

se pueden usar hooks más específicos que afecte a una única entidad.

 

A la hora de organizar el código de nuestros proyectos es una gran ventaja, ya no tendremos todo el código en el archivo *.module, podemos tener múltiples clases dentro del directorio src/Hooks y cada una de esas clases que recoja un único hook, o tener varios hooks por clase, además puede ser un buen punto de partida a la hora de "agrupar" el código pensando en DDD o agruparlo por entidades, ya que a veces en proyectos custom no se visualiza el código agrupado de esta manera sino que simplemente se van creando módulos que resuelven una necesidad.

Subscribe to hux