Después de un tiempo de “ausencia” por varios motivos y tener medio abandonado el blog 🙏 hoy vuelvo con un tema sencillo por si hay por ahí algún despistado como yo, que se ha encontrado o puede que se encuentre en la misma situación. 😉
A la hora de volver a escribir código para dulceAuth resulta que me ha salido un aviso como el siguiente:

Este aviso aparece a partir de la versión 8.4 de PHP y nos indica literalmente qué “llamar a parámetros implícitamente nulos está obsoleto”.
¿Qué significa esto?
La deprecación de parámetros implícitamente nulos significa que cuando defines un parámetro con un tipo de dato obligatorio y le asignas un valor por defecto null, como en:
public function __construct(User $user = null)
El tipo User sugiere que siempre se espera una instancia de User, pero el valor por defecto null implica que también puede ser null. En PHP 8.4, esto debe expresarse explícitamente usando ?User para dejar claro que el parámetro acepta null.
En otras palabras:
public function __construct(?User $user = null) { $this->userModel = $user ?: new User(); parent::__construct(); }
Con este cambio se busca hacer que el código sea más explícito y evitar confusiones sobre los tipos esperados. Al declarar User $user = null, el código sugiere que $user siempre debe ser un objeto User, pero luego permite null, lo cual contradice la intención del tipo declarado.
¿Parece obvio no?
Así que básicamente el cambio consiste en dejar claro que el parámetro puede ser null utilizando la notación ‘?’.
Resumiendo, de esa manera estamos indicando que:
- ?User deja claro que $user puede ser nulo.
- = null permite que el parámetro sea opcional sin generar errores.
- Evita la advertencia de PHP 8.4 y asegura que el código sea compatible con versiones futuras.
Una vez más, espero que este pequeñísimo articulo/minipost sirva de ayuda 😉
Sobre el autor
Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.