Function create_function() is Deprecated in PHP 7.4

При миграции php на 7.4 возможно возникновение ошибки «Function create_function() is Deprecated» в старом легаси коде. Лечится достаточно просто…

1 вариант, используем готовый интерпретатор, меняем текст «rector.php» на

<?php
 
// rector.php
 
declare(strict_types=1);
 
use Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
 
return function (ContainerConfigurator $containerConfigurator): void {
    $services = $containerConfigurator->services();
    $services->set(CreateFunctionToAnonymousFunctionRector::class);
};

Вставляем код в «Input Code», жмем зеленую кнопку, в «What did Rector change?» получаем diff на основе которого делаем изменения.

2 вариант, тоже самое, но через compose ставим к себе на сервер:

composer require rector/rector --dev
<?php
 
// rector.php
 
declare(strict_types=1);
 
use Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
 
return function (ContainerConfigurator $containerConfigurator): void {
    $services = $containerConfigurator->services();
    $services->set(CreateFunctionToAnonymousFunctionRector::class);
};
vendor/bin/rector process src
Вы можете оставить комментарий ниже.