Snippets

Symfony 6 User Deprecated: Method

User Deprecated: Method "Symfony\Component\Console\Command\Command::execute()" might add "int" as a native return type declaration in the future. Do the same in child class "App\Command\UpdateInfoCommand" now to avoid errors or add an explicit @return annotation to suppress this message

hook_preprocess_node()

La Preprocess Function sirve para modificar los comportamientos por defecto de Drupal, en este caso vamos a acceder al formulario por defecto y lo haremos disponible para colocarlo dentro de un nodo y posteriormente dentro de un paragarphs, así podremos imprimirlo en cualquier lugar y posición dentro de la web.

Si quieres aprender más sobre las preprocess functions

Argument #1 ($validateTo) must be of type DateTimeInterface, string given

En Symfony, al trabajar con propiedades o campos del tipo fecha en nuestra entidades, es posible que nos encontremos con este error:

App\Entity\Entidad::setValidateTo(): 
Argument #1 ($validateTo) must be of type DateTimeInterface, string given, 
called in /app/src/Command/UpdateEntidadInfo.php on line 50 

     Esto significa que aunque en nuestra entidad hemos declarado correctamente el tipo de propiedad, al intentar leerla desde otro lugar, sea controlador o comando de consola, tendremos que volver a añadir su tipo.

Drupal + Nginx + Php-cgi : 502 Bad Gateway error

     Si estás utilizando un servidor NGNIX para tus proyectos de Drupal, es posible que te hayas encontrado con el error 502 Bad Gateway error, sobretodo cuando estás como administrador o editando tus contenidos.

     El problema parece estar relacionado con los fastcgi buffers de Nginx

     Para solucionarlo, abre el archivo /etc/nginx/nginx.conf, y a continuación añade el código que está debajo en el área de http

Cómo instalar Make en Ubuntu

     GNU Make es una herramienta que controla la generación de ejecutables y otros archivos no fuente de un programa a partir de los archivos fuente del programa.

     Por ejemplo, en el caso de trabajar con contenedores de Docker, una vez tengas instalado Make, podrás ejecutar make up, en lugar de docker-compose up -d, para ponerlos en funcionamiento.

Cómo quitar la carpeta /web de la url de Drupal

A partir de Drupal 8 se recomienda que la instalación se realice utilizando el gestor de paquetes COMPOSER para mantener una estructura de archivos más fácil de gestionar mediante línea de comandos.

Esto presenta un nuevo problema que es la creación de la carpeta "/web" dentro de esa estructura que en la mayoría de los servidores compartidos terminará mostrándose como parte de nuestra url, ya que el dominio principal apuntará por defecto a la carpeta public_html o www en lugar de "public_html/web".

Cannot communicate with server: Post http://localhost/v2/apps: dial unix /run/snapd.socket: connect: no such file or directory

     A los que estamos trabajando con WSL2 en Windows 10, nos puede pasar este error de conexión entre nuestra consola y el servidor para descargar las aplicaciones. En mi caso me sucedió al intentar instalar cerbot.

    Al parecer Ubuntu 20.04 LTS reemplazó el software de ubuntu con snapcraft por completo. Entonces, es obvio que el snap se está convirtiendo en el 'predeterminado' de la distribución.

     El problema es que snap no parece funcionar actualmente en wsl2 debido a que depende de systemd. Si lo entiendo correctamente, el servicio snapd debería estar ejecutándose en segundo plano para que funcione, que snapd ya viene preinstalado, sin embargo snapd no puede iniciarse debido a que WSL2 no tiene systemd.

error: cannot communicate with server: Post http://localhost/v2/snaps/hello-world: dial unix /run/snapd.socket: connect: no such file or directory

    Por eso, si intentáramos ejecutar el comandosudo service snapd start, nos saldría en pantalla algo parecido a esto:

snapd: unrecognized service

Cómo recuperar listado de servicios en Drupal 10 | Get the list of available services

Qué es un Servicio o Service en Drupal y/o Symfony:

Se trata de una clase u objeto, desarrollada por otros o por tí, cuya funcionalidad es realizar alguna tarea. Ej.: Mailer o Logger.

Para identificar un Servicio sólo tienes que preguntarte, si esta clase toma información y realiza algún proceso con esta información o si sólamente sirve para guardar esa información en base de datos.

Para acceder al listado de servicios en Drupal 10 y su documentación HAZ CLIC AQUI

Si quieres saber un poco más sobre webservices en Drupal HAZ CLIC AQUÍ

 

Obtener IDs usando preprocess function Drupal 7/8/9

A partir de Drupal 8, con la orientación a objetos se efectuaron grandes cambios...

Debido a que las propiedades del objeto de nodo están protegidas, no podremos acceder a ellas directamente de la forma en que lo hizo en el código de Drupal 7.

Por esta razón, si deseas usarlas en funciones de preproceso, deberás usar las funciones de obtención relevantes para acceder a ellas.

A continuación, se muestran algunos ejemplos en los que deberá cambiar la forma en que accede a las propiedades: