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

Error: Call to a member function getPath() on null in Drupal\config_translation\ConfigNamesMapper->getOverviewRoute()

Significa que se está intentando llamar al método getPath() sobre un objeto que es null. Este objeto debería ser una instancia de Route, pero por alguna razón, no se ha inicializado correctamente. Este error generalmente ocurre cuando el sistema intenta generar una ruta de traducción para una configuración que no tiene definida una ruta asociada, o cuando se está intentando acceder a la traducción de una configuración que no está completa o no existe en la forma esperada.

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Í

 

mkcert : The term 'mkcert' is not recognized as the name of a cmdlet, function, script file.

Cuando trabajas en tu entorno local utilizando soluciones basadas en contenedorres Docker, como por ejemplo, Ddev con el subsistema de windows WSL2, es posible que tengas que realizar ajustes en tus certificados. Uno de los pasos está relacionado con los certificados mkcert que instala Ddev de manera predeterminada. Si al ejecutar el comando mkcert -CAROOT te devevuelte el error: 

mkcert : The term 'mkcert' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + mkcert -CAROOT + ~~~~~~ + CategoryInfo : ObjectNotFound: (mkcert:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 

Ese error en PowerShell significa que mkcert no está instalado o no está en el PATH del sistema. Aquí te dejo una guía paso a paso para solucionar este problema en Windows 11: