diff --git a/composer.json b/composer.json index a2f2ed834bda0..f9d727edddcd5 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,6 @@ "colinmollenhour/credis": "1.11.1", "colinmollenhour/php-redis-session-abstract": "~1.4.0", "composer/composer": "^1.9 || ^2.0", - "magento/magento-composer-installer": ">=0.1.11", "elasticsearch/elasticsearch": "~7.11.0", "guzzlehttp/guzzle": "^6.3.3", "laminas/laminas-captcha": "^2.7.1", @@ -56,7 +55,8 @@ "laminas/laminas-mvc": "~2.7.0", "laminas/laminas-serializer": "^2.7.2", "laminas/laminas-server": "^2.6.1", - "laminas/laminas-servicemanager": "^2.7.8", + "laminas/laminas-servicemanager": "^3.5.1", + "laminas/laminas-servicemanager-di": "^1.2", "laminas/laminas-session": "^2.7.3", "laminas/laminas-soap": "^2.7.0", "laminas/laminas-stdlib": "^3.2.1", @@ -64,7 +64,11 @@ "laminas/laminas-uri": "^2.5.1", "laminas/laminas-validator": "^2.6.0", "laminas/laminas-view": "~2.11.2", + "league/flysystem": "^1.0", + "league/flysystem-aws-s3-v3": "^1.0", + "league/flysystem-cached-adapter": "^1.0", "magento/composer": "1.6.0", + "magento/magento-composer-installer": ">=0.1.11", "magento/zendframework1": "~1.14.2", "monolog/monolog": "^1.17", "paragonie/sodium_compat": "^1.6", @@ -79,10 +83,7 @@ "tedivm/jshrink": "~1.4.0", "tubalmartin/cssmin": "4.1.1", "webonyx/graphql-php": "^0.13.8", - "wikimedia/less.php": "^3.0.0", - "league/flysystem": "^1.0", - "league/flysystem-aws-s3-v3": "^1.0", - "league/flysystem-cached-adapter": "^1.0" + "wikimedia/less.php": "^3.0.0" }, "require-dev": { "allure-framework/allure-phpunit": "~1.2.0", diff --git a/composer.lock b/composer.lock index fcb4e7760d164..ce0490d22327f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "351f63d8396148e0126fc48ad6cf09c6", + "content-hash": "cc890b2c9eeb2932bdd5cffa1321058e", "packages": [ { "name": "aws/aws-sdk-php", @@ -2937,59 +2937,141 @@ }, { "name": "laminas/laminas-servicemanager", - "version": "2.7.11", + "version": "3.6.4", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "841abb656c6018afebeec1f355be438426d6a3dd" + "reference": "b1445e1a7077c21b0fad0974a1b7a11b9dbe0828" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/841abb656c6018afebeec1f355be438426d6a3dd", - "reference": "841abb656c6018afebeec1f355be438426d6a3dd", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/b1445e1a7077c21b0fad0974a1b7a11b9dbe0828", + "reference": "b1445e1a7077c21b0fad0974a1b7a11b9dbe0828", "shasum": "" }, "require": { - "container-interop/container-interop": "~1.0", + "container-interop/container-interop": "^1.2", + "laminas/laminas-stdlib": "^3.2.1", "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.5 || ^7.0" + "php": "^7.3 || ~8.0.0", + "psr/container": "^1.0" + }, + "conflict": { + "laminas/laminas-code": "<3.3.1", + "zendframework/zend-code": "<3.3.1" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" }, "replace": { - "zendframework/zend-servicemanager": "self.version" + "zendframework/zend-servicemanager": "^3.4.0" }, "require-dev": { - "athletic/athletic": "dev-master", - "fabpot/php-cs-fixer": "1.7.*", - "laminas/laminas-di": "~2.5", - "laminas/laminas-mvc": "~2.5", - "phpunit/phpunit": "~4.0" + "composer/package-versions-deprecated": "^1.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-container-config-test": "^0.3", + "laminas/laminas-dependency-plugin": "^2.1", + "mikey179/vfsstream": "^1.6.8", + "ocramius/proxy-manager": "^2.2.3", + "phpbench/phpbench": "^1.0.0-alpha3", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4" }, "suggest": { - "laminas/laminas-di": "Laminas\\Di component", - "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services" + "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" + }, + "bin": [ + "bin/generate-deps-for-config-factory", + "bin/generate-factory-for-class" + ], + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\ServiceManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Factory-Driven Dependency Injection Container", + "homepage": "https://laminas.dev", + "keywords": [ + "PSR-11", + "dependency-injection", + "di", + "dic", + "laminas", + "service-manager", + "servicemanager" + ], + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-02-03T08:44:41+00:00" + }, + { + "name": "laminas/laminas-servicemanager-di", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-servicemanager-di.git", + "reference": "abb2409f9dbf1b7c88f5dbe06bac726daa7c0325" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager-di/zipball/abb2409f9dbf1b7c88f5dbe06bac726daa7c0325", + "reference": "abb2409f9dbf1b7c88f5dbe06bac726daa7c0325", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-di": "^2.6", + "laminas/laminas-servicemanager": "^3.0.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-servicemanager": "<3.0" + }, + "replace": { + "zendframework/zend-servicemanager-di": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "3.0-dev" + "dev-master": "1.2.x-dev", + "dev-develop": "1.3.x-dev" + }, + "laminas": { + "component": "Laminas\\ServiceManager\\Di", + "config-provider": "Laminas\\ServiceManager\\Di\\ConfigProvider" } }, "autoload": { "psr-4": { - "Laminas\\ServiceManager\\": "src/" + "Laminas\\ServiceManager\\Di\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], + "description": "laminas-di integration for laminas-servicemanager", "homepage": "https://laminas.dev", "keywords": [ - "laminas", - "servicemanager" + "di", + "laminas" ], - "time": "2019-12-31T17:44:16+00:00" + "time": "2019-12-31T17:44:51+00:00" }, { "name": "laminas/laminas-session", @@ -3769,11 +3851,13 @@ "Magento\\Composer\\": "src" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "OSL-3.0", "AFL-3.0" ], - "description": "Magento composer library helps to instantiate Composer application and run composer commands." + "description": "Magento composer library helps to instantiate Composer application and run composer commands.", + "time": "2020-06-15T17:52:31+00:00" }, { "name": "magento/magento-composer-installer", diff --git a/setup/config/application.config.php b/setup/config/application.config.php index a293e20219b27..8596e1fc531a5 100644 --- a/setup/config/application.config.php +++ b/setup/config/application.config.php @@ -5,7 +5,7 @@ */ use Magento\Setup\Mvc\Bootstrap\InitParamListener; -use Laminas\Mvc\Service\DiAbstractServiceFactoryFactory; +use Laminas\ServiceManager\Di\DiAbstractServiceFactoryFactory; use Laminas\ServiceManager\Di\DiAbstractServiceFactory; return [ diff --git a/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php b/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php index 4c25753aa87ac..d256b277c52d1 100644 --- a/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php +++ b/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php @@ -3,25 +3,23 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ +declare(strict_types=1); + namespace Magento\Setup\Mvc\Bootstrap; -use Magento\Framework\App\Bootstrap as AppBootstrap; -use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\App\ObjectManager; -use Magento\Framework\App\Request\Http; -use Magento\Framework\App\State; -use Magento\Framework\Filesystem; -use Magento\Framework\Shell\ComplexParameter; +use Interop\Container\ContainerInterface; use Laminas\Console\Request; use Laminas\EventManager\EventManagerInterface; use Laminas\EventManager\ListenerAggregateInterface; use Laminas\Mvc\Application; use Laminas\Mvc\MvcEvent; -use Laminas\Router\Http\RouteMatch; -use Laminas\ServiceManager\FactoryInterface; -use Laminas\ServiceManager\ServiceLocatorInterface; +use Laminas\ServiceManager\Factory\FactoryInterface; use Laminas\Stdlib\RequestInterface; -use Laminas\Uri\UriInterface; +use Magento\Framework\App\Bootstrap as AppBootstrap; +use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\App\State; +use Magento\Framework\Filesystem; +use Magento\Framework\Shell\ComplexParameter; /** * A listener that injects relevant Magento initialization parameters and initializes filesystem @@ -52,7 +50,7 @@ class InitParamListener implements ListenerAggregateInterface, FactoryInterface * @param int $priority * @return void */ - public function attach(EventManagerInterface $events, $priority = 1) + public function attach(EventManagerInterface $events, $priority = 1): void { $sharedEvents = $events->getSharedManager(); $sharedEvents->attach( @@ -71,7 +69,7 @@ public function attach(EventManagerInterface $events, $priority = 1) * @param EventManagerInterface $events * @return void */ - public function detach(EventManagerInterface $events) + public function detach(EventManagerInterface $events): void { foreach ($this->listeners as $index => $listener) { $events->detach($listener); @@ -85,7 +83,7 @@ public function detach(EventManagerInterface $events) * @param MvcEvent $e * @return void */ - public function onBootstrap(MvcEvent $e) + public function onBootstrap(MvcEvent $e): void { /** @var Application $application */ $application = $e->getApplication(); @@ -97,14 +95,14 @@ public function onBootstrap(MvcEvent $e) } /** - * @inheritdoc - * - * @param ServiceLocatorInterface $serviceLocator - * @return mixed + * @param ContainerInterface $container + * @param string $requestedName + * @param array|null $options + * @return array|object */ - public function createService(ServiceLocatorInterface $serviceLocator) + public function __invoke(ContainerInterface $container, $requestedName, array $options = null): object { - return $this->extractInitParameters($serviceLocator->get('Application')); + return $this->extractInitParameters($container->get('Application')); } /** @@ -118,7 +116,7 @@ public function createService(ServiceLocatorInterface $serviceLocator) * @param Application $application * @return array */ - private function extractInitParameters(Application $application) + private function extractInitParameters(Application $application): array { $result = []; $config = $application->getConfig(); @@ -142,7 +140,7 @@ private function extractInitParameters(Application $application) * @param RequestInterface $request * @return array */ - private function extractFromCli(RequestInterface $request) + private function extractFromCli(RequestInterface $request): array { if (!($request instanceof Request)) { return []; @@ -164,7 +162,7 @@ private function extractFromCli(RequestInterface $request) * @return DirectoryList * @throws \LogicException */ - public function createDirectoryList($initParams) + public function createDirectoryList($initParams): DirectoryList { if (!isset($initParams[AppBootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS][DirectoryList::ROOT])) { throw new \LogicException('Magento root directory is not specified.'); @@ -180,7 +178,7 @@ public function createDirectoryList($initParams) * @param DirectoryList $directoryList * @return Filesystem */ - public function createFilesystem(DirectoryList $directoryList) + public function createFilesystem(DirectoryList $directoryList): Filesystem { $driverPool = new Filesystem\DriverPool(); return new Filesystem(