PHP 8.5 nos trae closures en constantes de clases.

La verdad es que esta nueva funcionalidad me deja frío, y es añadir una constante que puede ejecutar una función anónima no termina de convencerme.

class Example {
public const VALIDATOR = static function($value) {
return !empty($value);…


This content originally appeared on DEV Community and was authored by oskar calvo

La verdad es que esta nueva funcionalidad me deja frío, y es añadir una constante que puede ejecutar una función anónima no termina de convencerme.

class Example {
    public const VALIDATOR = static function($value) {
        return !empty($value);
    };
}

(fuente del código: https://pixicstudio.medium.com/php-8-5-new-developer-features-f9617311c590)
Para resolver eso mismo podemos crear un functor o podemos usar también un trait, o incluso una clase con un método estático (pero mejor los traits).

Un functor al ser una clase se puede inyectar sin problemas en otras clases y un trait está precisamente pensado para ser usado dentro de otras clases.

interface Functor
{
    public function fmap(callable $fn): Functor
}
class Arr implements Functor
{
    protected $items;

    public function __construct(array $items)
    {
        $this->items = $items;
    }

    public function fmap(callable $fn): Functor
    {
        return new static(array_map($fn, $this->items));
    }
}

(fuente del código: https://www.kai-sassnowski.com/post/php-functors-1/)

Un functor o un servicio normal los plantearía en caso de que sea necesario conectar con la capa de Infraestructura (acceso a bbdd, a servicios externos de terceros, etc.), un trait por otro lado lo implementaría en caso de que correspondiere a la capa de Dominio para manipular datos pero es que no veo en que momento sería buena idea o interesante añadir una función anónima a una constante.

Así que lo dicho, no veo en qué momento sería buena idea añadir una función anónima a una constante.


This content originally appeared on DEV Community and was authored by oskar calvo


Print Share Comment Cite Upload Translate Updates
APA

oskar calvo | Sciencx (2025-09-23T21:52:15+00:00) PHP 8.5 nos trae closures en constantes de clases.. Retrieved from https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/

MLA
" » PHP 8.5 nos trae closures en constantes de clases.." oskar calvo | Sciencx - Tuesday September 23, 2025, https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/
HARVARD
oskar calvo | Sciencx Tuesday September 23, 2025 » PHP 8.5 nos trae closures en constantes de clases.., viewed ,<https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/>
VANCOUVER
oskar calvo | Sciencx - » PHP 8.5 nos trae closures en constantes de clases.. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/
CHICAGO
" » PHP 8.5 nos trae closures en constantes de clases.." oskar calvo | Sciencx - Accessed . https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/
IEEE
" » PHP 8.5 nos trae closures en constantes de clases.." oskar calvo | Sciencx [Online]. Available: https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/. [Accessed: ]
rf:citation
» PHP 8.5 nos trae closures en constantes de clases. | oskar calvo | Sciencx | https://www.scien.cx/2025/09/23/php-8-5-nos-trae-closures-en-constantes-de-clases/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.