yiisoft / app

Yii3 application template

Home Page:https://www.yiiframework.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

php 8.1 Fatal error on composer run serve

ingen2 opened this issue · comments

What steps will reproduce the problem?

when I ran composer run serve

What is the expected result?


> Composer\Config::disableProcessTimeout
> ./yii serve
PHP Fatal error:  Declaration of Yiisoft\Log\Logger::log(mixed $level, Stringable|string $message, array $context = []): void must be compatible with PsrExt\Log\LoggerTrait::log($level, $message, array $context = []) in /var/www/yii3/vendor/yiisoft/log/src/Logger.php on line 146
PHP Stack trace:
PHP   1. {main}() /var/www/yii3/yii:0
PHP   2. Yiisoft\Yii\Runner\Console\ConsoleApplicationRunner->run() /var/www/yii3/yii:17
PHP   3. Yiisoft\Yii\Runner\ApplicationRunner->checkEvents() /var/www/yii3/vendor/yiisoft/yii-runner-console/src/ConsoleApplicationRunner.php:88
PHP   4. Yiisoft\Yii\Runner\ApplicationRunner->getContainer() /var/www/yii3/vendor/yiisoft/yii-runner/src/ApplicationRunner.php:116
PHP   5. Yiisoft\Yii\Runner\ApplicationRunner->createDefaultContainer() /var/www/yii3/vendor/yiisoft/yii-runner/src/ApplicationRunner.php:135
PHP   6. Yiisoft\Di\Container->__construct($config = class Yiisoft\Di\ContainerConfig { private array $definitions = ['Yiisoft\Yii\Debug\Debugger' => [...], 'Symfony\Component\Console\CommandLoader\CommandLoaderInterface' => [...], 'Yiisoft\Yii\Console\Command\Serve' => [...], 'Yiisoft\Yii\Console\Application' => [...], 'Yiisoft\EventDispatcher\Provider\ListenerCollection' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Cache\File\FileCache' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Router\UrlGeneratorInterface' => [...], 'Yiisoft\Aliases\Aliases' => [...], 'Yiisoft\Cache\CacheInterface' => 'Yiisoft\\Cache\\Cache', 'Psr\SimpleCache\CacheInterface' => 'Yiisoft\\Cache\\ArrayCache', 'Yiisoft\Log\Target\File\FileRotatorInterface' => [...], 'Yiisoft\Log\Target\File\FileTarget' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Router\RouteCollectorInterface' => 'Yiisoft\\Router\\RouteCollector', 'Yiisoft\Router\CurrentRoute' => [...], 'Yiisoft\View\View' => [...], 'Yiisoft\Yii\Debug\Collector\ContainerProxyConfig' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Yii\Debug\Collector\FilesystemStreamCollector' => [...], 'Yiisoft\Yii\Debug\Storage\StorageInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Profiler\ProfilerInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Profiler\Target\LogTarget' => [...], 'Yiisoft\Profiler\Target\FileTarget' => [...], 'Yiisoft\Validator\ValidatorInterface' => [...], 'Yiisoft\Validator\RuleHandlerResolverInterface' => 'Yiisoft\\Validator\\RuleHandlerResolver\\SimpleRuleHandlerContainer', 'yii.validator.categorySource' => [...], 'Yiisoft\Yii\Queue\Worker\Worker' => [...], 'Yiisoft\Yii\Queue\Worker\WorkerInterface' => 'Yiisoft\\Yii\\Queue\\Worker\\Worker', 'Yiisoft\Yii\Queue\Cli\LoopInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'Yiisoft\Yii\Queue\QueueFactoryInterface' => 'Yiisoft\\Yii\\Queue\\QueueFactory', 'Yiisoft\Yii\Queue\QueueFactory' => [...], 'Yiisoft\Yii\Queue\QueueInterface' => 'Yiisoft\\Yii\\Queue\\Queue', 'Yiisoft\Yii\Queue\Middleware\Push\MiddlewareFactoryPushInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\Push\\MiddlewareFactoryPush', 'Yiisoft\Yii\Queue\Middleware\Consume\MiddlewareFactoryConsumeInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\Consume\\MiddlewareFactoryConsume', 'Yiisoft\Yii\Queue\Middleware\FailureHandling\MiddlewareFactoryFailureInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\FailureHandling\\MiddlewareFactoryFailure', 'Yiisoft\Yii\Queue\Middleware\Push\PushMiddlewareDispatcher' => [...], 'Yiisoft\Yii\Queue\Middleware\Consume\ConsumeMiddlewareDispatcher' => [...], 'Yiisoft\Yii\Queue\Middleware\FailureHandling\FailureMiddlewareDispatcher' => [...], 'Yiisoft\Translator\TranslatorInterface' => [...], 'Psr\EventDispatcher\EventDispatcherInterface' => 'Yiisoft\\EventDispatcher\\Dispatcher\\Dispatcher', 'Psr\EventDispatcher\ListenerProviderInterface' => 'Yiisoft\\EventDispatcher\\Provider\\Provider', 'App\ApplicationParameters' => [...], 'Yiisoft\I18n\Locale' => [...], 'Psr\Log\LoggerInterface' => [...], 'Yiisoft\Router\RouteCollectionInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'translation.app' => [...], 'Yiisoft\Config\ConfigInterface' => class Yiisoft\Config\Config { ... }]; private array $providers = []; private array $tags = []; private bool $validate = TRUE; private array $delegates = []; private bool $useStrictMode = FALSE }) /var/www/yii3/vendor/yiisoft/yii-runner/src/ApplicationRunner.php:198
PHP   7. Yiisoft\Di\Container->addDefinitions($config = ['Yiisoft\Yii\Debug\Debugger' => ['__construct()' => [...]], 'Symfony\Component\Console\CommandLoader\CommandLoaderInterface' => ['class' => 'Yiisoft\\Yii\\Console\\CommandLoader', '__construct()' => [...]], 'Yiisoft\Yii\Console\Command\Serve' => ['class' => 'Yiisoft\\Yii\\Console\\Command\\Serve', '__construct()' => [...]], 'Yiisoft\Yii\Console\Application' => ['__construct()' => [...], 'setCommandLoader()' => [...], 'setDispatcher()' => [...], 'setAutoExit()' => [...], 'addOptions()' => [...]], 'Yiisoft\EventDispatcher\Provider\ListenerCollection' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Cache\File\FileCache' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Router\UrlGeneratorInterface' => ['class' => 'Yiisoft\\Router\\FastRoute\\UrlGenerator', 'setEncodeRaw()' => [...], 'reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Yiisoft\Aliases\Aliases' => ['__construct()' => [...]], 'Yiisoft\Cache\CacheInterface' => 'Yiisoft\\Cache\\Cache', 'Psr\SimpleCache\CacheInterface' => 'Yiisoft\\Cache\\ArrayCache', 'Yiisoft\Log\Target\File\FileRotatorInterface' => ['class' => 'Yiisoft\\Log\\Target\\File\\FileRotator', '__construct()' => [...]], 'Yiisoft\Log\Target\File\FileTarget' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Router\RouteCollectorInterface' => 'Yiisoft\\Router\\RouteCollector', 'Yiisoft\Router\CurrentRoute' => ['reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Yiisoft\View\View' => ['__construct()' => [...], 'setParameters()' => [...], 'reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Yiisoft\Yii\Debug\Collector\ContainerProxyConfig' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Yii\Debug\Collector\FilesystemStreamCollector' => ['__construct()' => [...]], 'Yiisoft\Yii\Debug\Storage\StorageInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Profiler\ProfilerInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'Yiisoft\Profiler\Target\LogTarget' => ['definition' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Yiisoft\Profiler\Target\FileTarget' => ['definition' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Yiisoft\Validator\ValidatorInterface' => ['class' => 'Yiisoft\\Validator\\Validator', '__construct()' => [...]], 'Yiisoft\Validator\RuleHandlerResolverInterface' => 'Yiisoft\\Validator\\RuleHandlerResolver\\SimpleRuleHandlerContainer', 'yii.validator.categorySource' => ['definition' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'tags' => [...]], 'Yiisoft\Yii\Queue\Worker\Worker' => ['class' => 'Yiisoft\\Yii\\Queue\\Worker\\Worker', '__construct()' => [...]], 'Yiisoft\Yii\Queue\Worker\WorkerInterface' => 'Yiisoft\\Yii\\Queue\\Worker\\Worker', 'Yiisoft\Yii\Queue\Cli\LoopInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $parameter = [...] }, 'Yiisoft\Yii\Queue\QueueFactoryInterface' => 'Yiisoft\\Yii\\Queue\\QueueFactory', 'Yiisoft\Yii\Queue\QueueFactory' => ['__construct()' => [...]], 'Yiisoft\Yii\Queue\QueueInterface' => 'Yiisoft\\Yii\\Queue\\Queue', 'Yiisoft\Yii\Queue\Middleware\Push\MiddlewareFactoryPushInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\Push\\MiddlewareFactoryPush', 'Yiisoft\Yii\Queue\Middleware\Consume\MiddlewareFactoryConsumeInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\Consume\\MiddlewareFactoryConsume', 'Yiisoft\Yii\Queue\Middleware\FailureHandling\MiddlewareFactoryFailureInterface' => 'Yiisoft\\Yii\\Queue\\Middleware\\FailureHandling\\MiddlewareFactoryFailure', 'Yiisoft\Yii\Queue\Middleware\Push\PushMiddlewareDispatcher' => ['__construct()' => [...]], 'Yiisoft\Yii\Queue\Middleware\Consume\ConsumeMiddlewareDispatcher' => ['__construct()' => [...]], 'Yiisoft\Yii\Queue\Middleware\FailureHandling\FailureMiddlewareDispatcher' => ['__construct()' => [...]], 'Yiisoft\Translator\TranslatorInterface' => ['class' => 'Yiisoft\\Translator\\Translator', '__construct()' => [...], 'addCategorySources()' => [...], 'reset' => class Closure { virtual $closure = "$this->{closure}", ... }], 'Psr\EventDispatcher\EventDispatcherInterface' => 'Yiisoft\\EventDispatcher\\Dispatcher\\Dispatcher', 'Psr\EventDispatcher\ListenerProviderInterface' => 'Yiisoft\\EventDispatcher\\Provider\\Provider', 'App\ApplicationParameters' => ['class' => 'App\\ApplicationParameters', 'charset()' => [...], 'name()' => [...]], 'Yiisoft\I18n\Locale' => ['class' => 'Yiisoft\\I18n\\Locale', '__construct()' => [...]], 'Psr\Log\LoggerInterface' => ['class' => 'Yiisoft\\Log\\Logger', '__construct()' => [...]], 'Yiisoft\Router\RouteCollectionInterface' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", public $static = [...]; public $parameter = [...] }, 'translation.app' => ['definition' => class Closure { virtual $closure = "Yiisoft\Config\Config::{closure}", ... }, 'tags' => [...]], 'Yiisoft\Config\ConfigInterface' => class Yiisoft\Config\Config { private Yiisoft\Config\Merger $merger = class Yiisoft\Config\Merger { ... }; private Yiisoft\Config\FilesExtractor $filesExtractor = class Yiisoft\Config\FilesExtractor { ... }; private bool $isBuildingParams = FALSE; private array $build = [...]; private ?string $paramsGroup = 'params-console' }]) /var/www/yii3/vendor/yiisoft/di/src/Container.php:88
PHP   8. Yiisoft\Di\Container->addDefinition($id = 'Psr\\Log\\LoggerInterface', $definition = ['class' => 'Yiisoft\\Log\\Logger', '__construct()' => ['targets' => [...]]]) /var/www/yii3/vendor/yiisoft/di/src/Container.php:244
PHP   9. Yiisoft\Di\Container->validateDefinition($definition = ['class' => 'Yiisoft\\Log\\Logger', '__construct()' => ['targets' => [...]], 'methodsAndProperties' => [], 'isPreparedArrayDefinitionData' => TRUE], $id = 'Psr\\Log\\LoggerInterface') /var/www/yii3/vendor/yiisoft/di/src/Container.php:205
PHP  10. Yiisoft\Definitions\Helpers\DefinitionValidator::validate($definition = ['class' => 'Yiisoft\\Log\\Logger', '__construct()' => ['targets' => [...]]], $id = 'Psr\\Log\\LoggerInterface') /var/www/yii3/vendor/yiisoft/di/src/Container.php:320
PHP  11. Yiisoft\Definitions\Helpers\DefinitionValidator::validateArrayDefinition($definition = ['class' => 'Yiisoft\\Log\\Logger', '__construct()' => ['targets' => [...]]], $id = 'Psr\\Log\\LoggerInterface') /var/www/yii3/vendor/yiisoft/definitions/src/Helpers/DefinitionValidator.php:52
PHP  12. ReflectionClass->__construct($objectOrClass = 'Yiisoft\\Log\\Logger') /var/www/yii3/vendor/yiisoft/definitions/src/Helpers/DefinitionValidator.php:77
PHP  13. Composer\Autoload\ClassLoader->loadClass($class = 'Yiisoft\\Log\\Logger') /var/www/yii3/vendor/yiisoft/definitions/src/Helpers/DefinitionValidator.php:77
PHP  14. Composer\Autoload\includeFile($file = '/var/www/yii3/vendor/composer/../yiisoft/log/src/Logger.php') /var/www/yii3/vendor/composer/ClassLoader.php:428
PHP  15. include() /var/www/yii3/vendor/composer/ClassLoader.php:571
Script ./yii serve handling the serve event returned with error code 255


What do you get instead?

I using php 8.0 And problem solved

Additional info

Q A
Version 3
PHP version 8.1
Operating system ubuntu 20.04

Seems, you use PSR extension that contain old version of PSR logger interface. Yii app support psr/log version of ^2.0|^3.0 only.