mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-19 07:12:26 +02:00
N°5809 Update laminas/laminas-servicemanager from 3.16.0 to 3.22.1
This commit is contained in:
39
composer.lock
generated
39
composer.lock
generated
@@ -739,26 +739,26 @@
|
||||
},
|
||||
{
|
||||
"name": "laminas/laminas-servicemanager",
|
||||
"version": "3.16.0",
|
||||
"version": "3.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laminas/laminas-servicemanager.git",
|
||||
"reference": "863c66733740cd36ebf5e700f4258ef2c68a2a24"
|
||||
"reference": "de98d297d4743956a0558a6d71616979ff779328"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/863c66733740cd36ebf5e700f4258ef2c68a2a24",
|
||||
"reference": "863c66733740cd36ebf5e700f4258ef2c68a2a24",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/de98d297d4743956a0558a6d71616979ff779328",
|
||||
"reference": "de98d297d4743956a0558a6d71616979ff779328",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"laminas/laminas-stdlib": "^3.2.1",
|
||||
"php": "~7.4.0 || ~8.0.0 || ~8.1.0",
|
||||
"laminas/laminas-stdlib": "^3.17",
|
||||
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-psr": "*",
|
||||
"laminas/laminas-code": "<3.3.1",
|
||||
"laminas/laminas-code": "<4.10.0",
|
||||
"zendframework/zend-code": "<3.3.1",
|
||||
"zendframework/zend-servicemanager": "*"
|
||||
},
|
||||
@@ -769,20 +769,19 @@
|
||||
"container-interop/container-interop": "^1.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/package-versions-deprecated": "^1.0",
|
||||
"laminas/laminas-coding-standard": "~2.3.0",
|
||||
"laminas/laminas-container-config-test": "^0.7",
|
||||
"laminas/laminas-dependency-plugin": "^2.1.2",
|
||||
"mikey179/vfsstream": "^1.6.10@alpha",
|
||||
"ocramius/proxy-manager": "^2.11",
|
||||
"phpbench/phpbench": "^1.1",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5.5",
|
||||
"psalm/plugin-phpunit": "^0.17.0",
|
||||
"vimeo/psalm": "^4.8"
|
||||
"composer/package-versions-deprecated": "^1.11.99.5",
|
||||
"friendsofphp/proxy-manager-lts": "^1.0.14",
|
||||
"laminas/laminas-code": "^4.10.0",
|
||||
"laminas/laminas-coding-standard": "~2.5.0",
|
||||
"laminas/laminas-container-config-test": "^0.8",
|
||||
"mikey179/vfsstream": "^1.6.11",
|
||||
"phpbench/phpbench": "^1.2.9",
|
||||
"phpunit/phpunit": "^10.4",
|
||||
"psalm/plugin-phpunit": "^0.18.4",
|
||||
"vimeo/psalm": "^5.8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
"friendsofphp/proxy-manager-lts": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
},
|
||||
"bin": [
|
||||
"bin/generate-deps-for-config-factory",
|
||||
@@ -826,7 +825,7 @@
|
||||
"type": "community_bridge"
|
||||
}
|
||||
],
|
||||
"time": "2022-07-27T14:58:17+00:00"
|
||||
"time": "2023-10-24T11:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laminas/laminas-stdlib",
|
||||
|
||||
@@ -4,15 +4,16 @@
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../laminas/laminas-servicemanager/bin/generate-deps-for-config-factory) using ob_start to remove the shebang if present
|
||||
* to prevent the shebang from being output on PHP<8
|
||||
* This file includes the referenced bin path (../laminas/laminas-servicemanager/bin/generate-deps-for-config-factory)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$binPath = __DIR__ . "/" . '../laminas/laminas-servicemanager/bin/generate-deps-for-config-factory';
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
@@ -23,18 +24,17 @@ if (PHP_VERSION_ID < 80000) {
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of composer-bin-proxy:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 21);
|
||||
$opened_path = realpath($opened_path) ?: $opened_path;
|
||||
$this->handle = fopen($opened_path, $mode);
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
// remove all traces of this stream wrapper once it has been used
|
||||
stream_wrapper_unregister('composer-bin-proxy');
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
@@ -66,6 +66,16 @@ if (PHP_VERSION_ID < 80000) {
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
@@ -78,20 +88,32 @@ if (PHP_VERSION_ID < 80000) {
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return fstat($this->handle);
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('composer-bin-proxy', 'Composer\BinProxyWrapper')) {
|
||||
include("composer-bin-proxy://" . $binPath);
|
||||
exit(0);
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-deps-for-config-factory');
|
||||
}
|
||||
}
|
||||
|
||||
include $binPath;
|
||||
return include __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-deps-for-config-factory';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/../laminas/laminas-servicemanager/bin/generate-deps-for-config-factory
|
||||
SET BIN_TARGET=%~dp0/generate-deps-for-config-factory
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
|
||||
@@ -4,15 +4,16 @@
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../laminas/laminas-servicemanager/bin/generate-factory-for-class) using ob_start to remove the shebang if present
|
||||
* to prevent the shebang from being output on PHP<8
|
||||
* This file includes the referenced bin path (../laminas/laminas-servicemanager/bin/generate-factory-for-class)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$binPath = __DIR__ . "/" . '../laminas/laminas-servicemanager/bin/generate-factory-for-class';
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
@@ -23,18 +24,17 @@ if (PHP_VERSION_ID < 80000) {
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of composer-bin-proxy:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 21);
|
||||
$opened_path = realpath($opened_path) ?: $opened_path;
|
||||
$this->handle = fopen($opened_path, $mode);
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
// remove all traces of this stream wrapper once it has been used
|
||||
stream_wrapper_unregister('composer-bin-proxy');
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
@@ -66,6 +66,16 @@ if (PHP_VERSION_ID < 80000) {
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
@@ -78,20 +88,32 @@ if (PHP_VERSION_ID < 80000) {
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return fstat($this->handle);
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('composer-bin-proxy', 'Composer\BinProxyWrapper')) {
|
||||
include("composer-bin-proxy://" . $binPath);
|
||||
exit(0);
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-factory-for-class');
|
||||
}
|
||||
}
|
||||
|
||||
include $binPath;
|
||||
return include __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-factory-for-class';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/../laminas/laminas-servicemanager/bin/generate-factory-for-class
|
||||
SET BIN_TARGET=%~dp0/generate-factory-for-class
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
|
||||
@@ -899,6 +899,7 @@ return array(
|
||||
'Laminas\\ServiceManager\\Proxy\\LazyServiceFactory' => $vendorDir . '/laminas/laminas-servicemanager/src/Proxy/LazyServiceFactory.php',
|
||||
'Laminas\\ServiceManager\\ServiceLocatorInterface' => $vendorDir . '/laminas/laminas-servicemanager/src/ServiceLocatorInterface.php',
|
||||
'Laminas\\ServiceManager\\ServiceManager' => $vendorDir . '/laminas/laminas-servicemanager/src/ServiceManager.php',
|
||||
'Laminas\\ServiceManager\\Test\\CommonPluginManagerTrait' => $vendorDir . '/laminas/laminas-servicemanager/src/Test/CommonPluginManagerTrait.php',
|
||||
'Laminas\\ServiceManager\\Tool\\ConfigDumper' => $vendorDir . '/laminas/laminas-servicemanager/src/Tool/ConfigDumper.php',
|
||||
'Laminas\\ServiceManager\\Tool\\ConfigDumperCommand' => $vendorDir . '/laminas/laminas-servicemanager/src/Tool/ConfigDumperCommand.php',
|
||||
'Laminas\\ServiceManager\\Tool\\FactoryCreator' => $vendorDir . '/laminas/laminas-servicemanager/src/Tool/FactoryCreator.php',
|
||||
|
||||
@@ -1274,6 +1274,7 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
|
||||
'Laminas\\ServiceManager\\Proxy\\LazyServiceFactory' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/Proxy/LazyServiceFactory.php',
|
||||
'Laminas\\ServiceManager\\ServiceLocatorInterface' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/ServiceLocatorInterface.php',
|
||||
'Laminas\\ServiceManager\\ServiceManager' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/ServiceManager.php',
|
||||
'Laminas\\ServiceManager\\Test\\CommonPluginManagerTrait' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/Test/CommonPluginManagerTrait.php',
|
||||
'Laminas\\ServiceManager\\Tool\\ConfigDumper' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/Tool/ConfigDumper.php',
|
||||
'Laminas\\ServiceManager\\Tool\\ConfigDumperCommand' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/Tool/ConfigDumperCommand.php',
|
||||
'Laminas\\ServiceManager\\Tool\\FactoryCreator' => __DIR__ . '/..' . '/laminas/laminas-servicemanager/src/Tool/FactoryCreator.php',
|
||||
|
||||
@@ -760,27 +760,27 @@
|
||||
},
|
||||
{
|
||||
"name": "laminas/laminas-servicemanager",
|
||||
"version": "3.16.0",
|
||||
"version_normalized": "3.16.0.0",
|
||||
"version": "3.22.1",
|
||||
"version_normalized": "3.22.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laminas/laminas-servicemanager.git",
|
||||
"reference": "863c66733740cd36ebf5e700f4258ef2c68a2a24"
|
||||
"reference": "de98d297d4743956a0558a6d71616979ff779328"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/863c66733740cd36ebf5e700f4258ef2c68a2a24",
|
||||
"reference": "863c66733740cd36ebf5e700f4258ef2c68a2a24",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/de98d297d4743956a0558a6d71616979ff779328",
|
||||
"reference": "de98d297d4743956a0558a6d71616979ff779328",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"laminas/laminas-stdlib": "^3.2.1",
|
||||
"php": "~7.4.0 || ~8.0.0 || ~8.1.0",
|
||||
"laminas/laminas-stdlib": "^3.17",
|
||||
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-psr": "*",
|
||||
"laminas/laminas-code": "<3.3.1",
|
||||
"laminas/laminas-code": "<4.10.0",
|
||||
"zendframework/zend-code": "<3.3.1",
|
||||
"zendframework/zend-servicemanager": "*"
|
||||
},
|
||||
@@ -791,22 +791,21 @@
|
||||
"container-interop/container-interop": "^1.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/package-versions-deprecated": "^1.0",
|
||||
"laminas/laminas-coding-standard": "~2.3.0",
|
||||
"laminas/laminas-container-config-test": "^0.7",
|
||||
"laminas/laminas-dependency-plugin": "^2.1.2",
|
||||
"mikey179/vfsstream": "^1.6.10@alpha",
|
||||
"ocramius/proxy-manager": "^2.11",
|
||||
"phpbench/phpbench": "^1.1",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5.5",
|
||||
"psalm/plugin-phpunit": "^0.17.0",
|
||||
"vimeo/psalm": "^4.8"
|
||||
"composer/package-versions-deprecated": "^1.11.99.5",
|
||||
"friendsofphp/proxy-manager-lts": "^1.0.14",
|
||||
"laminas/laminas-code": "^4.10.0",
|
||||
"laminas/laminas-coding-standard": "~2.5.0",
|
||||
"laminas/laminas-container-config-test": "^0.8",
|
||||
"mikey179/vfsstream": "^1.6.11",
|
||||
"phpbench/phpbench": "^1.2.9",
|
||||
"phpunit/phpunit": "^10.4",
|
||||
"psalm/plugin-phpunit": "^0.18.4",
|
||||
"vimeo/psalm": "^5.8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
"friendsofphp/proxy-manager-lts": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
},
|
||||
"time": "2022-07-27T14:58:17+00:00",
|
||||
"time": "2023-10-24T11:19:47+00:00",
|
||||
"bin": [
|
||||
"bin/generate-deps-for-config-factory",
|
||||
"bin/generate-factory-for-class"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
'name' => 'combodo/itop',
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => '23a187a4582feb216abfcb822e06e2d9d1cf3705',
|
||||
'reference' => '1c7dbcb1e90113dbf3a3f61fdae6519e492f6d4f',
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
@@ -22,7 +22,7 @@
|
||||
'combodo/itop' => array(
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => '23a187a4582feb216abfcb822e06e2d9d1cf3705',
|
||||
'reference' => '1c7dbcb1e90113dbf3a3f61fdae6519e492f6d4f',
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
@@ -107,9 +107,9 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-servicemanager' => array(
|
||||
'pretty_version' => '3.16.0',
|
||||
'version' => '3.16.0.0',
|
||||
'reference' => '863c66733740cd36ebf5e700f4258ef2c68a2a24',
|
||||
'pretty_version' => '3.22.1',
|
||||
'version' => '3.22.1.0',
|
||||
'reference' => 'de98d297d4743956a0558a6d71616979ff779328',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-servicemanager',
|
||||
'aliases' => array(),
|
||||
@@ -241,8 +241,8 @@
|
||||
'psr/container-implementation' => array(
|
||||
'dev_requirement' => false,
|
||||
'provided' => array(
|
||||
0 => '^1.0',
|
||||
1 => '1.1|2.0',
|
||||
0 => '1.1|2.0',
|
||||
1 => '^1.0',
|
||||
),
|
||||
),
|
||||
'psr/event-dispatcher' => array(
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
[](https://shepherd.dev/github/laminas/laminas-servicemanager)
|
||||
|
||||
> ## 🇷🇺 Русским гражданам
|
||||
>
|
||||
>
|
||||
> Мы, участники Laminas, родились и живем в разных странах. У многих из нас есть друзья, родственники и коллеги как в России, так и в Украине. Некоторые из нас родились в России. Некоторые из нас живут в России. У некоторых бабушки и дедушки сражались с фашистами во Второй мировой войне. Здесь никто не поддерживает фашизм.
|
||||
>
|
||||
>
|
||||
> У одного из нас есть украинская родственница, которая спаслась из дома вместе с сыном. Поезд задержался из-за бомбежки на дороге впереди. У нас есть друзья, которые прячутся в бомбоубежищах. Мы с тревогой ждем весточки от них после воздушных налетов, которые беспорядочно наносят удары и попадают по больницам, школам, детским садам и домам. Мы не берем это из каких-либо СМИ. Мы наблюдаем это напрямую.
|
||||
>
|
||||
>
|
||||
> Вы доверяете нам достаточно, чтоб использовать наши программы, и мы просим вас довериться нам вновь. Мы нуждаемся в помощи. Выходите и протестуйте против этой бесполезной войны. Остановите кровопролитие. Скажите "Нет войне!"
|
||||
>
|
||||
>
|
||||
> ## 🇺🇸 To Citizens of Russia
|
||||
>
|
||||
>
|
||||
> We at Laminas come from all over the world. Many of us have friends, family and colleagues in both Russia and Ukraine. Some of us were born in Russia. Some of us currently live in Russia. Some have grandparents who fought Nazis in World War II. Nobody here supports fascism.
|
||||
>
|
||||
>
|
||||
> One team member has a Ukrainian relative who fled her home with her son. The train was delayed due to bombing on the road ahead. We have friends who are hiding in bomb shelters. We anxiously follow up on them after the air raids, which indiscriminately fire at hospitals, schools, kindergartens and houses. We're not taking this from any media. These are our actual experiences.
|
||||
>
|
||||
>
|
||||
> You trust us enough to use our software. We ask that you trust us to say the truth on this. We need your help. Go out and protest this unnecessary war. Stop the bloodshed. Say "stop the war!"
|
||||
|
||||
The Service Locator design pattern is implemented by the `Laminas\ServiceManager`
|
||||
|
||||
@@ -13,73 +13,76 @@
|
||||
],
|
||||
"homepage": "https://laminas.dev",
|
||||
"support": {
|
||||
"docs": "https://docs.laminas.dev/laminas-servicemanager/",
|
||||
"issues": "https://github.com/laminas/laminas-servicemanager/issues",
|
||||
"source": "https://github.com/laminas/laminas-servicemanager",
|
||||
"rss": "https://github.com/laminas/laminas-servicemanager/releases.atom",
|
||||
"forum": "https://discourse.laminas.dev",
|
||||
"chat": "https://laminas.dev/chat",
|
||||
"forum": "https://discourse.laminas.dev"
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.4.99"
|
||||
},
|
||||
"sort-packages": true,
|
||||
"allow-plugins": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": true,
|
||||
"composer/package-versions-deprecated": true,
|
||||
"laminas/laminas-dependency-plugin": true
|
||||
}
|
||||
"source": "https://github.com/laminas/laminas-servicemanager",
|
||||
"docs": "https://docs.laminas.dev/laminas-servicemanager/",
|
||||
"rss": "https://github.com/laminas/laminas-servicemanager/releases.atom"
|
||||
},
|
||||
"require": {
|
||||
"php": "~7.4.0 || ~8.0.0 || ~8.1.0",
|
||||
"laminas/laminas-stdlib": "^3.2.1",
|
||||
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
|
||||
"laminas/laminas-stdlib": "^3.17",
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/package-versions-deprecated": "^1.0",
|
||||
"laminas/laminas-coding-standard": "~2.3.0",
|
||||
"laminas/laminas-container-config-test": "^0.7",
|
||||
"laminas/laminas-dependency-plugin": "^2.1.2",
|
||||
"mikey179/vfsstream": "^1.6.10@alpha",
|
||||
"ocramius/proxy-manager": "^2.11",
|
||||
"phpbench/phpbench": "^1.1",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5.5",
|
||||
"psalm/plugin-phpunit": "^0.17.0",
|
||||
"vimeo/psalm": "^4.8"
|
||||
"composer/package-versions-deprecated": "^1.11.99.5",
|
||||
"friendsofphp/proxy-manager-lts": "^1.0.14",
|
||||
"laminas/laminas-code": "^4.10.0",
|
||||
"laminas/laminas-coding-standard": "~2.5.0",
|
||||
"laminas/laminas-container-config-test": "^0.8",
|
||||
"mikey179/vfsstream": "^1.6.11",
|
||||
"phpbench/phpbench": "^1.2.9",
|
||||
"phpunit/phpunit": "^10.4",
|
||||
"psalm/plugin-phpunit": "^0.18.4",
|
||||
"vimeo/psalm": "^5.8.0"
|
||||
},
|
||||
"replace": {
|
||||
"container-interop/container-interop": "^1.2.0"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-psr": "*",
|
||||
"laminas/laminas-code": "<4.10.0",
|
||||
"zendframework/zend-code": "<3.3.1",
|
||||
"zendframework/zend-servicemanager": "*"
|
||||
},
|
||||
"provide": {
|
||||
"psr/container-implementation": "^1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-psr": "*",
|
||||
"laminas/laminas-code": "<3.3.1",
|
||||
"zendframework/zend-code": "<3.3.1",
|
||||
"zendframework/zend-servicemanager": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
"friendsofphp/proxy-manager-lts": "ProxyManager ^2.1.1 to handle lazy initialization of services"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laminas\\ServiceManager\\": "src/"
|
||||
},
|
||||
"files": ["src/autoload.php"]
|
||||
"files": [
|
||||
"src/autoload.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"files": [
|
||||
"test/autoload.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"LaminasTest\\ServiceManager\\": "test/",
|
||||
"LaminasBench\\ServiceManager\\": "benchmarks/"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"test/autoload.php"
|
||||
]
|
||||
},
|
||||
"bin": [
|
||||
"bin/generate-deps-for-config-factory",
|
||||
"bin/generate-factory-for-class"
|
||||
],
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": true,
|
||||
"composer/package-versions-deprecated": true
|
||||
},
|
||||
"platform": {
|
||||
"php": "8.1.99"
|
||||
},
|
||||
"sort-packages": true
|
||||
},
|
||||
"scripts": {
|
||||
"benchmark": "phpbench run --revs=2 --iterations=2 --report=aggregate",
|
||||
"check": [
|
||||
@@ -88,11 +91,8 @@
|
||||
],
|
||||
"cs-check": "phpcs",
|
||||
"cs-fix": "phpcbf",
|
||||
"static-analysis": "psalm --shepherd --stats",
|
||||
"test": "phpunit --colors=always",
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml",
|
||||
"static-analysis" : "psalm --shepherd --stats"
|
||||
},
|
||||
"replace": {
|
||||
"container-interop/container-interop": "^1.2.0"
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||
}
|
||||
}
|
||||
|
||||
2020
lib/laminas/laminas-servicemanager/composer.lock
generated
2020
lib/laminas/laminas-servicemanager/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -36,9 +36,7 @@ final class ConfigAbstractFactory implements AbstractFactoryInterface
|
||||
return is_array($dependencies) && array_key_exists($requestedName, $dependencies);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
/** {@inheritDoc} */
|
||||
public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
|
||||
{
|
||||
if (! $container->has('config')) {
|
||||
|
||||
@@ -131,9 +131,7 @@ class ReflectionBasedAbstractFactory implements AbstractFactoryInterface
|
||||
return new $requestedName(...$parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
/** {@inheritDoc} */
|
||||
public function canCreate(ContainerInterface $container, $requestedName)
|
||||
{
|
||||
return class_exists($requestedName) && $this->canCallConstructor($requestedName);
|
||||
|
||||
@@ -9,7 +9,6 @@ use Laminas\ServiceManager\Exception\InvalidServiceException;
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
use function class_exists;
|
||||
use function get_class;
|
||||
use function gettype;
|
||||
use function is_object;
|
||||
use function method_exists;
|
||||
@@ -75,7 +74,7 @@ abstract class AbstractPluginManager extends ServiceManager implements PluginMan
|
||||
'%s expects a ConfigInterface or ContainerInterface instance as the first argument; received %s',
|
||||
self::class,
|
||||
is_object($configInstanceOrParentLocator)
|
||||
? get_class($configInstanceOrParentLocator)
|
||||
? $configInstanceOrParentLocator::class
|
||||
: gettype($configInstanceOrParentLocator)
|
||||
));
|
||||
}
|
||||
@@ -118,7 +117,6 @@ abstract class AbstractPluginManager extends ServiceManager implements PluginMan
|
||||
public function configure(array $config)
|
||||
{
|
||||
if (isset($config['services'])) {
|
||||
/** @psalm-suppress MixedAssignment */
|
||||
foreach ($config['services'] as $service) {
|
||||
$this->validate($service);
|
||||
}
|
||||
@@ -147,7 +145,7 @@ abstract class AbstractPluginManager extends ServiceManager implements PluginMan
|
||||
* @param class-string<InstanceType>|string $name Service name of plugin to retrieve.
|
||||
* @param null|array<mixed> $options Options to use when creating the instance.
|
||||
* @return mixed
|
||||
* @psalm-return ($name is class-string ? InstanceType : mixed)
|
||||
* @psalm-return ($name is class-string<InstanceType> ? InstanceType : mixed)
|
||||
* @throws Exception\ServiceNotFoundException If the manager does not have
|
||||
* a service definition for the instance, and the service is not
|
||||
* auto-invokable.
|
||||
@@ -178,7 +176,7 @@ abstract class AbstractPluginManager extends ServiceManager implements PluginMan
|
||||
*
|
||||
* @psalm-assert InstanceType $instance
|
||||
*/
|
||||
public function validate($instance)
|
||||
public function validate(mixed $instance)
|
||||
{
|
||||
if (method_exists($this, 'validatePlugin')) {
|
||||
trigger_error(sprintf(
|
||||
@@ -197,7 +195,7 @@ abstract class AbstractPluginManager extends ServiceManager implements PluginMan
|
||||
'Plugin manager "%s" expected an instance of type "%s", but "%s" was received',
|
||||
self::class,
|
||||
$this->instanceOf,
|
||||
is_object($instance) ? get_class($instance) : gettype($instance)
|
||||
is_object($instance) ? $instance::class : gettype($instance)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ use function array_keys;
|
||||
* These features are advanced, and not typically used. If you wish to use them,
|
||||
* you will need to require the laminas-stdlib package in your application.
|
||||
*
|
||||
* @deprecated Class will be removed as of v4.0
|
||||
*
|
||||
* @psalm-import-type ServiceManagerConfigurationType from ConfigInterface
|
||||
*/
|
||||
class Config implements ConfigInterface
|
||||
@@ -92,11 +94,9 @@ class Config implements ConfigInterface
|
||||
* @psalm-param ServiceManagerConfigurationType $a
|
||||
* @psalm-param ServiceManagerConfigurationType $b
|
||||
* @psalm-return ServiceManagerConfigurationType
|
||||
* @psalm-suppress MixedReturnTypeCoercion
|
||||
*/
|
||||
private function merge(array $a, array $b)
|
||||
{
|
||||
/** @psalm-suppress MixedReturnTypeCoercion */
|
||||
return ArrayUtils::merge($a, $b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ use ArrayAccess;
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
/**
|
||||
* @deprecated Interface will be removed as of v4.0
|
||||
*
|
||||
* @see ContainerInterface
|
||||
* @see ArrayAccess
|
||||
*
|
||||
@@ -26,7 +28,7 @@ use Psr\Container\ContainerInterface;
|
||||
* @psalm-type FactoriesConfigurationType = array<
|
||||
* string,
|
||||
* (class-string<Factory\FactoryInterface>|Factory\FactoryInterface)
|
||||
* |callable(ContainerInterface,string,array<mixed>|null):object
|
||||
* |callable(ContainerInterface,?string,?array<mixed>|null):object
|
||||
* >
|
||||
* @psalm-type InitializersConfigurationType = array<
|
||||
* array-key,
|
||||
@@ -48,7 +50,8 @@ use Psr\Container\ContainerInterface;
|
||||
* invokables?: array<string,string>,
|
||||
* lazy_services?: LazyServicesConfigurationType,
|
||||
* services?: array<string,object|array>,
|
||||
* shared?:array<string,bool>
|
||||
* shared?:array<string,bool>,
|
||||
* ...
|
||||
* }
|
||||
*/
|
||||
interface ConfigInterface
|
||||
|
||||
@@ -43,7 +43,7 @@ class CyclicAliasException extends InvalidArgumentException
|
||||
public static function fromAliasesMap(array $aliases)
|
||||
{
|
||||
$detectedCycles = array_filter(array_map(
|
||||
static fn($alias) => self::getCycleFor($aliases, $alias),
|
||||
static fn($alias): ?array => self::getCycleFor($aliases, $alias),
|
||||
array_keys($aliases)
|
||||
));
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ use InvalidArgumentException as SplInvalidArgumentException;
|
||||
use Laminas\ServiceManager\AbstractFactoryInterface;
|
||||
use Laminas\ServiceManager\Initializer\InitializerInterface;
|
||||
|
||||
use function get_class;
|
||||
use function gettype;
|
||||
use function is_object;
|
||||
use function sprintf;
|
||||
@@ -18,29 +17,23 @@ use function sprintf;
|
||||
*/
|
||||
class InvalidArgumentException extends SplInvalidArgumentException implements ExceptionInterface
|
||||
{
|
||||
/**
|
||||
* @param mixed $initializer
|
||||
*/
|
||||
public static function fromInvalidInitializer($initializer): self
|
||||
public static function fromInvalidInitializer(mixed $initializer): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'An invalid initializer was registered. Expected a callable or an'
|
||||
. ' instance of "%s"; received "%s"',
|
||||
InitializerInterface::class,
|
||||
is_object($initializer) ? get_class($initializer) : gettype($initializer)
|
||||
is_object($initializer) ? $initializer::class : gettype($initializer)
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $abstractFactory
|
||||
*/
|
||||
public static function fromInvalidAbstractFactory($abstractFactory): self
|
||||
public static function fromInvalidAbstractFactory(mixed $abstractFactory): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'An invalid abstract factory was registered. Expected an instance of or a valid'
|
||||
. ' class name resolving to an implementation of "%s", but "%s" was received.',
|
||||
AbstractFactoryInterface::class,
|
||||
is_object($abstractFactory) ? get_class($abstractFactory) : gettype($abstractFactory)
|
||||
is_object($abstractFactory) ? $abstractFactory::class : gettype($abstractFactory)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ interface DelegatorFactoryInterface
|
||||
/**
|
||||
* A factory that creates delegates of a given service
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $name
|
||||
* @psalm-param callable():mixed $callback
|
||||
* @param null|array $options
|
||||
* @param null|array<mixed> $options
|
||||
* @return object
|
||||
* @throws ServiceNotFoundException If unable to resolve the service.
|
||||
* @throws ServiceNotCreatedException If an exception is raised when creating a service.
|
||||
|
||||
@@ -19,9 +19,7 @@ use Psr\Container\ContainerInterface;
|
||||
*/
|
||||
final class InvokableFactory implements FactoryInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
/** {@inheritDoc} */
|
||||
public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
|
||||
{
|
||||
return null === $options ? new $requestedName() : new $requestedName($options);
|
||||
|
||||
@@ -29,8 +29,7 @@ interface InitializerInterface extends Initializer\InitializerInterface
|
||||
/**
|
||||
* Initialize
|
||||
*
|
||||
* @param mixed $instance
|
||||
* @return mixed
|
||||
*/
|
||||
public function initialize($instance, ServiceLocatorInterface $serviceLocator);
|
||||
public function initialize(mixed $instance, ServiceLocatorInterface $serviceLocator);
|
||||
}
|
||||
|
||||
@@ -19,12 +19,11 @@ interface PluginManagerInterface extends ServiceLocatorInterface
|
||||
/**
|
||||
* Validate an instance
|
||||
*
|
||||
* @param mixed $instance
|
||||
* @return void
|
||||
* @throws InvalidServiceException If created instance does not respect the
|
||||
* constraint on type imposed by the plugin manager.
|
||||
* @throws ContainerExceptionInterface If any other error occurs.
|
||||
* @psalm-assert InstanceType $instance
|
||||
*/
|
||||
public function validate($instance);
|
||||
public function validate(mixed $instance);
|
||||
}
|
||||
|
||||
@@ -14,26 +14,19 @@ use Psr\Container\ContainerInterface;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Delegator factory responsible of instantiating lazy loading value holder proxies of
|
||||
* Delegator factory responsible for instantiating lazy loading value holder proxies of
|
||||
* given services at runtime
|
||||
*
|
||||
* @link https://github.com/Ocramius/ProxyManager/blob/master/docs/lazy-loading-value-holder.md
|
||||
*/
|
||||
final class LazyServiceFactory implements DelegatorFactoryInterface
|
||||
{
|
||||
private LazyLoadingValueHolderFactory $proxyFactory;
|
||||
|
||||
/** @var array<string, class-string> map of service names to class names */
|
||||
private array $servicesMap;
|
||||
|
||||
/**
|
||||
* @param array<string, class-string> $servicesMap A map of service names to
|
||||
* class names of their respective classes
|
||||
*/
|
||||
public function __construct(LazyLoadingValueHolderFactory $proxyFactory, array $servicesMap)
|
||||
public function __construct(private LazyLoadingValueHolderFactory $proxyFactory, private array $servicesMap)
|
||||
{
|
||||
$this->proxyFactory = $proxyFactory;
|
||||
$this->servicesMap = $servicesMap;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -45,7 +38,7 @@ final class LazyServiceFactory implements DelegatorFactoryInterface
|
||||
public function __invoke(ContainerInterface $container, $name, callable $callback, ?array $options = null)
|
||||
{
|
||||
if (isset($this->servicesMap[$name])) {
|
||||
$initializer = function (&$wrappedInstance, LazyLoadingInterface $proxy) use ($callback) {
|
||||
$initializer = static function (&$wrappedInstance, LazyLoadingInterface $proxy) use ($callback): bool {
|
||||
$proxy->setProxyInitializer(null);
|
||||
$wrappedInstance = $callback();
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ interface ServiceLocatorInterface extends ContainerInterface
|
||||
* @param string|class-string<T> $name
|
||||
* @param null|array<mixed> $options
|
||||
* @return mixed
|
||||
* @psalm-return ($name is class-string ? T : mixed)
|
||||
* @psalm-return ($name is class-string<T> ? T : mixed)
|
||||
* @throws Exception\ServiceNotFoundException If no factory/abstract
|
||||
* factory could be found to create the instance.
|
||||
* @throws Exception\ServiceNotCreatedException If factory/delegator fails
|
||||
|
||||
@@ -24,7 +24,6 @@ use function array_intersect;
|
||||
use function array_key_exists;
|
||||
use function array_keys;
|
||||
use function class_exists;
|
||||
use function get_class;
|
||||
use function gettype;
|
||||
use function in_array;
|
||||
use function is_callable;
|
||||
@@ -54,13 +53,47 @@ use const E_USER_DEPRECATED;
|
||||
*
|
||||
* @see ConfigInterface
|
||||
*
|
||||
* @psalm-import-type ServiceManagerConfigurationType from ConfigInterface
|
||||
* @psalm-import-type AbstractFactoriesConfigurationType from ConfigInterface
|
||||
* @psalm-import-type DelegatorsConfigurationType from ConfigInterface
|
||||
* @psalm-import-type FactoriesConfigurationType from ConfigInterface
|
||||
* @psalm-import-type InitializersConfigurationType from ConfigInterface
|
||||
* @psalm-import-type LazyServicesConfigurationType from ConfigInterface
|
||||
* @psalm-type ServiceManagerConfiguration = array{shared_by_default?:bool}&ServiceManagerConfigurationType
|
||||
* @psalm-type AbstractFactoriesConfiguration = array<
|
||||
* array-key,
|
||||
* (class-string<Factory\AbstractFactoryInterface>|Factory\AbstractFactoryInterface)
|
||||
* >
|
||||
* @psalm-type DelegatorsConfiguration = array<
|
||||
* string,
|
||||
* array<
|
||||
* array-key,
|
||||
* (class-string<Factory\DelegatorFactoryInterface>|Factory\DelegatorFactoryInterface)
|
||||
* |callable(ContainerInterface,string,callable():object,array<mixed>|null):object
|
||||
* >
|
||||
* >
|
||||
* @psalm-type FactoriesConfiguration = array<
|
||||
* string,
|
||||
* (class-string<Factory\FactoryInterface>|Factory\FactoryInterface)
|
||||
* |callable(ContainerInterface,?string,?array<mixed>|null):object
|
||||
* >
|
||||
* @psalm-type InitializersConfiguration = array<
|
||||
* array-key,
|
||||
* (class-string<Initializer\InitializerInterface>|Initializer\InitializerInterface)
|
||||
* |callable(ContainerInterface,object):void
|
||||
* >
|
||||
* @psalm-type LazyServicesConfiguration = array{
|
||||
* class_map?:array<string,class-string>,
|
||||
* proxies_namespace?:non-empty-string,
|
||||
* proxies_target_dir?:non-empty-string,
|
||||
* write_proxy_files?:bool
|
||||
* }
|
||||
* @psalm-type ServiceManagerConfiguration = array{
|
||||
* abstract_factories?: AbstractFactoriesConfiguration,
|
||||
* aliases?: array<string,string>,
|
||||
* delegators?: DelegatorsConfiguration,
|
||||
* factories?: FactoriesConfiguration,
|
||||
* initializers?: InitializersConfiguration,
|
||||
* invokables?: array<string,string>,
|
||||
* lazy_services?: LazyServicesConfiguration,
|
||||
* services?: array<string,object|array<mixed>>,
|
||||
* shared?:array<string,bool>,
|
||||
* shared_by_default?:bool,
|
||||
* ...
|
||||
* }
|
||||
*/
|
||||
class ServiceManager implements ServiceLocatorInterface
|
||||
{
|
||||
@@ -88,7 +121,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
|
||||
/**
|
||||
* @var string[][]|Factory\DelegatorFactoryInterface[][]
|
||||
* @psalm-var DelegatorsConfigurationType
|
||||
* @psalm-var DelegatorsConfiguration
|
||||
*/
|
||||
protected $delegators = [];
|
||||
|
||||
@@ -96,19 +129,19 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
* A list of factories (either as string name or callable)
|
||||
*
|
||||
* @var string[]|callable[]
|
||||
* @psalm-var FactoriesConfigurationType
|
||||
* @psalm-var FactoriesConfiguration
|
||||
*/
|
||||
protected $factories = [];
|
||||
|
||||
/**
|
||||
* @var Initializer\InitializerInterface[]|callable[]
|
||||
* @psalm-var InitializersConfigurationType
|
||||
* @psalm-var InitializersConfiguration
|
||||
*/
|
||||
protected $initializers = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @psalm-var LazyServicesConfigurationType
|
||||
* @psalm-var LazyServicesConfiguration
|
||||
*/
|
||||
protected $lazyServices = [];
|
||||
|
||||
@@ -158,7 +191,6 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
* See {@see \Laminas\ServiceManager\ServiceManager::configure()} for details
|
||||
* on what $config accepts.
|
||||
*
|
||||
* @param array $config
|
||||
* @psalm-param ServiceManagerConfiguration $config
|
||||
*/
|
||||
public function __construct(array $config = [])
|
||||
@@ -186,9 +218,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
return $this->creationContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
/** {@inheritDoc} */
|
||||
public function get($name)
|
||||
{
|
||||
// We start by checking if we have cached the requested service;
|
||||
@@ -247,9 +277,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
/** {@inheritDoc} */
|
||||
public function build($name, ?array $options = null)
|
||||
{
|
||||
// We never cache when using "build".
|
||||
@@ -290,7 +318,6 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @psalm-param ServiceManagerConfiguration $config
|
||||
* @return self
|
||||
* @throws ContainerModificationsNotAllowedException If the allow
|
||||
@@ -507,7 +534,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
/**
|
||||
* Instantiate initializers for to avoid checks during service construction.
|
||||
*
|
||||
* @psalm-param InitializersConfigurationType $initializers
|
||||
* @psalm-param InitializersConfiguration $initializers
|
||||
*/
|
||||
private function resolveInitializers(array $initializers): void
|
||||
{
|
||||
@@ -684,8 +711,8 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
* It works with strings and class instances.
|
||||
* It's not possible to de-duple anonymous functions
|
||||
*
|
||||
* @psalm-param DelegatorsConfigurationType $config
|
||||
* @psalm-return DelegatorsConfigurationType
|
||||
* @psalm-param DelegatorsConfiguration $config
|
||||
* @psalm-return DelegatorsConfiguration
|
||||
*/
|
||||
private function mergeDelegators(array $config): array
|
||||
{
|
||||
@@ -740,7 +767,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
* a given service name we do not have a service instance
|
||||
* in the cache OR override is explicitly allowed.
|
||||
*
|
||||
* @psalm-param ServiceManagerConfigurationType $config
|
||||
* @psalm-param ServiceManagerConfiguration $config
|
||||
* @throws ContainerModificationsNotAllowedException If any
|
||||
* service key is invalid.
|
||||
*/
|
||||
@@ -976,7 +1003,7 @@ class ServiceManager implements ServiceLocatorInterface
|
||||
}
|
||||
throw new ServiceNotCreatedException(sprintf(
|
||||
'A non-callable delegator, "%s", was provided; expected a callable or instance of "%s"',
|
||||
is_object($delegatorFactory) ? get_class($delegatorFactory) : gettype($delegatorFactory),
|
||||
is_object($delegatorFactory) ? $delegatorFactory::class : gettype($delegatorFactory),
|
||||
DelegatorFactoryInterface::class
|
||||
));
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory;
|
||||
use Laminas\ServiceManager\Exception\InvalidArgumentException;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use ReflectionClass;
|
||||
use ReflectionNamedType;
|
||||
use ReflectionParameter;
|
||||
use Traversable;
|
||||
|
||||
@@ -38,15 +39,11 @@ class ConfigDumper
|
||||
return %s;
|
||||
EOC;
|
||||
|
||||
private ?ContainerInterface $container;
|
||||
|
||||
public function __construct(?ContainerInterface $container = null)
|
||||
public function __construct(private ?ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @param string $className
|
||||
* @param bool $ignoreUnresolved
|
||||
* @return array
|
||||
@@ -83,7 +80,7 @@ EOC;
|
||||
|
||||
foreach ($constructorArguments as $constructorArgument) {
|
||||
$type = $constructorArgument->getType();
|
||||
$argumentType = null !== $type && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
$argumentType = $type instanceof ReflectionNamedType && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
|
||||
if ($argumentType === null) {
|
||||
if ($ignoreUnresolved) {
|
||||
@@ -126,7 +123,6 @@ EOC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @param string $className
|
||||
* @return array
|
||||
*/
|
||||
@@ -137,7 +133,6 @@ EOC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @return array
|
||||
* @throws InvalidArgumentException If ConfigAbstractFactory configuration
|
||||
* value is not an array.
|
||||
@@ -163,7 +158,6 @@ EOC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @param string $className
|
||||
* @return array
|
||||
*/
|
||||
@@ -184,7 +178,6 @@ EOC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $config
|
||||
* @return string
|
||||
*/
|
||||
public function dumpConfigFile(array $config)
|
||||
@@ -244,11 +237,10 @@ EOC;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $value
|
||||
* @param int $indentLevel
|
||||
* @return string
|
||||
*/
|
||||
private function createConfigValue($value, $indentLevel)
|
||||
private function createConfigValue(mixed $value, $indentLevel)
|
||||
{
|
||||
if (is_array($value) || $value instanceof Traversable) {
|
||||
return $this->prepareConfig($value, $indentLevel + 1);
|
||||
|
||||
@@ -68,15 +68,12 @@ EOH;
|
||||
|
||||
private ConsoleHelper $helper;
|
||||
|
||||
private string $scriptName;
|
||||
|
||||
/**
|
||||
* @param string $scriptName
|
||||
*/
|
||||
public function __construct($scriptName = self::DEFAULT_SCRIPT_NAME, ?ConsoleHelper $helper = null)
|
||||
public function __construct(private $scriptName = self::DEFAULT_SCRIPT_NAME, ?ConsoleHelper $helper = null)
|
||||
{
|
||||
$this->scriptName = $scriptName;
|
||||
$this->helper = $helper ?: new ConsoleHelper();
|
||||
$this->helper = $helper ?: new ConsoleHelper();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,7 +125,6 @@ EOH;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $args
|
||||
* @return object
|
||||
*/
|
||||
private function parseArgs(array $args)
|
||||
|
||||
@@ -8,6 +8,7 @@ use Laminas\ServiceManager\Exception\InvalidArgumentException;
|
||||
use Laminas\ServiceManager\Factory\FactoryInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use ReflectionClass;
|
||||
use ReflectionNamedType;
|
||||
use ReflectionParameter;
|
||||
|
||||
use function array_filter;
|
||||
@@ -99,13 +100,13 @@ class FactoryCreator
|
||||
|
||||
$constructorParameters = array_filter(
|
||||
$constructorParameters,
|
||||
function (ReflectionParameter $argument): bool {
|
||||
static function (ReflectionParameter $argument): bool {
|
||||
if ($argument->isOptional()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$type = $argument->getType();
|
||||
$class = null !== $type && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
$class = $type instanceof ReflectionNamedType && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
|
||||
if (null === $class) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
@@ -123,9 +124,9 @@ class FactoryCreator
|
||||
return [];
|
||||
}
|
||||
|
||||
return array_map(function (ReflectionParameter $parameter): ?string {
|
||||
return array_map(static function (ReflectionParameter $parameter): ?string {
|
||||
$type = $parameter->getType();
|
||||
return null !== $type && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
return $type instanceof ReflectionNamedType && ! $type->isBuiltin() ? $type->getName() : null;
|
||||
}, $constructorParameters);
|
||||
}
|
||||
|
||||
@@ -135,7 +136,7 @@ class FactoryCreator
|
||||
*/
|
||||
private function createArgumentString($className)
|
||||
{
|
||||
$arguments = array_map(fn(string $dependency): string
|
||||
$arguments = array_map(static fn(string $dependency): string
|
||||
=> sprintf('$container->get(\\%s::class)', $dependency), $this->getConstructorParameters($className));
|
||||
|
||||
switch (count($arguments)) {
|
||||
|
||||
@@ -45,15 +45,12 @@ EOH;
|
||||
|
||||
private ConsoleHelper $helper;
|
||||
|
||||
private string $scriptName;
|
||||
|
||||
/**
|
||||
* @param string $scriptName
|
||||
*/
|
||||
public function __construct($scriptName = self::DEFAULT_SCRIPT_NAME, ?ConsoleHelper $helper = null)
|
||||
public function __construct(private $scriptName = self::DEFAULT_SCRIPT_NAME, ?ConsoleHelper $helper = null)
|
||||
{
|
||||
$this->scriptName = $scriptName;
|
||||
$this->helper = $helper ?: new ConsoleHelper();
|
||||
$this->helper = $helper ?: new ConsoleHelper();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,7 +95,6 @@ EOH;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $args
|
||||
* @return ArgumentObject
|
||||
*/
|
||||
private function parseArgs(array $args)
|
||||
|
||||
Reference in New Issue
Block a user