From 191bbb8dcf7502c1745afd9643e02c7d04dd7aa9 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 04:19:56 +0900 Subject: [PATCH 01/16] Remove `NamedArgumentConstructorAnnotation` implementation The `NamedArgumentConstructorAnnotation` interface has been removed from several annotation classes (`PagerViewOption`, `Read`, `AuraSqlQueryConfig`, and `Transactional`). This simplifies the class declarations while maintaining the `@NamedArgumentConstructor` functionality for Doctrine annotations. --- src/Annotation/AuraSqlQueryConfig.php | 3 ++- src/Annotation/PagerViewOption.php | 3 ++- src/Annotation/Read.php | 4 +++- src/Annotation/Transactional.php | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Annotation/AuraSqlQueryConfig.php b/src/Annotation/AuraSqlQueryConfig.php index 6352708..3a2d7a1 100644 --- a/src/Annotation/AuraSqlQueryConfig.php +++ b/src/Annotation/AuraSqlQueryConfig.php @@ -12,9 +12,10 @@ * @Annotation * @Target("METHOD") * @Qualifier + * @NamedArgumentConstructor */ #[Attribute(Attribute::TARGET_METHOD), Qualifier] -final class AuraSqlQueryConfig implements NamedArgumentConstructorAnnotation +final class AuraSqlQueryConfig { /** @var ?array */ public $value; diff --git a/src/Annotation/PagerViewOption.php b/src/Annotation/PagerViewOption.php index e2c1d5a..e890016 100644 --- a/src/Annotation/PagerViewOption.php +++ b/src/Annotation/PagerViewOption.php @@ -12,9 +12,10 @@ * @Annotation * @Target("METHOD") * @Qualifier + * @NamedArgumentConstructor */ #[Attribute(Attribute::TARGET_METHOD), Qualifier] -final class PagerViewOption implements NamedArgumentConstructorAnnotation +final class PagerViewOption { /** @var string */ public $value; diff --git a/src/Annotation/Read.php b/src/Annotation/Read.php index b22ef1b..5e55614 100644 --- a/src/Annotation/Read.php +++ b/src/Annotation/Read.php @@ -5,6 +5,7 @@ namespace Ray\AuraSqlModule\Annotation; use Attribute; +use Doctrine\Common\Annotations\Annotation\NamedArgumentConstructor; use Doctrine\Common\Annotations\NamedArgumentConstructorAnnotation; use Ray\Di\Di\Qualifier; @@ -12,9 +13,10 @@ * @Annotation * @Target("METHOD") * @Qualifier + * @NamedArgumentConstructor */ #[Attribute(Attribute::TARGET_METHOD), Qualifier] -final class Read implements NamedArgumentConstructorAnnotation +final class Read { /** @var string */ public $value; diff --git a/src/Annotation/Transactional.php b/src/Annotation/Transactional.php index 0e7aa1b..47892c0 100644 --- a/src/Annotation/Transactional.php +++ b/src/Annotation/Transactional.php @@ -5,14 +5,16 @@ namespace Ray\AuraSqlModule\Annotation; use Attribute; +use Doctrine\Common\Annotations\Annotation\NamedArgumentConstructor; use Doctrine\Common\Annotations\NamedArgumentConstructorAnnotation; /** * @Annotation * @Target("METHOD") + * @NamedArgumentConstructor */ #[Attribute(Attribute::TARGET_METHOD)] -final class Transactional implements NamedArgumentConstructorAnnotation +final class Transactional { /** * @var ?array From c252043693f90e998fbce574b8f7833293764911 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 04:20:22 +0900 Subject: [PATCH 02/16] Update supported PHP versions in CI workflow Extended the "old_stable" list to include PHP 8.3 and updated "current_stable" to PHP 8.4. This ensures the CI pipeline tests against the latest supported PHP versions. --- .github/workflows/continuous-integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 7a2889e..2e3bb5a 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -9,5 +9,5 @@ jobs: ci: uses: ray-di/.github/.github/workflows/continuous-integration.yml@v1 with: - old_stable: '["7.4", "8.0", "8.1", "8.2"]' - current_stable: 8.3 + old_stable: '["7.4", "8.0", "8.1", "8.2", "8.3"]' + current_stable: 8.4 From 1b5cf4f07b41d5e53c894a2399516aa87007ca49 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 04:21:23 +0900 Subject: [PATCH 03/16] Update composer.json to support aura/sql version 6.0 Expanded the version constraints for aura/sql to include 6.0, ensuring compatibility with the latest version. This change maintains support for existing versions while future-proofing the package dependencies. No other dependencies were modified. --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index fff8bec..7a1b5a6 100644 --- a/composer.json +++ b/composer.json @@ -12,8 +12,7 @@ "ext-pdo": "*", "ray/di": "^2.13.1", "ray/aop": "^2.10.4", - "aura/sql": "^4.0 || ^5.0", - "aura/sqlquery": "^2.7.1 || 3.x-dev", + "aura/sql": "^4.0 || ^5.0 || ^6.0", "pagerfanta/pagerfanta": "^3.5", "rize/uri-template": "^0.3.4 || ^0.4", "doctrine/annotations": "^1.11 || ^2.0", From 45a86c979ba940b4c27b2dc663c81cba8fc75687 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 04:21:38 +0900 Subject: [PATCH 04/16] Add aura/sqlquery dependency to composer.json Included aura/sqlquery version ^3.0 in project dependencies. This addition supports enhanced SQL query building for better maintainability and flexibility. No existing dependencies were modified or removed. --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7a1b5a6..75cfab5 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ "rize/uri-template": "^0.3.4 || ^0.4", "doctrine/annotations": "^1.11 || ^2.0", "psr/log": "^1.1 || ^2.0 || ^3.0", - "symfony/polyfill-php81": "^1.24" + "symfony/polyfill-php81": "^1.24", + "aura/sqlquery": "^3.0" }, "require-dev": { "phpunit/phpunit": "^9.5", From 3fafcf9ccdad4b2fea7658d04ba7812578e78ff8 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 09:21:44 +0900 Subject: [PATCH 05/16] Update PHP and dependencies to latest supported versions Updated PHP requirement to ^8.4, dropped older versions of `aura/sql`, and upgraded `phpunit/phpunit` to ^11.5.6. This ensures compatibility with the latest features and improvements in the dependencies. --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 73f9fa1..47dfad2 100644 --- a/composer.json +++ b/composer.json @@ -8,11 +8,11 @@ "description": "aura/sql module for Ray.Di", "license": "MIT", "require": { - "php": "^7.4 || ^8.0", + "php": "^8.4", "ext-pdo": "*", "ray/di": "^2.13.1", "ray/aop": "^2.10.4", - "aura/sql": "^4.0 || ^5.0 || ^6.0", + "aura/sql": "^6.0", "pagerfanta/pagerfanta": "^3.5", "rize/uri-template": "^0.3.4 || ^0.4", "doctrine/annotations": "^1.11 || ^2.0", @@ -21,7 +21,7 @@ "aura/sqlquery": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^11.5.6", "bamarni/composer-bin-plugin": "^1.4", "maglnet/composer-require-checker": "^3.0" From ebd20726220ed57d064b438a4db8c82f8cc4466d Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 09:23:17 +0900 Subject: [PATCH 06/16] Refactor for PHP8.4+ only Updated class properties to use `readonly` where applicable and replaced multi-line annotations with single-line equivalents. Simplified constructors by utilizing auto-property promotion, resulting in cleaner and more concise code. --- src/Annotation/AuraSqlQueryConfig.php | 6 +-- src/Annotation/PagerViewOption.php | 6 +-- src/Annotation/Read.php | 8 +--- src/Annotation/Transactional.php | 14 +++--- src/AuraSqlBaseModule.php | 7 +-- src/AuraSqlConnectionInterceptor.php | 24 ++++------ src/AuraSqlDeleteInject.php | 4 +- src/AuraSqlEnvModule.php | 43 ++++++------------ src/AuraSqlInject.php | 8 +--- src/AuraSqlInsertInject.php | 4 +- src/AuraSqlLocatorModule.php | 37 ++++++--------- src/AuraSqlMasterDbInterceptor.php | 7 +-- src/AuraSqlMasterModule.php | 31 ++++--------- src/AuraSqlModule.php | 45 ++++++------------- src/AuraSqlPagerInject.php | 4 +- src/AuraSqlProfileModule.php | 2 +- src/AuraSqlQueryDeleteProvider.php | 11 ++--- src/AuraSqlQueryInsertProvider.php | 11 ++--- src/AuraSqlQueryModule.php | 7 +-- src/AuraSqlQueryPagerInject.php | 4 +- src/AuraSqlQuerySelectProvider.php | 11 ++--- src/AuraSqlQueryUpdateProvider.php | 11 ++--- src/AuraSqlReplicationDbProvider.php | 12 ++--- src/AuraSqlReplicationModule.php | 15 +++---- src/AuraSqlSelectInject.php | 4 +- src/AuraSqlSlaveDbInterceptor.php | 7 +-- src/AuraSqlUpdateInject.php | 4 +- src/Connection.php | 26 +++-------- src/ConnectionLocatorFactory.php | 4 +- src/EnvConnection.php | 37 +++++---------- src/IsInMethodMatcher.php | 4 +- src/NamedExtendedPdoProvider.php | 10 ++--- src/NamedPdoEnvModule.php | 41 +++++------------ src/NamedPdoModule.php | 39 +++++----------- src/Pagerfanta/AuraSqlPager.php | 26 ++++------- src/Pagerfanta/AuraSqlPagerFactory.php | 7 +-- .../AuraSqlPagerFactoryInterface.php | 4 +- src/Pagerfanta/AuraSqlPagerInterface.php | 4 +- src/Pagerfanta/AuraSqlPagerModule.php | 2 +- src/Pagerfanta/AuraSqlQueryAdapter.php | 14 +++--- src/Pagerfanta/AuraSqlQueryPager.php | 22 +++------ src/Pagerfanta/AuraSqlQueryPagerFactory.php | 7 +-- src/Pagerfanta/AuraSqlQueryPagerInterface.php | 4 +- src/Pagerfanta/DefaultRouteGenerator.php | 7 +-- src/Pagerfanta/ExtendedPdoAdapter.php | 24 +++------- src/Pagerfanta/FetchAssoc.php | 8 +--- src/Pagerfanta/FetchEntity.php | 16 +++---- src/Pagerfanta/Page.php | 29 +++++------- src/ProfilerProvider.php | 5 +-- src/TransactionalInterceptor.php | 7 +-- src/TransactionalModule.php | 4 +- tests/AuraSqlModuleTest.php | 3 +- tests/AuraSqlProfileModuleTest.php | 6 +-- tests/AuraSqlQueryModuleTest.php | 1 + tests/AuraSqlReplicationModuleTest.php | 18 +++----- tests/Fake/FakeEntity.php | 14 +----- tests/Fake/FakeQueryInject.php | 5 +-- tests/NamedPdoModuleTest.php | 3 +- tests/Pagerfanta/AuraSqlPagerFactoryTest.php | 3 ++ tests/Pagerfanta/AuraSqlPagerModuleTest.php | 12 ++--- tests/Pagerfanta/AuraSqlPagerTest.php | 1 + tests/Pagerfanta/AuraSqlQueryAdapterTest.php | 2 +- .../AuraSqlQueryPagerModuleTest.php | 16 ++----- tests/Pagerfanta/AuraSqlQueryPagerTest.php | 3 ++ tests/Pagerfanta/ExtendedPdoAdapterTest.php | 10 +++-- tests/Pagerfanta/PdoMySqlAdapterTest.php | 4 ++ 66 files changed, 246 insertions(+), 553 deletions(-) diff --git a/src/Annotation/AuraSqlQueryConfig.php b/src/Annotation/AuraSqlQueryConfig.php index c13464f..bee11f5 100644 --- a/src/Annotation/AuraSqlQueryConfig.php +++ b/src/Annotation/AuraSqlQueryConfig.php @@ -17,14 +17,10 @@ #[Attribute(Attribute::TARGET_METHOD), Qualifier] final class AuraSqlQueryConfig { - /** @var ?array */ - public $value; - /** * @param array $value */ - public function __construct(?array $value = null) + public function __construct(public ?array $value = null) { - $this->value = $value; } } diff --git a/src/Annotation/PagerViewOption.php b/src/Annotation/PagerViewOption.php index 76b908c..60c7dea 100644 --- a/src/Annotation/PagerViewOption.php +++ b/src/Annotation/PagerViewOption.php @@ -17,11 +17,7 @@ #[Attribute(Attribute::TARGET_METHOD), Qualifier] final class PagerViewOption { - /** @var string */ - public $value; - - public function __construct(string $value) + public function __construct(public string $value) { - $this->value = $value; } } diff --git a/src/Annotation/Read.php b/src/Annotation/Read.php index 67a37f7..6a03f9b 100644 --- a/src/Annotation/Read.php +++ b/src/Annotation/Read.php @@ -14,14 +14,10 @@ * @Qualifier * @NamedArgumentConstructor */ -#[Attribute(Attribute::TARGET_METHOD), Qualifier] +#[Attribute(Attribute::TARGET_METHOD|Attribute::TARGET_PARAMETER), Qualifier] final class Read { - /** @var string */ - public $value; - - public function __construct(string $value) + public function __construct(public string $value = '') { - $this->value = $value; } } diff --git a/src/Annotation/Transactional.php b/src/Annotation/Transactional.php index df7d3b7..7442b95 100644 --- a/src/Annotation/Transactional.php +++ b/src/Annotation/Transactional.php @@ -15,17 +15,15 @@ #[Attribute(Attribute::TARGET_METHOD)] final class Transactional { - /** - * @var ?array - * @deprecated - */ - public $value; - /** * @param array $value */ - public function __construct(array $value = ['pdo']) + public function __construct( + /** + * @deprecated + */ + public array $value = ['pdo'] + ) { - $this->value = $value; } } diff --git a/src/AuraSqlBaseModule.php b/src/AuraSqlBaseModule.php index 7a731bb..d6a01b2 100644 --- a/src/AuraSqlBaseModule.php +++ b/src/AuraSqlBaseModule.php @@ -11,16 +11,13 @@ class AuraSqlBaseModule extends AbstractModule { - private string $dsn; - - public function __construct(string $dsnKey, ?AbstractModule $module = null) + public function __construct(private readonly string $dsn, ?AbstractModule $module = null) { - $this->dsn = $dsnKey; parent::__construct($module); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { diff --git a/src/AuraSqlConnectionInterceptor.php b/src/AuraSqlConnectionInterceptor.php index c335621..7db70b1 100644 --- a/src/AuraSqlConnectionInterceptor.php +++ b/src/AuraSqlConnectionInterceptor.php @@ -17,25 +17,17 @@ class AuraSqlConnectionInterceptor implements MethodInterceptor { public const PROP = 'pdo'; - private ConnectionLocatorInterface $connectionLocator; - - /** @var string[] */ - private array $readsMethods = []; - - /** - * @phpstan-param array $readMethods - * - * @Read("readMethods") - */ - #[Read('readMethods')] - public function __construct(ConnectionLocatorInterface $connectionLocator, array $readMethods) - { - $this->connectionLocator = $connectionLocator; - $this->readsMethods = $readMethods; + /** @phpstan-param array $readMethods */ + public function __construct( + private readonly ConnectionLocatorInterface $connectionLocator, + /** @var string[] */ + #[Read] + private readonly array $readsMethods + ) { } /** - * {@inheritdoc} + * {@inheritDoc} */ public function invoke(MethodInvocation $invocation) { diff --git a/src/AuraSqlDeleteInject.php b/src/AuraSqlDeleteInject.php index ffd2766..f21d160 100644 --- a/src/AuraSqlDeleteInject.php +++ b/src/AuraSqlDeleteInject.php @@ -12,9 +12,7 @@ trait AuraSqlDeleteInject /** @var DeleteInterface */ protected $delete; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlDelete(DeleteInterface $delete): void { diff --git a/src/AuraSqlEnvModule.php b/src/AuraSqlEnvModule.php index 93e7fed..0fcbdff 100644 --- a/src/AuraSqlEnvModule.php +++ b/src/AuraSqlEnvModule.php @@ -8,44 +8,27 @@ class AuraSqlEnvModule extends AbstractModule { - private string $dsn; - private string $username; - private string $password; - private string $slave; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; - /** - * @param string $dsnKey Env key for Data Source Name (DSN) - * @param string $usernameKey Env key for Username for the DSN string - * @param string $passwordKey Env key for Password for the DSN string - * @param string $slaveKey Env key for Comma separated slave host list - * @param array $options A key=>value array of driver-specific connection options - * @param array $queries Queries to execute after the connection. + * @param string $dsn Env key for Data Source Name (DSN) + * @param string $username Env key for Username for the DSN string + * @param string $password Env key for Password for the DSN string + * @param string $slave Env key for Comma separated slave host list + * @param array $options A key=>value array of driver-specific connection options + * @param array $queries Queries to execute after the connection. */ public function __construct( - string $dsnKey, - string $usernameKey = '', - string $passwordKey = '', - string $slaveKey = '', - array $options = [], - array $queries = [] + private readonly string $dsn, + private readonly string $username = '', + private readonly string $password = '', + private readonly string $slave = '', + private readonly array $options = [], + private readonly array $queries = [] ) { - $this->dsn = $dsnKey; - $this->username = $usernameKey; - $this->password = $passwordKey; - $this->slave = $slaveKey; - $this->options = $options; - $this->queries = $queries; parent::__construct(); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { diff --git a/src/AuraSqlInject.php b/src/AuraSqlInject.php index 4f408ea..b305af8 100644 --- a/src/AuraSqlInject.php +++ b/src/AuraSqlInject.php @@ -7,17 +7,13 @@ use Aura\Sql\ExtendedPdoInterface; use Ray\Di\Di\Inject; -/** - * @codeCoverageIgnore - */ +/** @codeCoverageIgnore */ trait AuraSqlInject { /** @var ExtendedPdoInterface */ protected $pdo; - /** - * @Inject() - */ + /** @Inject() */ #[Inject] public function setAuraSql(?ExtendedPdoInterface $pdo) { diff --git a/src/AuraSqlInsertInject.php b/src/AuraSqlInsertInject.php index 7528d73..74b256e 100644 --- a/src/AuraSqlInsertInject.php +++ b/src/AuraSqlInsertInject.php @@ -12,9 +12,7 @@ trait AuraSqlInsertInject /** @var InsertInterface */ protected $insert; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlInsert(InsertInterface $insert): void { diff --git a/src/AuraSqlLocatorModule.php b/src/AuraSqlLocatorModule.php index 81e7409..7baf66d 100644 --- a/src/AuraSqlLocatorModule.php +++ b/src/AuraSqlLocatorModule.php @@ -16,32 +16,23 @@ class AuraSqlLocatorModule extends AbstractModule { - private ConnectionLocatorInterface $connectionLocator; - - /** @var string[] */ - private array $readMethods; - - /** @var string[] */ - private array $writeMethods; - /** * @phpstan-param array $readMethods * @phpstan-param array $writeMethods */ public function __construct( - ConnectionLocatorInterface $connectionLocator, - array $readMethods = [], - array $writeMethods = [], + private readonly ConnectionLocatorInterface $connectionLocator, + /** @var string[] */ + private readonly array $readMethods = [], + /** @var string[] */ + private readonly array $writeMethods = [], ?AbstractModule $module = null ) { - $this->connectionLocator = $connectionLocator; - $this->readMethods = $readMethods; - $this->writeMethods = $writeMethods; parent::__construct($module); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -66,19 +57,17 @@ protected function installReadWriteConnection(): void $this->bindInterceptor( $this->matcher->any(), $this->matcher->annotatedWith(ReadOnlyConnection::class), - [AuraSqlSlaveDbInterceptor::class] + [AuraSqlSlaveDbInterceptor::class], ); // @WriteConnection $this->bindInterceptor( $this->matcher->any(), $this->matcher->annotatedWith(WriteConnection::class), - [AuraSqlMasterDbInterceptor::class] + [AuraSqlMasterDbInterceptor::class], ); } - /** - * @param string[] $methods - */ + /** @param string[] $methods */ private function installLocatorDb(array $methods): void { // locator db @@ -87,13 +76,13 @@ private function installLocatorDb(array $methods): void $this->matcher->logicalAnd( new IsInMethodMatcher($methods), $this->matcher->logicalNot( - $this->matcher->annotatedWith(ReadOnlyConnection::class) + $this->matcher->annotatedWith(ReadOnlyConnection::class), ), $this->matcher->logicalNot( - $this->matcher->annotatedWith(Connection::class) - ) + $this->matcher->annotatedWith(Connection::class), + ), ), - [AuraSqlConnectionInterceptor::class] + [AuraSqlConnectionInterceptor::class], ); } } diff --git a/src/AuraSqlMasterDbInterceptor.php b/src/AuraSqlMasterDbInterceptor.php index dbf4302..a1dfbaa 100644 --- a/src/AuraSqlMasterDbInterceptor.php +++ b/src/AuraSqlMasterDbInterceptor.php @@ -13,15 +13,12 @@ class AuraSqlMasterDbInterceptor implements MethodInterceptor { public const PROP = 'pdo'; - private ConnectionLocatorInterface $connectionLocator; - - public function __construct(ConnectionLocatorInterface $connectionLocator) + public function __construct(private readonly ConnectionLocatorInterface $connectionLocator) { - $this->connectionLocator = $connectionLocator; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function invoke(MethodInvocation $invocation) { diff --git a/src/AuraSqlMasterModule.php b/src/AuraSqlMasterModule.php index 27b7f9f..b2e96c4 100644 --- a/src/AuraSqlMasterModule.php +++ b/src/AuraSqlMasterModule.php @@ -11,44 +11,31 @@ class AuraSqlMasterModule extends AbstractModule { - private string $dsn; - private string $user; - private string $password; - - /** @var array */ - private array $options; - - /** @var array */ - private array $attributes; - /** * @phpstan-param array $options * @phpstan-param array $attributes */ public function __construct( - string $dsnKey, - string $user = '', - string $passwordKey = '', - array $options = [], - array $attributes = [], + private readonly string $dsn, + private readonly string $user = '', + private readonly string $password = '', + /** @var array */ + private readonly array $options = [], + /** @var array */ + private readonly array $attributes = [], ?AbstractModule $module = null ) { - $this->dsn = $dsnKey; - $this->user = $user; - $this->password = $passwordKey; - $this->options = $options; - $this->attributes = $attributes; parent::__construct($module); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { $this->bind(ExtendedPdoInterface::class)->toConstructor( ExtendedPdo::class, - 'dsn=pdo_dsn,username=pdo_user,password=pdo_pass,options=pdo_option,attributes=pdo_attributes' + 'dsn=pdo_dsn,username=pdo_user,password=pdo_pass,options=pdo_option,attributes=pdo_attributes', )->in(Scope::SINGLETON); $this->bind()->annotatedWith('pdo_dsn')->toInstance($this->dsn); $this->bind()->annotatedWith('pdo_user')->toInstance($this->user); diff --git a/src/AuraSqlModule.php b/src/AuraSqlModule.php index 5893395..269748e 100644 --- a/src/AuraSqlModule.php +++ b/src/AuraSqlModule.php @@ -13,44 +13,27 @@ class AuraSqlModule extends AbstractModule { public const PARSE_PDO_DSN_REGEX = '/(.*?):(?:(host|server)=.*?;)?(.*)/i'; - private string $dsn; - private string $user; - private string $password; - private string $slave; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; - /** - * @param string $dsnKey Data Source Name (DSN) - * @param string $user User name for the DSN string - * @param string $passwordKey Password for the DSN string - * @param string $slaveKey Comma separated slave host list - * @param array $options A key=>value array of driver-specific connection options + * @param string $dsn Data Source Name (DSN) + * @param string $user User name for the DSN string + * @param string $password Password for the DSN string + * @param string $slave Comma separated slave host list + * @param array $options A key=>value array of driver-specific connection options * @param array $queries */ public function __construct( - string $dsnKey, - string $user = '', - string $passwordKey = '', - string $slaveKey = '', - array $options = [], - array $queries = [] + private readonly string $dsn, + private readonly string $user = '', + private readonly string $password = '', + private readonly string $slave = '', + private readonly array $options = [], + private readonly array $queries = [] ) { - $this->dsn = $dsnKey; - $this->user = $user; - $this->password = $passwordKey; - $this->slave = $slaveKey; - $this->options = $options; - $this->queries = $queries; parent::__construct(); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -68,7 +51,7 @@ private function configureSingleDsn(): void $this->bind()->annotatedWith('pdo_queries')->toInstance($this->queries); $this->bind(ExtendedPdoInterface::class)->toConstructor( ExtendedPdo::class, - 'dsn=pdo_dsn,username=pdo_user,password=pdo_pass,options=pdo_options,queries=pdo_queries' + 'dsn=pdo_dsn,username=pdo_user,password=pdo_pass,options=pdo_options,queries=pdo_queries', )->in(Scope::SINGLETON); } @@ -80,7 +63,7 @@ private function configureMasterSlaveDsn(): void $this->password, $this->slave, $this->options, - $this->queries + $this->queries, ); $this->install(new AuraSqlReplicationModule($locator)); } diff --git a/src/AuraSqlPagerInject.php b/src/AuraSqlPagerInject.php index 6116496..6f95b1f 100644 --- a/src/AuraSqlPagerInject.php +++ b/src/AuraSqlPagerInject.php @@ -12,9 +12,7 @@ trait AuraSqlPagerInject /** @var AuraSqlPagerFactoryInterface */ protected $pagerFactory; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlPager(AuraSqlPagerFactoryInterface $pagerFactory): void { diff --git a/src/AuraSqlProfileModule.php b/src/AuraSqlProfileModule.php index 8b24a26..31cbbe0 100644 --- a/src/AuraSqlProfileModule.php +++ b/src/AuraSqlProfileModule.php @@ -10,7 +10,7 @@ class AuraSqlProfileModule extends AbstractModule { /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { diff --git a/src/AuraSqlQueryDeleteProvider.php b/src/AuraSqlQueryDeleteProvider.php index 36d33ca..90bd0ad 100644 --- a/src/AuraSqlQueryDeleteProvider.php +++ b/src/AuraSqlQueryDeleteProvider.php @@ -9,26 +9,21 @@ use Ray\AuraSqlModule\Annotation\AuraSqlQueryConfig; use Ray\Di\ProviderInterface; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class AuraSqlQueryDeleteProvider implements ProviderInterface { - private string $db; - /** * @param string $db The database type * * @AuraSqlQueryConfig */ #[AuraSqlQueryConfig] - public function __construct(string $db) + public function __construct(private readonly string $db) { - $this->db = $db; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): DeleteInterface { diff --git a/src/AuraSqlQueryInsertProvider.php b/src/AuraSqlQueryInsertProvider.php index dd5d82e..d8946c7 100644 --- a/src/AuraSqlQueryInsertProvider.php +++ b/src/AuraSqlQueryInsertProvider.php @@ -9,26 +9,21 @@ use Ray\AuraSqlModule\Annotation\AuraSqlQueryConfig; use Ray\Di\ProviderInterface; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class AuraSqlQueryInsertProvider implements ProviderInterface { - private string $db; - /** * @param string $db The database type * * @AuraSqlQueryConfig */ #[AuraSqlQueryConfig] - public function __construct(string $db) + public function __construct(private readonly string $db) { - $this->db = $db; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): InsertInterface { diff --git a/src/AuraSqlQueryModule.php b/src/AuraSqlQueryModule.php index 7b2f4f0..0e2961a 100644 --- a/src/AuraSqlQueryModule.php +++ b/src/AuraSqlQueryModule.php @@ -13,16 +13,13 @@ class AuraSqlQueryModule extends AbstractModule { - private string $db; - - public function __construct(string $db, ?AbstractModule $module = null) + public function __construct(private readonly string $db, ?AbstractModule $module = null) { - $this->db = $db; parent::__construct($module); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { diff --git a/src/AuraSqlQueryPagerInject.php b/src/AuraSqlQueryPagerInject.php index e0b08a2..30998e1 100644 --- a/src/AuraSqlQueryPagerInject.php +++ b/src/AuraSqlQueryPagerInject.php @@ -12,9 +12,7 @@ trait AuraSqlQueryPagerInject /** @var AuraSqlQueryPagerFactoryInterface */ protected $queryPagerFactory; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlQueryPager(AuraSqlQueryPagerFactoryInterface $queryPagerFactory): void { diff --git a/src/AuraSqlQuerySelectProvider.php b/src/AuraSqlQuerySelectProvider.php index c358b11..9371bb0 100644 --- a/src/AuraSqlQuerySelectProvider.php +++ b/src/AuraSqlQuerySelectProvider.php @@ -9,26 +9,21 @@ use Ray\AuraSqlModule\Annotation\AuraSqlQueryConfig; use Ray\Di\ProviderInterface; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class AuraSqlQuerySelectProvider implements ProviderInterface { - private string $db; - /** * @param string $db The database type * * @AuraSqlQueryConfig */ #[AuraSqlQueryConfig()] - public function __construct($db) + public function __construct(private readonly string $db) { - $this->db = $db; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): SelectInterface { diff --git a/src/AuraSqlQueryUpdateProvider.php b/src/AuraSqlQueryUpdateProvider.php index 9cd3cba..95af3a1 100644 --- a/src/AuraSqlQueryUpdateProvider.php +++ b/src/AuraSqlQueryUpdateProvider.php @@ -9,26 +9,21 @@ use Ray\AuraSqlModule\Annotation\AuraSqlQueryConfig; use Ray\Di\ProviderInterface; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class AuraSqlQueryUpdateProvider implements ProviderInterface { - private string $db; - /** * @param string $db The database type * * @AuraSqlQueryConfig */ #[AuraSqlQueryConfig] - public function __construct($db) + public function __construct(private readonly string $db) { - $this->db = $db; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): UpdateInterface { diff --git a/src/AuraSqlReplicationDbProvider.php b/src/AuraSqlReplicationDbProvider.php index b131c47..7abc89c 100644 --- a/src/AuraSqlReplicationDbProvider.php +++ b/src/AuraSqlReplicationDbProvider.php @@ -12,21 +12,17 @@ use function assert; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class AuraSqlReplicationDbProvider implements ProviderInterface, SetContextInterface { - private InjectorInterface $injector; private string $context = ''; - public function __construct(InjectorInterface $injector) + public function __construct(private readonly InjectorInterface $injector) { - $this->injector = $injector; } /** - * {@inheritdoc} + * {@inheritDoc} * * @param string $context */ @@ -36,7 +32,7 @@ public function setContext($context): void } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): ExtendedPdoInterface { diff --git a/src/AuraSqlReplicationModule.php b/src/AuraSqlReplicationModule.php index aaaa18e..d6a8a7d 100644 --- a/src/AuraSqlReplicationModule.php +++ b/src/AuraSqlReplicationModule.php @@ -13,21 +13,16 @@ class AuraSqlReplicationModule extends AbstractModule { - private ConnectionLocatorInterface $connectionLocator; - private string $qualifer; - public function __construct( - ConnectionLocatorInterface $connectionLocator, - string $qualifer = '', + private readonly ConnectionLocatorInterface $connectionLocator, + private readonly string $qualifer = '', ?AbstractModule $module = null ) { - $this->connectionLocator = $connectionLocator; - $this->qualifer = $qualifer; parent::__construct($module); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -51,13 +46,13 @@ protected function installReadWriteConnection(): void $this->bindInterceptor( $this->matcher->any(), $this->matcher->annotatedWith(ReadOnlyConnection::class), - [AuraSqlSlaveDbInterceptor::class] + [AuraSqlSlaveDbInterceptor::class], ); // @WriteConnection $this->bindInterceptor( $this->matcher->any(), $this->matcher->annotatedWith(WriteConnection::class), - [AuraSqlMasterDbInterceptor::class] + [AuraSqlMasterDbInterceptor::class], ); } } diff --git a/src/AuraSqlSelectInject.php b/src/AuraSqlSelectInject.php index c4ba419..1c019b9 100644 --- a/src/AuraSqlSelectInject.php +++ b/src/AuraSqlSelectInject.php @@ -12,9 +12,7 @@ trait AuraSqlSelectInject /** @var SelectInterface */ protected $select; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlSelect(SelectInterface $select): void { diff --git a/src/AuraSqlSlaveDbInterceptor.php b/src/AuraSqlSlaveDbInterceptor.php index e47447b..618b38c 100644 --- a/src/AuraSqlSlaveDbInterceptor.php +++ b/src/AuraSqlSlaveDbInterceptor.php @@ -16,15 +16,12 @@ class AuraSqlSlaveDbInterceptor implements MethodInterceptor */ public const PROP = 'pdo'; - private ConnectionLocatorInterface $connectionLocator; - - public function __construct(ConnectionLocatorInterface $connectionLocator) + public function __construct(private readonly ConnectionLocatorInterface $connectionLocator) { - $this->connectionLocator = $connectionLocator; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function invoke(MethodInvocation $invocation) { diff --git a/src/AuraSqlUpdateInject.php b/src/AuraSqlUpdateInject.php index 09328c4..787967d 100644 --- a/src/AuraSqlUpdateInject.php +++ b/src/AuraSqlUpdateInject.php @@ -12,9 +12,7 @@ trait AuraSqlUpdateInject /** @var UpdateInterface */ protected $update; - /** - * @Inject - */ + /** @Inject */ #[Inject] public function setAuraSqlUpdate(UpdateInterface $update): void { diff --git a/src/Connection.php b/src/Connection.php index 44edc7b..bbc8b0c 100644 --- a/src/Connection.php +++ b/src/Connection.php @@ -8,15 +8,6 @@ class Connection { - private string $dsn; - private string $username; - private string $password; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; private ?ExtendedPdo $pdo = null; /** @@ -24,17 +15,14 @@ class Connection * @phpstan-param array $queries */ public function __construct( - string $dsn, - string $username = '', - string $password = '', - array $options = [], - array $queries = [] + private readonly string $dsn, + private readonly string $username = '', + private readonly string $password = '', + /** @var array */ + private readonly array $options = [], + /** @var array */ + private readonly array $queries = [] ) { - $this->dsn = $dsn; - $this->username = $username; - $this->password = $password; - $this->options = $options; - $this->queries = $queries; } public function __invoke(): ExtendedPdo diff --git a/src/ConnectionLocatorFactory.php b/src/ConnectionLocatorFactory.php index 3dccf47..eea5d1c 100644 --- a/src/ConnectionLocatorFactory.php +++ b/src/ConnectionLocatorFactory.php @@ -12,9 +12,7 @@ final class ConnectionLocatorFactory { - /** - * @codeCoverageIgnore - */ + /** @codeCoverageIgnore */ private function __construct() { } diff --git a/src/EnvConnection.php b/src/EnvConnection.php index 06d3ab1..9121c38 100644 --- a/src/EnvConnection.php +++ b/src/EnvConnection.php @@ -14,38 +14,23 @@ final class EnvConnection { - private string $dsn; - private string $username; - private string $password; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; - /** @var array */ private static array $pdo = []; - private ?string $slave; /** * @phpstan-param array $options * @phpstan-param array $queries */ public function __construct( - string $dsn, - ?string $slave, - string $username = '', - string $password = '', - array $options = [], - array $queries = [] + private readonly string $dsn, + private readonly ?string $slave, + private readonly string $username = '', + private readonly string $password = '', + /** @var array */ + private readonly array $options = [], + /** @var array */ + private readonly array $queries = [] ) { - $this->dsn = $dsn; - $this->slave = $slave; - $this->username = $username; - $this->password = $password; - $this->options = $options; - $this->queries = $queries; } public function __invoke(): ExtendedPdo @@ -60,7 +45,7 @@ public function __invoke(): ExtendedPdo (string) getenv($this->username), (string) getenv($this->password), $this->options, - $this->queries + $this->queries, ); return self::$pdo[$dsn]; @@ -80,9 +65,7 @@ private function getDsn(): string return $this->changeHost((string) getenv($this->dsn), $slave); } - /** - * @psalm-pure - */ + /** @psalm-pure */ private function changeHost(string $dsn, string $host): string { preg_match(AuraSqlModule::PARSE_PDO_DSN_REGEX, $dsn, $parts); diff --git a/src/IsInMethodMatcher.php b/src/IsInMethodMatcher.php index 4f5a762..4a5c2d4 100644 --- a/src/IsInMethodMatcher.php +++ b/src/IsInMethodMatcher.php @@ -13,7 +13,7 @@ class IsInMethodMatcher extends AbstractMatcher { /** - * {@inheritdoc} + * {@inheritDoc} * * @phpstan-param ReflectionClass $class * @phpstan-param array $arguments @@ -28,7 +28,7 @@ public function matchesClass(ReflectionClass $class, array $arguments): bool } /** - * {@inheritdoc} + * {@inheritDoc} * * @phpstan-param array $arguments */ diff --git a/src/NamedExtendedPdoProvider.php b/src/NamedExtendedPdoProvider.php index e882dcc..d285b1d 100644 --- a/src/NamedExtendedPdoProvider.php +++ b/src/NamedExtendedPdoProvider.php @@ -11,13 +11,10 @@ use function assert; -/** - * @implements ProviderInterface - */ +/** @implements ProviderInterface */ class NamedExtendedPdoProvider implements ProviderInterface, SetContextInterface { - private InjectorInterface $injector; private string $context; /** @@ -28,13 +25,12 @@ public function setContext($context) $this->context = $context; } - public function __construct(InjectorInterface $injector) + public function __construct(private readonly InjectorInterface $injector) { - $this->injector = $injector; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function get(): ExtendedPdo { diff --git a/src/NamedPdoEnvModule.php b/src/NamedPdoEnvModule.php index 28ebc6a..2de5b8b 100644 --- a/src/NamedPdoEnvModule.php +++ b/src/NamedPdoEnvModule.php @@ -11,18 +11,6 @@ class NamedPdoEnvModule extends AbstractModule { public const PARSE_PDO_DSN_REGEX = '/(.*?)\:(host|server)=.*?;(.*)/i'; - private string $qualifer; - private string $dsn; - private string $username; - private string $password; - private string $slave; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; - /** * @param string $qualifer Qualifer for ExtendedPdoInterface * @param string $dsn Data Source Name (DSN) @@ -33,26 +21,19 @@ class NamedPdoEnvModule extends AbstractModule * @param array $queries Queries to execute after the connection. */ public function __construct( - string $qualifer, - string $dsn, - string $username = '', - string $password = '', - string $slave = '', - array $options = [], - array $queries = [] + private readonly string $qualifer, + private readonly string $dsn, + private readonly string $username = '', + private readonly string $password = '', + private readonly string $slave = '', + private readonly array $options = [], + private readonly array $queries = [] ) { - $this->qualifer = $qualifer; - $this->dsn = $dsn; - $this->username = $username; - $this->password = $password; - $this->slave = $slave; - $this->options = $options; - $this->queries = $queries; parent::__construct(); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -68,12 +49,12 @@ private function configureSingleDsn(): void $this->username, $this->password, $this->options, - $this->queries + $this->queries, ); $this->bind(EnvConnection::class)->annotatedWith($this->qualifer)->toInstance($connection); $this->bind(ExtendedPdoInterface::class)->annotatedWith($this->qualifer)->toProvider( NamedExtendedPdoProvider::class, - $this->qualifer + $this->qualifer, ); } @@ -85,7 +66,7 @@ private function configureMasterSlaveDsn(): void $this->password, $this->slave, $this->options, - $this->queries + $this->queries, ); $this->install(new AuraSqlReplicationModule($locator, $this->qualifer)); } diff --git a/src/NamedPdoModule.php b/src/NamedPdoModule.php index b547d2f..5e96102 100644 --- a/src/NamedPdoModule.php +++ b/src/NamedPdoModule.php @@ -13,18 +13,6 @@ class NamedPdoModule extends AbstractModule { public const PARSE_PDO_DSN_REGEX = '/(.*?)\:(host|server)=.*?;(.*)/i'; - private string $qualifer; - private string $dsn; - private string $username; - private string $password; - private string $slave; - - /** @var array */ - private array $options; - - /** @var array */ - private array $queries; - /** * @param string $qualifer Qualifer for ExtendedPdoInterface * @param string $dsn Data Source Name (DSN) @@ -35,26 +23,19 @@ class NamedPdoModule extends AbstractModule * @param array $queries Queries to execute after the connection. */ public function __construct( - string $qualifer, - string $dsn, - string $username = '', - string $password = '', - string $slave = '', - array $options = [], - array $queries = [] + private readonly string $qualifer, + private readonly string $dsn, + private readonly string $username = '', + private readonly string $password = '', + private readonly string $slave = '', + private readonly array $options = [], + private readonly array $queries = [] ) { - $this->qualifer = $qualifer; - $this->dsn = $dsn; - $this->username = $username; - $this->password = $password; - $this->slave = $slave; - $this->options = $options; - $this->queries = $queries; parent::__construct(); } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -68,7 +49,7 @@ private function configureSingleDsn(): void ->annotatedWith($this->qualifer) ->toConstructor( ExtendedPdo::class, - "dsn={$this->qualifer}_dsn,username={$this->qualifer}_username,password={$this->qualifer}_password" + "dsn={$this->qualifer}_dsn,username={$this->qualifer}_username,password={$this->qualifer}_password", ); $this->bind()->annotatedWith("{$this->qualifer}_dsn")->toInstance($this->dsn); $this->bind()->annotatedWith("{$this->qualifer}_username")->toInstance($this->username); @@ -89,7 +70,7 @@ private function getLocator(): ConnectionLocator $this->password, $this->slave, $this->options, - $this->queries + $this->queries, ); } } diff --git a/src/Pagerfanta/AuraSqlPager.php b/src/Pagerfanta/AuraSqlPager.php index bc5cac2..44e51a6 100644 --- a/src/Pagerfanta/AuraSqlPager.php +++ b/src/Pagerfanta/AuraSqlPager.php @@ -17,16 +17,10 @@ use function assert; use function class_exists; -/** - * @template T - */ +/** @template T */ class AuraSqlPager implements AuraSqlPagerInterface { - private ViewInterface $view; private ?RouteGeneratorInterface $routeGenerator = null; - - /** @var array> */ - private array $viewOptions; private ExtendedPdoInterface $pdo; private string $sql; private ?string $entity = null; @@ -43,14 +37,12 @@ class AuraSqlPager implements AuraSqlPagerInterface * @PagerViewOption("viewOptions") */ #[PagerViewOption('viewOptions')] - public function __construct(ViewInterface $view, array $viewOptions) + public function __construct(private readonly ViewInterface $view, private readonly array $viewOptions) { - $this->view = $view; - $this->viewOptions = $viewOptions; } /** - * {@inheritdoc} + * {@inheritDoc} * * @phpstan-param positive-int $paging */ @@ -65,7 +57,7 @@ public function init(ExtendedPdoInterface $pdo, $sql, array $params, $paging, Ro } /** - * {@inheritdoc} + * {@inheritDoc} */ #[ReturnTypeWillChange] public function offsetExists($offset): bool @@ -74,7 +66,7 @@ public function offsetExists($offset): bool } /** - * {@inheritdoc} + * {@inheritDoc} * * @phpstan-param positive-int $currentPage */ @@ -101,7 +93,7 @@ public function offsetGet($currentPage): Page } /** - * {@inheritdoc} + * {@inheritDoc} */ public function offsetSet($offset, $value): void { @@ -109,16 +101,14 @@ public function offsetSet($offset, $value): void } /** - * {@inheritdoc} + * {@inheritDoc} */ public function offsetUnset($offset): void { throw new LogicException('read only'); } - /** - * @return AdapterInterface - */ + /** @return AdapterInterface */ private function getPdoAdapter(): AdapterInterface { assert($this->entity === null || class_exists($this->entity)); diff --git a/src/Pagerfanta/AuraSqlPagerFactory.php b/src/Pagerfanta/AuraSqlPagerFactory.php index dc1e20b..d57fa6a 100644 --- a/src/Pagerfanta/AuraSqlPagerFactory.php +++ b/src/Pagerfanta/AuraSqlPagerFactory.php @@ -8,15 +8,12 @@ class AuraSqlPagerFactory implements AuraSqlPagerFactoryInterface { - private AuraSqlPagerInterface $auraSqlPager; - - public function __construct(AuraSqlPagerInterface $auraSqlPager) + public function __construct(private readonly AuraSqlPagerInterface $auraSqlPager) { - $this->auraSqlPager = $auraSqlPager; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function newInstance(ExtendedPdoInterface $pdo, string $sql, array $params, int $paging, string $uriTemplate, ?string $entity = null): AuraSqlPagerInterface { diff --git a/src/Pagerfanta/AuraSqlPagerFactoryInterface.php b/src/Pagerfanta/AuraSqlPagerFactoryInterface.php index 4a1a5a6..cf573f9 100644 --- a/src/Pagerfanta/AuraSqlPagerFactoryInterface.php +++ b/src/Pagerfanta/AuraSqlPagerFactoryInterface.php @@ -8,8 +8,6 @@ interface AuraSqlPagerFactoryInterface { - /** - * @param array> $params - */ + /** @param array> $params */ public function newInstance(ExtendedPdoInterface $pdo, string $sql, array $params, int $paging, string $uriTemplate, ?string $entity = null): AuraSqlPagerInterface; } diff --git a/src/Pagerfanta/AuraSqlPagerInterface.php b/src/Pagerfanta/AuraSqlPagerInterface.php index b482a1a..155ebab 100644 --- a/src/Pagerfanta/AuraSqlPagerInterface.php +++ b/src/Pagerfanta/AuraSqlPagerInterface.php @@ -7,9 +7,7 @@ use ArrayAccess; use Aura\Sql\ExtendedPdoInterface; -/** - * @extends ArrayAccess - */ +/** @extends ArrayAccess */ interface AuraSqlPagerInterface extends ArrayAccess { /** diff --git a/src/Pagerfanta/AuraSqlPagerModule.php b/src/Pagerfanta/AuraSqlPagerModule.php index 4ceffd0..577560e 100644 --- a/src/Pagerfanta/AuraSqlPagerModule.php +++ b/src/Pagerfanta/AuraSqlPagerModule.php @@ -14,7 +14,7 @@ class AuraSqlPagerModule extends AbstractModule { /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { diff --git a/src/Pagerfanta/AuraSqlQueryAdapter.php b/src/Pagerfanta/AuraSqlQueryAdapter.php index 3f71bab..1a726ee 100644 --- a/src/Pagerfanta/AuraSqlQueryAdapter.php +++ b/src/Pagerfanta/AuraSqlQueryAdapter.php @@ -21,24 +21,20 @@ */ class AuraSqlQueryAdapter implements AdapterInterface { - private ExtendedPdoInterface $pdo; - private SelectInterface $select; + private readonly SelectInterface $select; /** @var callable */ private $countQueryBuilderModifier; - /** - * @param callable $countQueryBuilderModifier a callable to modifier the query builder to count - */ - public function __construct(ExtendedPdoInterface $pdo, SelectInterface $select, callable $countQueryBuilderModifier) + /** @param callable $countQueryBuilderModifier a callable to modifier the query builder to count */ + public function __construct(private readonly ExtendedPdoInterface $pdo, SelectInterface $select, callable $countQueryBuilderModifier) { - $this->pdo = $pdo; $this->select = clone $select; $this->countQueryBuilderModifier = $countQueryBuilderModifier; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function getNbResults(): int { @@ -56,7 +52,7 @@ public function getNbResults(): int } /** - * {@inheritdoc} + * {@inheritDoc} * * @return iterable */ diff --git a/src/Pagerfanta/AuraSqlQueryPager.php b/src/Pagerfanta/AuraSqlQueryPager.php index 13e0a08..7638d26 100644 --- a/src/Pagerfanta/AuraSqlQueryPager.php +++ b/src/Pagerfanta/AuraSqlQueryPager.php @@ -16,18 +16,12 @@ use function array_keys; -/** - * @implements ArrayAccess - */ +/** @implements ArrayAccess */ class AuraSqlQueryPager implements AuraSqlQueryPagerInterface, ArrayAccess { private ExtendedPdoInterface $pdo; - private ViewInterface $view; private ?RouteGeneratorInterface $routeGenerator = null; - - /** @var array> */ - private array $viewOptions; private SelectInterface $select; /** @phpstan-var positive-int */ @@ -39,15 +33,13 @@ class AuraSqlQueryPager implements AuraSqlQueryPagerInterface, ArrayAccess * @PagerViewOption("viewOptions") */ #[PagerViewOption('viewOptions')] - public function __construct(ViewInterface $view, array $viewOptions) + public function __construct(private readonly ViewInterface $view, private readonly array $viewOptions) { - $this->view = $view; - $this->viewOptions = $viewOptions; } /** * @phpstan-param positive-int $paging - * {@inheritdoc} + * {@inheritDoc} */ public function init(ExtendedPdoInterface $pdo, SelectInterface $select, int $paging, RouteGeneratorInterface $routeGenerator) { @@ -61,7 +53,7 @@ public function init(ExtendedPdoInterface $pdo, SelectInterface $select, int $pa /** * @phpstan-param positive-int $page - * {@inheritdoc} + * {@inheritDoc} */ public function offsetGet($page): Page { @@ -93,7 +85,7 @@ public function offsetGet($page): Page } /** - * {@inheritdoc} + * {@inheritDoc} */ public function offsetExists($offset): bool { @@ -101,7 +93,7 @@ public function offsetExists($offset): bool } /** - * {@inheritdoc} + * {@inheritDoc} */ public function offsetSet($offset, $value): void { @@ -109,7 +101,7 @@ public function offsetSet($offset, $value): void } /** - * {@inheritdoc} + * {@inheritDoc} */ public function offsetUnset($offset): void { diff --git a/src/Pagerfanta/AuraSqlQueryPagerFactory.php b/src/Pagerfanta/AuraSqlQueryPagerFactory.php index e3308ae..e60a2cb 100644 --- a/src/Pagerfanta/AuraSqlQueryPagerFactory.php +++ b/src/Pagerfanta/AuraSqlQueryPagerFactory.php @@ -9,15 +9,12 @@ class AuraSqlQueryPagerFactory implements AuraSqlQueryPagerFactoryInterface { - private AuraSqlQueryPagerInterface $auraSqlQueryPager; - - public function __construct(AuraSqlQueryPagerInterface $auraSqlQueryPager) + public function __construct(private readonly AuraSqlQueryPagerInterface $auraSqlQueryPager) { - $this->auraSqlQueryPager = $auraSqlQueryPager; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function newInstance(ExtendedPdoInterface $pdo, SelectInterface $select, $paging, $uriTemplate) { diff --git a/src/Pagerfanta/AuraSqlQueryPagerInterface.php b/src/Pagerfanta/AuraSqlQueryPagerInterface.php index a7c6243..7eecc7d 100644 --- a/src/Pagerfanta/AuraSqlQueryPagerInterface.php +++ b/src/Pagerfanta/AuraSqlQueryPagerInterface.php @@ -9,8 +9,6 @@ interface AuraSqlQueryPagerInterface { - /** - * @return AuraSqlQueryPagerInterface - */ + /** @return AuraSqlQueryPagerInterface */ public function init(ExtendedPdoInterface $pdo, SelectInterface $select, int $paging, RouteGeneratorInterface $routeGenerator); } diff --git a/src/Pagerfanta/DefaultRouteGenerator.php b/src/Pagerfanta/DefaultRouteGenerator.php index c0b14f5..00246f5 100644 --- a/src/Pagerfanta/DefaultRouteGenerator.php +++ b/src/Pagerfanta/DefaultRouteGenerator.php @@ -6,15 +6,12 @@ class DefaultRouteGenerator implements RouteGeneratorInterface { - private string $uri; - - public function __construct(string $uri) + public function __construct(private readonly string $uri) { - $this->uri = $uri; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function __invoke($page) { diff --git a/src/Pagerfanta/ExtendedPdoAdapter.php b/src/Pagerfanta/ExtendedPdoAdapter.php index 4f62594..bd91721 100644 --- a/src/Pagerfanta/ExtendedPdoAdapter.php +++ b/src/Pagerfanta/ExtendedPdoAdapter.php @@ -25,26 +25,16 @@ */ class ExtendedPdoAdapter implements AdapterInterface { - private ExtendedPdoInterface $pdo; - private string $sql; + private readonly FetcherInterface $fetcher; - /** @var array */ - private array $params; - private FetcherInterface $fetcher; - - /** - * @param array $params - */ - public function __construct(ExtendedPdoInterface $pdo, string $sql, array $params, ?FetcherInterface $fetcher = null) + /** @param array $params */ + public function __construct(private readonly ExtendedPdoInterface $pdo, private readonly string $sql, private readonly array $params, ?FetcherInterface $fetcher = null) { - $this->pdo = $pdo; - $this->sql = $sql; - $this->params = $params; - $this->fetcher = $fetcher ?? new FetchAssoc($pdo); + $this->fetcher = $fetcher ?? new FetchAssoc($this->pdo); } /** - * {@inheritdoc} + * {@inheritDoc} * * @SuppressWarnings(PHPMD.GotoStatement) */ @@ -75,7 +65,7 @@ public function getNbResults(): int } /** - * {@inheritdoc} + * {@inheritDoc} * * @param int $offset * @param int $length @@ -91,7 +81,7 @@ public function getSlice(int $offset, int $length): iterable } /** - * {@inheritdoc} + * {@inheritDoc} */ public function getLimitClause(int $offset, int $length): string { diff --git a/src/Pagerfanta/FetchAssoc.php b/src/Pagerfanta/FetchAssoc.php index a7dfcb2..a336b48 100644 --- a/src/Pagerfanta/FetchAssoc.php +++ b/src/Pagerfanta/FetchAssoc.php @@ -7,14 +7,10 @@ use Aura\Sql\ExtendedPdoInterface; use PDO; -final class FetchAssoc implements FetcherInterface +final readonly class FetchAssoc implements FetcherInterface { - /** @var ExtendedPdoInterface */ - private $pdo; - - public function __construct(ExtendedPdoInterface $pdo) + public function __construct(private ExtendedPdoInterface $pdo) { - $this->pdo = $pdo; } /** diff --git a/src/Pagerfanta/FetchEntity.php b/src/Pagerfanta/FetchEntity.php index 4b70b1d..80a4384 100644 --- a/src/Pagerfanta/FetchEntity.php +++ b/src/Pagerfanta/FetchEntity.php @@ -12,16 +12,12 @@ class FetchEntity implements FetcherInterface { - private ExtendedPdoInterface $pdo; - private string $entity; + private readonly string $entity; - /** - * @param class-string $entity - */ - public function __construct(ExtendedPdoInterface $pdo, string $entity) + /** @param class-string $entity */ + public function __construct(private readonly ExtendedPdoInterface $pdo, string $entity) { assert(class_exists($entity)); - $this->pdo = $pdo; $this->entity = $entity; } @@ -32,9 +28,7 @@ public function __invoke(string $sql, array $params): array { $pdoStatement = $this->pdo->perform($sql, $params); - return $pdoStatement->fetchAll(PDO::FETCH_FUNC, /** @param list $args */function (...$args) { - /** @psalm-suppress MixedMethodCall */ - return new $this->entity(...$args); - }); + return $pdoStatement->fetchAll(PDO::FETCH_FUNC, /** @param list $args */fn (...$args) => /** @psalm-suppress MixedMethodCall */ + new $this->entity(...$args)); } } diff --git a/src/Pagerfanta/Page.php b/src/Pagerfanta/Page.php index 4e7d49b..c382372 100644 --- a/src/Pagerfanta/Page.php +++ b/src/Pagerfanta/Page.php @@ -8,11 +8,10 @@ use IteratorAggregate; use Pagerfanta\Pagerfanta; use Pagerfanta\View\ViewInterface; +use Stringable; -/** - * @implements IteratorAggregate - */ -final class Page implements IteratorAggregate +/** @implements IteratorAggregate */ +final class Page implements IteratorAggregate, Stringable { /** @var int */ public $maxPerPage; @@ -32,30 +31,22 @@ final class Page implements IteratorAggregate /** @var mixed */ public $data; - /** @var Pagerfanta */ - private Pagerfanta $pagerfanta; - /** @var callable */ private $routeGenerator; - private ViewInterface $view; - - /** @var array */ - private array $viewOption; /** * @phpstan-param Pagerfanta $pagerfanta * @phpstan-param array $viewOption */ public function __construct( - Pagerfanta $pagerfanta, + /** @var Pagerfanta */ + private readonly Pagerfanta $pagerfanta, RouteGeneratorInterface $routeGenerator, - ViewInterface $view, - array $viewOption + private readonly ViewInterface $view, + /** @var array */ + private readonly array $viewOption ) { - $this->pagerfanta = $pagerfanta; $this->routeGenerator = $routeGenerator; - $this->view = $view; - $this->viewOption = $viewOption; } public function __toString(): string @@ -63,12 +54,12 @@ public function __toString(): string return (string) $this->view->render( $this->pagerfanta, $this->routeGenerator, - $this->viewOption + $this->viewOption, ); } /** - * {@inheritdoc} + * {@inheritDoc} * * @return Iterator */ diff --git a/src/ProfilerProvider.php b/src/ProfilerProvider.php index 3205431..4b5f5e3 100644 --- a/src/ProfilerProvider.php +++ b/src/ProfilerProvider.php @@ -10,11 +10,8 @@ class ProfilerProvider implements Provider { - private LoggerInterface $logger; - - public function __construct(LoggerInterface $logger) + public function __construct(private readonly LoggerInterface $logger) { - $this->logger = $logger; } public function get(): Profiler diff --git a/src/TransactionalInterceptor.php b/src/TransactionalInterceptor.php index 84523b7..0138b31 100644 --- a/src/TransactionalInterceptor.php +++ b/src/TransactionalInterceptor.php @@ -18,15 +18,12 @@ class TransactionalInterceptor implements MethodInterceptor { - private ?ExtendedPdoInterface $pdo; - - public function __construct(?ExtendedPdoInterface $pdo = null) + public function __construct(private readonly ?ExtendedPdoInterface $pdo = null) { - $this->pdo = $pdo; } /** - * {@inheritdoc} + * {@inheritDoc} */ public function invoke(MethodInvocation $invocation) { diff --git a/src/TransactionalModule.php b/src/TransactionalModule.php index 828033e..3540f6a 100644 --- a/src/TransactionalModule.php +++ b/src/TransactionalModule.php @@ -10,7 +10,7 @@ class TransactionalModule extends AbstractModule { /** - * {@inheritdoc} + * {@inheritDoc} */ protected function configure(): void { @@ -18,7 +18,7 @@ protected function configure(): void $this->bindInterceptor( $this->matcher->any(), $this->matcher->annotatedWith(Transactional::class), - [TransactionalInterceptor::class] + [TransactionalInterceptor::class], ); } } diff --git a/tests/AuraSqlModuleTest.php b/tests/AuraSqlModuleTest.php index 197adb6..3ec3d63 100644 --- a/tests/AuraSqlModuleTest.php +++ b/tests/AuraSqlModuleTest.php @@ -15,7 +15,6 @@ use ReflectionProperty; use function assert; -use function get_class; class AuraSqlModuleTest extends TestCase { @@ -74,7 +73,7 @@ public function testNoHost() private function getDsn(ExtendedPdo $pdo): string { - $prop = new ReflectionProperty(get_class($pdo), 'args'); + $prop = new ReflectionProperty($pdo::class, 'args'); $prop->setAccessible(true); $args = $prop->getValue($pdo); diff --git a/tests/AuraSqlProfileModuleTest.php b/tests/AuraSqlProfileModuleTest.php index 689d636..b85cb90 100644 --- a/tests/AuraSqlProfileModuleTest.php +++ b/tests/AuraSqlProfileModuleTest.php @@ -42,7 +42,7 @@ public function log($level, $message, array $context = []): void AuraSqlProfileModuleTest::$log[] = strtr($message, $replace); } - } + }, ); } }; @@ -52,9 +52,7 @@ public function log($level, $message, array $context = []): void return $instance; } - /** - * @depends testModule - */ + /** @depends testModule */ public function testLog(ExtendedPdoInterface $pdo) { $pdo->exec(/** @lang sql */'CREATE TABLE user(name, age)'); diff --git a/tests/AuraSqlQueryModuleTest.php b/tests/AuraSqlQueryModuleTest.php index e3742a7..b7dd01b 100644 --- a/tests/AuraSqlQueryModuleTest.php +++ b/tests/AuraSqlQueryModuleTest.php @@ -24,6 +24,7 @@ class AuraSqlQueryModuleTest extends TestCase protected function setUp(): void { parent::setUp(); + $this->injector = new Injector(new AuraSqlQueryModule('sqlite'), __DIR__ . '/tmp'); } diff --git a/tests/AuraSqlReplicationModuleTest.php b/tests/AuraSqlReplicationModuleTest.php index 5c8ea72..c9d876d 100644 --- a/tests/AuraSqlReplicationModuleTest.php +++ b/tests/AuraSqlReplicationModuleTest.php @@ -14,10 +14,8 @@ class AuraSqlReplicationModuleTest extends TestCase { - /** - * @return array> - */ - public function connectionProvider(): array + /** @return array> */ + public static function connectionProvider(): array { $locator = new ConnectionLocator(); $slave = new Connection('sqlite::memory:'); @@ -30,9 +28,7 @@ public function connectionProvider(): array return [[$locator, $masterPdo, $slavePdo]]; } - /** - * @dataProvider connectionProvider - */ + /** @dataProvider connectionProvider */ public function testLocatorSlave(ConnectionLocator $locator, ExtendedPdo $masterPdo, ExtendedPdo $slavePdo) { unset($masterPdo); @@ -43,9 +39,7 @@ public function testLocatorSlave(ConnectionLocator $locator, ExtendedPdo $master $this->assertSame($slavePdo, $model->pdo); } - /** - * @dataProvider connectionProvider - */ + /** @dataProvider connectionProvider */ public function testLocatorMaster(ConnectionLocator $locator, ExtendedPdo $masterPdo, ExtendedPdo $slavePdo) { unset($slavePdo); @@ -56,9 +50,7 @@ public function testLocatorMaster(ConnectionLocator $locator, ExtendedPdo $maste $this->assertSame($masterPdo, $model->pdo); } - /** - * @dataProvider connectionProvider - */ + /** @dataProvider connectionProvider */ public function testLocatorMasterWithQualifer(ConnectionLocator $locator, ExtendedPdo $masterPdo, ExtendedPdo $slavePdo) { unset($masterPdo, $slavePdo); diff --git a/tests/Fake/FakeEntity.php b/tests/Fake/FakeEntity.php index 3a77f70..f3689d3 100644 --- a/tests/Fake/FakeEntity.php +++ b/tests/Fake/FakeEntity.php @@ -4,17 +4,7 @@ final class FakeEntity { - public string $id; - public string $name; - public string $post_content; - - public function __construct( - string $id, - string $name, - string $post_content - ){ - $this->id = $id; - $this->name = $name; - $this->post_content = $post_content; + public function __construct(public string $id, public string $name, public string $post_content) + { } } diff --git a/tests/Fake/FakeQueryInject.php b/tests/Fake/FakeQueryInject.php index 4135580..d66a3e4 100644 --- a/tests/Fake/FakeQueryInject.php +++ b/tests/Fake/FakeQueryInject.php @@ -11,17 +11,14 @@ class FakeQueryInject use AuraSqlUpdateInject; use AuraSqlDeleteInject; - private string $db; - /** * @AuraSqlQueryConfig * * @param string $db */ #[AuraSqlQueryConfig] - public function __construct($db) + public function __construct(private string $db) { - $this->db = $db; } public function get() diff --git a/tests/NamedPdoModuleTest.php b/tests/NamedPdoModuleTest.php index c009553..7d9fe32 100644 --- a/tests/NamedPdoModuleTest.php +++ b/tests/NamedPdoModuleTest.php @@ -11,7 +11,6 @@ use ReflectionProperty; use function assert; -use function get_class; class NamedPdoModuleTest extends TestCase { @@ -60,7 +59,7 @@ public function testNoHost() private function getDsn(ExtendedPdo $pdo): string { - $prop = new ReflectionProperty(get_class($pdo), 'args'); + $prop = new ReflectionProperty($pdo::class, 'args'); $prop->setAccessible(true); $args = $prop->getValue($pdo); diff --git a/tests/Pagerfanta/AuraSqlPagerFactoryTest.php b/tests/Pagerfanta/AuraSqlPagerFactoryTest.php index 7a2a2f7..c70287c 100644 --- a/tests/Pagerfanta/AuraSqlPagerFactoryTest.php +++ b/tests/Pagerfanta/AuraSqlPagerFactoryTest.php @@ -4,6 +4,7 @@ namespace Ray\AuraSqlModule\Pagerfanta; +use Override; use Pagerfanta\View\DefaultView; use Ray\AuraSqlModule\FakeEntity; @@ -11,9 +12,11 @@ class AuraSqlPagerFactoryTest extends AbstractPdoTestCase { private AuraSqlPagerFactory $factory; + #[Override] public function setUp(): void { parent::setUp(); + $this->factory = new AuraSqlPagerFactory(new AuraSqlPager(new DefaultView(), [])); } diff --git a/tests/Pagerfanta/AuraSqlPagerModuleTest.php b/tests/Pagerfanta/AuraSqlPagerModuleTest.php index 6a684a0..bdd645b 100644 --- a/tests/Pagerfanta/AuraSqlPagerModuleTest.php +++ b/tests/Pagerfanta/AuraSqlPagerModuleTest.php @@ -37,9 +37,7 @@ public function testNewInstanceWithBinding(): AuraSqlPagerInterface return $pager; } - /** - * @depends testNewInstance - */ + /** @depends testNewInstance */ public function testArrayAccess(AuraSqlPagerInterface $pager): void { $page = $pager[2]; @@ -59,9 +57,7 @@ public function testArrayAccess(AuraSqlPagerInterface $pager): void $this->assertSame(50, $page->total); } - /** - * @depends testNewInstance - */ + /** @depends testNewInstance */ public function testArrayAccessWithMaxPage(AuraSqlPagerInterface $pager) { $page = $pager[50]; @@ -81,9 +77,7 @@ public function testArrayAccessWithMaxPage(AuraSqlPagerInterface $pager) $this->assertSame(50, $page->total); } - /** - * @depends testNewInstanceWithBinding - */ + /** @depends testNewInstanceWithBinding */ public function testArrayAccessWithBinding(AuraSqlPagerInterface $pager) { $page = $pager[1]; diff --git a/tests/Pagerfanta/AuraSqlPagerTest.php b/tests/Pagerfanta/AuraSqlPagerTest.php index 8b1b006..82ace15 100644 --- a/tests/Pagerfanta/AuraSqlPagerTest.php +++ b/tests/Pagerfanta/AuraSqlPagerTest.php @@ -16,6 +16,7 @@ class AuraSqlPagerTest extends TestCase public function setUp(): void { parent::setUp(); + $this->pager = new AuraSqlPager(new DefaultView(), []); } diff --git a/tests/Pagerfanta/AuraSqlQueryAdapterTest.php b/tests/Pagerfanta/AuraSqlQueryAdapterTest.php index 9711fa1..5c0e50d 100644 --- a/tests/Pagerfanta/AuraSqlQueryAdapterTest.php +++ b/tests/Pagerfanta/AuraSqlQueryAdapterTest.php @@ -101,7 +101,7 @@ private function doTestGetNbResults(AuraSqlQueryAdapter $adapter) private function createAdapterToTestGetSlice(): AuraSqlQueryAdapter { - $countQueryBuilderModifier = static function () { + $countQueryBuilderModifier = static function (): void { }; return new AuraSqlQueryAdapter($this->pdo, $this->select, $countQueryBuilderModifier); diff --git a/tests/Pagerfanta/AuraSqlQueryPagerModuleTest.php b/tests/Pagerfanta/AuraSqlQueryPagerModuleTest.php index ab4952b..f9d1834 100644 --- a/tests/Pagerfanta/AuraSqlQueryPagerModuleTest.php +++ b/tests/Pagerfanta/AuraSqlQueryPagerModuleTest.php @@ -34,9 +34,7 @@ public function testNewInstanceWithBinding(): AuraSqlQueryPager return $pager; } - /** - * @depends testNewInstance - */ + /** @depends testNewInstance */ public function testArrayAccess(AuraSqlQueryPager $pager): void { $page = $pager[2]; @@ -56,9 +54,7 @@ public function testArrayAccess(AuraSqlQueryPager $pager): void $this->assertSame(50, $page->total); } - /** - * @depends testNewInstance - */ + /** @depends testNewInstance */ public function testArrayAccessWithMaxPage(AuraSqlQueryPager $pager): void { $page = $pager[50]; @@ -78,9 +74,7 @@ public function testArrayAccessWithMaxPage(AuraSqlQueryPager $pager): void $this->assertSame(50, $page->total); } - /** - * @depends testNewInstance - */ + /** @depends testNewInstance */ public function testIterator(AuraSqlQueryPager $pager): void { $page = $pager[1]; @@ -88,9 +82,7 @@ public function testIterator(AuraSqlQueryPager $pager): void $this->assertInstanceOf(Iterator::class, $itelator); } - /** - * @depends testNewInstanceWithBinding - */ + /** @depends testNewInstanceWithBinding */ public function testArrayAccessWithBinding(AuraSqlQueryPager $pager): void { $page = $pager[1]; diff --git a/tests/Pagerfanta/AuraSqlQueryPagerTest.php b/tests/Pagerfanta/AuraSqlQueryPagerTest.php index f656e32..dc62f6b 100644 --- a/tests/Pagerfanta/AuraSqlQueryPagerTest.php +++ b/tests/Pagerfanta/AuraSqlQueryPagerTest.php @@ -4,6 +4,7 @@ namespace Ray\AuraSqlModule\Pagerfanta; +use Override; use Pagerfanta\Exception\LogicException; use Pagerfanta\View\DefaultView; use Ray\AuraSqlModule\Exception\NotInitialized; @@ -12,9 +13,11 @@ class AuraSqlQueryPagerTest extends AuraSqlQueryTestCase { private AuraSqlQueryPager $pager; + #[Override] public function setUp(): void { parent::setUp(); + $this->pager = new AuraSqlQueryPager(new DefaultView(), []); } diff --git a/tests/Pagerfanta/ExtendedPdoAdapterTest.php b/tests/Pagerfanta/ExtendedPdoAdapterTest.php index 911a336..9e1091f 100644 --- a/tests/Pagerfanta/ExtendedPdoAdapterTest.php +++ b/tests/Pagerfanta/ExtendedPdoAdapterTest.php @@ -4,6 +4,8 @@ namespace Ray\AuraSqlModule\Pagerfanta; +use Override; + use const PHP_EOL; class ExtendedPdoAdapterTest extends AbstractPdoTestCase @@ -11,9 +13,11 @@ class ExtendedPdoAdapterTest extends AbstractPdoTestCase /** @var ExtendedPdoAdapter */ protected $pdoAdapter; + #[Override] protected function setUp(): void { parent::setUp(); + $this->pdoAdapter = new ExtendedPdoAdapter($this->pdo, 'SELECT * FROM posts', []); } @@ -60,10 +64,8 @@ public function testGetSlice() $this->assertSame($expected, $slice); } - /** - * @return array> - */ - public function splProvider(): array + /** @return array> */ + public static function splProvider(): array { return [ ['SELECT * FROM posts', [], 'SELECT COUNT(*) FROM posts', 50], diff --git a/tests/Pagerfanta/PdoMySqlAdapterTest.php b/tests/Pagerfanta/PdoMySqlAdapterTest.php index 32d5b1b..fc7ff5c 100644 --- a/tests/Pagerfanta/PdoMySqlAdapterTest.php +++ b/tests/Pagerfanta/PdoMySqlAdapterTest.php @@ -4,13 +4,17 @@ namespace Ray\AuraSqlModule\Pagerfanta; +use Override; + class PdoMySqlAdapterTest extends AbstractPdoTestCase { private ExtendedPdoAdapter $adapter; + #[Override] public function setUp(): void { parent::setUp(); + $sql = 'SELECT * FROM posts'; $this->adapter = new ExtendedPdoAdapter($this->pdo, $sql, []); } From a26fd9fff6a8744a562d90177ab44b1440a3778b Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:00:49 +0900 Subject: [PATCH 07/16] Deprecate injection traits and move to src-deprecated folder Marked all Aura SQL injection traits as deprecated and relocated them to the `src-deprecated` folder. Added comments pointing to constructor injection as the preferred alternative. This refactoring sets the stage for adopting more modern and maintainable approaches. --- {src => src-deprecated}/AuraSqlDeleteInject.php | 1 + {src => src-deprecated}/AuraSqlInject.php | 2 +- {src => src-deprecated}/AuraSqlInsertInject.php | 1 + {src => src-deprecated}/AuraSqlPagerInject.php | 1 + {src => src-deprecated}/AuraSqlQueryPagerInject.php | 1 + {src => src-deprecated}/AuraSqlSelectInject.php | 1 + {src => src-deprecated}/AuraSqlUpdateInject.php | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) rename {src => src-deprecated}/AuraSqlDeleteInject.php (87%) rename {src => src-deprecated}/AuraSqlInject.php (86%) rename {src => src-deprecated}/AuraSqlInsertInject.php (87%) rename {src => src-deprecated}/AuraSqlPagerInject.php (89%) rename {src => src-deprecated}/AuraSqlQueryPagerInject.php (89%) rename {src => src-deprecated}/AuraSqlSelectInject.php (87%) rename {src => src-deprecated}/AuraSqlUpdateInject.php (87%) diff --git a/src/AuraSqlDeleteInject.php b/src-deprecated/AuraSqlDeleteInject.php similarity index 87% rename from src/AuraSqlDeleteInject.php rename to src-deprecated/AuraSqlDeleteInject.php index f21d160..4ffbff1 100644 --- a/src/AuraSqlDeleteInject.php +++ b/src-deprecated/AuraSqlDeleteInject.php @@ -7,6 +7,7 @@ use Aura\SqlQuery\Common\DeleteInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlDeleteInject { /** @var DeleteInterface */ diff --git a/src/AuraSqlInject.php b/src-deprecated/AuraSqlInject.php similarity index 86% rename from src/AuraSqlInject.php rename to src-deprecated/AuraSqlInject.php index b305af8..9585bd0 100644 --- a/src/AuraSqlInject.php +++ b/src-deprecated/AuraSqlInject.php @@ -7,7 +7,7 @@ use Aura\Sql\ExtendedPdoInterface; use Ray\Di\Di\Inject; -/** @codeCoverageIgnore */ +/** @deprecated Use constructor injection instead */ trait AuraSqlInject { /** @var ExtendedPdoInterface */ diff --git a/src/AuraSqlInsertInject.php b/src-deprecated/AuraSqlInsertInject.php similarity index 87% rename from src/AuraSqlInsertInject.php rename to src-deprecated/AuraSqlInsertInject.php index 74b256e..64b7d08 100644 --- a/src/AuraSqlInsertInject.php +++ b/src-deprecated/AuraSqlInsertInject.php @@ -7,6 +7,7 @@ use Aura\SqlQuery\Common\InsertInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlInsertInject { /** @var InsertInterface */ diff --git a/src/AuraSqlPagerInject.php b/src-deprecated/AuraSqlPagerInject.php similarity index 89% rename from src/AuraSqlPagerInject.php rename to src-deprecated/AuraSqlPagerInject.php index 6f95b1f..76476a0 100644 --- a/src/AuraSqlPagerInject.php +++ b/src-deprecated/AuraSqlPagerInject.php @@ -7,6 +7,7 @@ use Ray\AuraSqlModule\Pagerfanta\AuraSqlPagerFactoryInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlPagerInject { /** @var AuraSqlPagerFactoryInterface */ diff --git a/src/AuraSqlQueryPagerInject.php b/src-deprecated/AuraSqlQueryPagerInject.php similarity index 89% rename from src/AuraSqlQueryPagerInject.php rename to src-deprecated/AuraSqlQueryPagerInject.php index 30998e1..7a4375b 100644 --- a/src/AuraSqlQueryPagerInject.php +++ b/src-deprecated/AuraSqlQueryPagerInject.php @@ -7,6 +7,7 @@ use Ray\AuraSqlModule\Pagerfanta\AuraSqlQueryPagerFactoryInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlQueryPagerInject { /** @var AuraSqlQueryPagerFactoryInterface */ diff --git a/src/AuraSqlSelectInject.php b/src-deprecated/AuraSqlSelectInject.php similarity index 87% rename from src/AuraSqlSelectInject.php rename to src-deprecated/AuraSqlSelectInject.php index 1c019b9..760bf09 100644 --- a/src/AuraSqlSelectInject.php +++ b/src-deprecated/AuraSqlSelectInject.php @@ -7,6 +7,7 @@ use Aura\SqlQuery\Common\SelectInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlSelectInject { /** @var SelectInterface */ diff --git a/src/AuraSqlUpdateInject.php b/src-deprecated/AuraSqlUpdateInject.php similarity index 87% rename from src/AuraSqlUpdateInject.php rename to src-deprecated/AuraSqlUpdateInject.php index 787967d..de83ee8 100644 --- a/src/AuraSqlUpdateInject.php +++ b/src-deprecated/AuraSqlUpdateInject.php @@ -7,6 +7,7 @@ use Aura\SqlQuery\Common\UpdateInterface; use Ray\Di\Di\Inject; +/** @deprecated Use constructor injection instead */ trait AuraSqlUpdateInject { /** @var UpdateInterface */ From 2f4d32b3d4b5c2c2c68e3727f7b2ac911592f2ce Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:01:50 +0900 Subject: [PATCH 08/16] Soothe phpstan Remove redundant assertions and improve type annotations. This commit removes unnecessary `assert` statements and unused imports to simplify the code. It also refines type annotations and docblocks for better clarity and accuracy, ensuring consistency across various files. These changes enhance code readability and maintainability without altering functionality. --- src/AuraSqlConnectionInterceptor.php | 2 +- src/AuraSqlReplicationDbProvider.php | 3 --- src/EnvConnection.php | 1 - src/NamedExtendedPdoProvider.php | 3 --- src/Pagerfanta/AuraSqlPager.php | 12 +++++++----- src/Pagerfanta/AuraSqlQueryAdapter.php | 7 +------ src/Pagerfanta/AuraSqlQueryPager.php | 2 +- src/Pagerfanta/ExtendedPdoAdapter.php | 8 ++++---- src/TransactionalInterceptor.php | 7 +------ 9 files changed, 15 insertions(+), 30 deletions(-) diff --git a/src/AuraSqlConnectionInterceptor.php b/src/AuraSqlConnectionInterceptor.php index 7db70b1..ae62c5e 100644 --- a/src/AuraSqlConnectionInterceptor.php +++ b/src/AuraSqlConnectionInterceptor.php @@ -17,7 +17,7 @@ class AuraSqlConnectionInterceptor implements MethodInterceptor { public const PROP = 'pdo'; - /** @phpstan-param array $readMethods */ + /** @phpstan-param array $readsMethods */ public function __construct( private readonly ConnectionLocatorInterface $connectionLocator, /** @var string[] */ diff --git a/src/AuraSqlReplicationDbProvider.php b/src/AuraSqlReplicationDbProvider.php index 7abc89c..4f79516 100644 --- a/src/AuraSqlReplicationDbProvider.php +++ b/src/AuraSqlReplicationDbProvider.php @@ -10,8 +10,6 @@ use Ray\Di\ProviderInterface; use Ray\Di\SetContextInterface; -use function assert; - /** @implements ProviderInterface */ class AuraSqlReplicationDbProvider implements ProviderInterface, SetContextInterface { @@ -37,7 +35,6 @@ public function setContext($context): void public function get(): ExtendedPdoInterface { $connectionLocator = $this->injector->getInstance(ConnectionLocatorInterface::class, $this->context); - assert($connectionLocator instanceof ConnectionLocatorInterface); $isGetRequest = isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'GET'; return $isGetRequest ? $connectionLocator->getRead() : $connectionLocator->getWrite(); diff --git a/src/EnvConnection.php b/src/EnvConnection.php index 9121c38..05ad715 100644 --- a/src/EnvConnection.php +++ b/src/EnvConnection.php @@ -65,7 +65,6 @@ private function getDsn(): string return $this->changeHost((string) getenv($this->dsn), $slave); } - /** @psalm-pure */ private function changeHost(string $dsn, string $host): string { preg_match(AuraSqlModule::PARSE_PDO_DSN_REGEX, $dsn, $parts); diff --git a/src/NamedExtendedPdoProvider.php b/src/NamedExtendedPdoProvider.php index d285b1d..75b44fb 100644 --- a/src/NamedExtendedPdoProvider.php +++ b/src/NamedExtendedPdoProvider.php @@ -9,8 +9,6 @@ use Ray\Di\ProviderInterface; use Ray\Di\SetContextInterface; -use function assert; - /** @implements ProviderInterface */ class NamedExtendedPdoProvider implements ProviderInterface, SetContextInterface @@ -35,7 +33,6 @@ public function __construct(private readonly InjectorInterface $injector) public function get(): ExtendedPdo { $connection = $this->injector->getInstance(EnvConnection::class, $this->context); - assert($connection instanceof EnvConnection); return ($connection)(); } diff --git a/src/Pagerfanta/AuraSqlPager.php b/src/Pagerfanta/AuraSqlPager.php index 44e51a6..07ccda9 100644 --- a/src/Pagerfanta/AuraSqlPager.php +++ b/src/Pagerfanta/AuraSqlPager.php @@ -5,7 +5,6 @@ namespace Ray\AuraSqlModule\Pagerfanta; use Aura\Sql\ExtendedPdoInterface; -use Pagerfanta\Adapter\AdapterInterface; use Pagerfanta\Exception\LogicException; use Pagerfanta\Pagerfanta; use Pagerfanta\View\ViewInterface; @@ -32,7 +31,7 @@ class AuraSqlPager implements AuraSqlPagerInterface private int $paging; /** - * @param array> $viewOptions + * @param array $viewOptions * * @PagerViewOption("viewOptions") */ @@ -108,12 +107,15 @@ public function offsetUnset($offset): void throw new LogicException('read only'); } - /** @return AdapterInterface */ - private function getPdoAdapter(): AdapterInterface + /** @return ExtendedPdoAdapter */ + private function getPdoAdapter(): ExtendedPdoAdapter { assert($this->entity === null || class_exists($this->entity)); $fetcher = $this->entity ? new FetchEntity($this->pdo, $this->entity) : new FetchAssoc($this->pdo); - return new ExtendedPdoAdapter($this->pdo, $this->sql, $this->params, $fetcher); + /** @var ExtendedPdoAdapter $adapter */ + $adapter = new ExtendedPdoAdapter($this->pdo, $this->sql, $this->params, $fetcher); + + return $adapter; } } diff --git a/src/Pagerfanta/AuraSqlQueryAdapter.php b/src/Pagerfanta/AuraSqlQueryAdapter.php index 1a726ee..744854a 100644 --- a/src/Pagerfanta/AuraSqlQueryAdapter.php +++ b/src/Pagerfanta/AuraSqlQueryAdapter.php @@ -12,8 +12,6 @@ use function assert; use function call_user_func; -use function is_array; -use function is_int; /** * @template T @@ -46,7 +44,6 @@ public function getNbResults(): int $result = $sth->fetchColumn(); $nbResults = (int) $result; assert($nbResults >= 0); - assert(is_int($nbResults)); return $nbResults; } @@ -66,10 +63,8 @@ public function getSlice(int $offset, int $length): iterable $sth = $this->pdo->prepare($sql); assert($sth instanceof PDOStatement); $sth->execute($this->select->getBindValues()); - $result = $sth->fetchAll(PDO::FETCH_ASSOC); - assert(is_array($result)); - return $result; + return $sth->fetchAll(PDO::FETCH_ASSOC); } private function prepareCountQueryBuilder(): SelectInterface diff --git a/src/Pagerfanta/AuraSqlQueryPager.php b/src/Pagerfanta/AuraSqlQueryPager.php index 7638d26..737f37f 100644 --- a/src/Pagerfanta/AuraSqlQueryPager.php +++ b/src/Pagerfanta/AuraSqlQueryPager.php @@ -28,7 +28,7 @@ class AuraSqlQueryPager implements AuraSqlQueryPagerInterface, ArrayAccess private int $paging; /** - * @param array> $viewOptions + * @param array $viewOptions * * @PagerViewOption("viewOptions") */ diff --git a/src/Pagerfanta/ExtendedPdoAdapter.php b/src/Pagerfanta/ExtendedPdoAdapter.php index bd91721..6c66b22 100644 --- a/src/Pagerfanta/ExtendedPdoAdapter.php +++ b/src/Pagerfanta/ExtendedPdoAdapter.php @@ -9,6 +9,7 @@ use function assert; use function count; +use function is_array; use function is_int; use function preg_match; use function preg_replace; @@ -36,7 +37,7 @@ public function __construct(private readonly ExtendedPdoInterface $pdo, private /** * {@inheritDoc} * - * @SuppressWarnings(PHPMD.GotoStatement) + * @SuppressWarnings(PHPMD.GotoStatement) // @phpstan-ignore-line */ public function getNbResults(): int { @@ -58,7 +59,6 @@ public function getNbResults(): int ret: /** @var string $count */ $nbResult = ! $count ? 0 : (int) $count; - assert(is_int($nbResult)); assert($nbResult >= 0); return $nbResult; @@ -133,11 +133,11 @@ public function rewriteCountQuery($query) } $queryCount = preg_replace('/(?:.*)\bFROM\b\s+/Uims', 'SELECT COUNT(*) FROM ', $query, 1); - /** @var array $split */ $split = preg_split('/\s+ORDER\s+BY\s+/is', (string) $queryCount); + assert(is_array($split), 'preg_split() should return an array'); [$queryCount] = $split; - /** @var array $split2 */ $split2 = preg_split('/\bLIMIT\b/is', (string) $queryCount); + assert(is_array($split2), 'preg_split() should return an array'); [$queryCount2] = $split2; return trim((string) $queryCount2); diff --git a/src/TransactionalInterceptor.php b/src/TransactionalInterceptor.php index 0138b31..4648441 100644 --- a/src/TransactionalInterceptor.php +++ b/src/TransactionalInterceptor.php @@ -8,13 +8,10 @@ use PDOException; use Ray\Aop\MethodInterceptor; use Ray\Aop\MethodInvocation; -use Ray\Aop\ReflectionMethod; use Ray\AuraSqlModule\Annotation\Transactional; use Ray\AuraSqlModule\Exception\RollbackException; -use function assert; use function count; -use function is_array; class TransactionalInterceptor implements MethodInterceptor { @@ -28,10 +25,8 @@ public function __construct(private readonly ?ExtendedPdoInterface $pdo = null) public function invoke(MethodInvocation $invocation) { $method = $invocation->getMethod(); - assert($method instanceof ReflectionMethod); $transactional = $method->getAnnotation(Transactional::class); - assert($transactional instanceof Transactional); - if (is_array($transactional->value) && count((array) $transactional->value) > 1) { + if ($transactional instanceof Transactional && count((array) $transactional->value) > 1) { return (new PropTransaction())($invocation, $transactional); } From b9a3091c882a1239f4be2f7705c523f10ad988d6 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:48:32 +0900 Subject: [PATCH 09/16] Add Psalm suppression for missing dependency annotation The added suppression ensures that Psalm does not raise a false positive regarding a missing dependency annotation for the write methods binding. This change improves static analysis while maintaining the intended functionality. --- src/AuraSqlLocatorModule.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/AuraSqlLocatorModule.php b/src/AuraSqlLocatorModule.php index 7baf66d..38c3745 100644 --- a/src/AuraSqlLocatorModule.php +++ b/src/AuraSqlLocatorModule.php @@ -38,6 +38,7 @@ protected function configure(): void { if ((bool) $this->readMethods && (bool) $this->writeMethods) { $this->bind()->annotatedWith(Read::class)->toInstance($this->readMethods); + /** @psalm-suppress MissingDependency */ $this->bind()->annotatedWith(Write::class)->toInstance($this->writeMethods); } From b778c8d47212c92dbbbe544932d6afb2e61ae34b Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:49:17 +0900 Subject: [PATCH 10/16] Update dependencies to latest versions in composer.lock Upgraded multiple packages, including `amphp/amp` to v3.1.0 and `amphp/byte-stream` to v2.1.1. Added new dependencies such as `amphp/cache`, `amphp/dns`, and `amphp/parallel`. These changes enhance compatibility and introduce improved functionality for the updated packages. --- vendor-bin/tools/composer.json | 8 +- vendor-bin/tools/composer.lock | 3719 +++++++++++++------------------- 2 files changed, 1515 insertions(+), 2212 deletions(-) diff --git a/vendor-bin/tools/composer.json b/vendor-bin/tools/composer.json index 27ccd52..f6218f4 100644 --- a/vendor-bin/tools/composer.json +++ b/vendor-bin/tools/composer.json @@ -1,12 +1,10 @@ { "require": { - "doctrine/coding-standard": "^8.2", + "doctrine/coding-standard": "^12.0", "phpmd/phpmd": "^2.9", - "phpmetrics/phpmetrics": "^2.7", - "phpstan/phpstan": "^1.4", - "psalm/plugin-phpunit": "^0.13", + "phpstan/phpstan": "^2.1", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.2" + "vimeo/psalm": "^6.1" }, "config": { "allow-plugins": { diff --git a/vendor-bin/tools/composer.lock b/vendor-bin/tools/composer.lock index 6fb1957..eb4c3d5 100644 --- a/vendor-bin/tools/composer.lock +++ b/vendor-bin/tools/composer.lock @@ -4,47 +4,40 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ea7ab95bf907e0bb404e4683b993ec00", + "content-hash": "067bef42f1b88f2e0a0c2dc9c2f945b3", "packages": [ { "name": "amphp/amp", - "version": "v2.6.4", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" + "reference": "7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "url": "https://api.github.com/repos/amphp/amp/zipball/7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9", + "reference": "7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "react/promise": "^2", - "vimeo/psalm": "^3.12" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "5.23.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, "autoload": { "files": [ - "lib/functions.php", - "lib/Internal/functions.php" + "src/functions.php", + "src/Future/functions.php", + "src/Internal/functions.php" ], "psr-4": { - "Amp\\": "lib" + "Amp\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -52,10 +45,6 @@ "MIT" ], "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, { "name": "Aaron Piotrowski", "email": "aaron@trowski.com" @@ -67,6 +56,10 @@ { "name": "Niklas Keller", "email": "me@kelunik.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" } ], "description": "A non-blocking concurrency framework for PHP applications.", @@ -83,9 +76,8 @@ "promise" ], "support": { - "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.4" + "source": "https://github.com/amphp/amp/tree/v3.1.0" }, "funding": [ { @@ -93,41 +85,45 @@ "type": "github" } ], - "time": "2024-03-21T18:52:26+00:00" + "time": "2025-01-26T16:07:39+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.2", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" + "reference": "daa00f2efdbd71565bf64ffefa89e37542addf93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/daa00f2efdbd71565bf64ffefa89e37542addf93", + "reference": "daa00f2efdbd71565bf64ffefa89e37542addf93", "shasum": "" }, "require": { - "amphp/amp": "^2", - "php": ">=7.1" + "amphp/amp": "^3", + "amphp/parser": "^1.1", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2.3" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.22.1" }, "type": "library", "autoload": { "files": [ - "lib/functions.php" + "src/functions.php", + "src/Internal/functions.php" ], "psr-4": { - "Amp\\ByteStream\\": "lib" + "Amp\\ByteStream\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -156,7 +152,7 @@ ], "support": { "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" + "source": "https://github.com/amphp/byte-stream/tree/v2.1.1" }, "funding": [ { @@ -164,44 +160,39 @@ "type": "github" } ], - "time": "2024-04-13T18:00:56+00:00" + "time": "2024-02-17T04:49:38+00:00" }, { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.5", + "name": "amphp/cache", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + "url": "https://github.com/amphp/cache.git", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "url": "https://api.github.com/repos/amphp/cache/zipball/46912e387e6aa94933b61ea1ead9cf7540b7797c", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" + "amphp/amp": "^3", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, + "type": "library", "autoload": { "psr-4": { - "PackageVersions\\": "src/PackageVersions" + "Amp\\Cache\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -210,74 +201,71 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "description": "A fiber-aware cache API based on Amp and Revolt.", + "homepage": "https://amphp.org/cache", "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + "issues": "https://github.com/amphp/cache/issues", + "source": "https://github.com/amphp/cache/tree/v2.0.1" }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2022-01-17T14:14:24+00:00" + "time": "2024-04-19T03:38:06+00:00" }, { - "name": "composer/pcre", - "version": "3.3.2", + "name": "amphp/dns", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + "url": "https://github.com/amphp/dns.git", + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "url": "https://api.github.com/repos/amphp/dns/zipball/78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<1.11.10" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/process": "^2", + "daverandom/libdns": "^2.0.2", + "ext-filter": "*", + "ext-json": "*", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "phpstan/phpstan": "^1.12 || ^2", - "phpstan/phpstan-strict-rules": "^1 || ^2", - "phpunit/phpunit": "^8 || ^9" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.20" }, "type": "library", - "extra": { - "phpstan": { - "includes": [ - "extension.neon" - ] - }, - "branch-alias": { - "dev-main": "3.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Composer\\Pcre\\": "src" + "Amp\\Dns\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -286,68 +274,91 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Chris Wright", + "email": "addr@daverandom.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" } ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "description": "Async DNS resolution for Amp.", + "homepage": "https://github.com/amphp/dns", "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" + "amp", + "amphp", + "async", + "client", + "dns", + "resolve" ], "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.2" + "issues": "https://github.com/amphp/dns/issues", + "source": "https://github.com/amphp/dns/tree/v2.4.0" }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-11-12T16:29:46+00:00" + "time": "2025-01-19T15:43:40+00:00" }, { - "name": "composer/semver", - "version": "3.4.3", + "name": "amphp/parallel", + "version": "v2.3.1", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" + "url": "https://github.com/amphp/parallel.git", + "reference": "5113111de02796a782f5d90767455e7391cca190" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "url": "https://api.github.com/repos/amphp/parallel/zipball/5113111de02796a782f5d90767455e7391cca190", + "reference": "5113111de02796a782f5d90767455e7391cca190", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/pipeline": "^1", + "amphp/process": "^2", + "amphp/serialization": "^1", + "amphp/socket": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.18" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, "autoload": { + "files": [ + "src/Context/functions.php", + "src/Context/Internal/functions.php", + "src/Ipc/functions.php", + "src/Worker/functions.php" + ], "psr-4": { - "Composer\\Semver\\": "src" + "Amp\\Parallel\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -356,77 +367,65 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Niklas Keller", + "email": "me@kelunik.com" }, { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.3" + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v2.3.1" }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-09-19T14:15:21+00:00" + "time": "2024-12-21T01:56:09+00:00" }, { - "name": "composer/xdebug-handler", - "version": "3.0.5", + "name": "amphp/parser", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + "url": "https://github.com/amphp/parser.git", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", "shasum": "" }, "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" + "php": ">=7.4" }, "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { "psr-4": { - "Composer\\XdebugHandler\\": "src" + "Amp\\Parser\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -435,67 +434,63 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Restarts a process without Xdebug.", + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", "keywords": [ - "Xdebug", - "performance" + "async", + "non-blocking", + "parser", + "stream" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/v1.1.1" }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-05-06T16:37:16+00:00" + "time": "2024-03-21T19:16:53+00:00" }, { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", + "name": "amphp/pipeline", + "version": "v1.2.2", "source": { "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" + "url": "https://github.com/amphp/pipeline.git", + "reference": "97cbf289f4d8877acfe58dd90ed5a4370a43caa4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/97cbf289f4d8877acfe58dd90ed5a4370a43caa4", + "reference": "97cbf289f4d8877acfe58dd90ed5a4370a43caa4", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "amphp/amp": "^3", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "composer/composer": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.18" }, + "type": "library", "autoload": { "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + "Amp\\Pipeline\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -504,165 +499,203 @@ ], "authors": [ { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", + "description": "Asynchronous iterators and operators.", + "homepage": "https://amphp.org/pipeline", "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcbf", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" + "amp", + "amphp", + "async", + "io", + "iterator", + "non-blocking" ], "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + "issues": "https://github.com/amphp/pipeline/issues", + "source": "https://github.com/amphp/pipeline/tree/v1.2.2" }, - "time": "2022-02-04T12:51:07+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2025-01-19T15:42:46+00:00" }, { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", + "name": "amphp/process", + "version": "v2.0.3", "source": { "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + "url": "https://github.com/amphp/process.git", + "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "url": "https://api.github.com/repos/amphp/process/zipball/52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", + "reference": "52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d", "shasum": "" }, "require": { - "php": ">=5.3.2" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "XdgBaseDir\\": "src/" + "Amp\\Process\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "implementation of xdg base directory specification for php", + "authors": [ + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A fiber-aware process manager based on Amp and Revolt.", + "homepage": "https://amphp.org/process", "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v2.0.3" }, - "time": "2019-12-04T15:06:13+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-04-19T03:13:44+00:00" }, { - "name": "doctrine/coding-standard", - "version": "8.2.1", + "name": "amphp/serialization", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/doctrine/coding-standard.git", - "reference": "f595b060799c1a0d76ead16981804eaa0bbcd8d6" + "url": "https://github.com/amphp/serialization.git", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/f595b060799c1a0d76ead16981804eaa0bbcd8d6", - "reference": "f595b060799c1a0d76ead16981804eaa0bbcd8d6", + "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.1 || ^8.0", - "slevomat/coding-standard": "^6.4.1", - "squizlabs/php_codesniffer": "^3.5.8" + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "phpunit/phpunit": "^9 || ^8 || ^7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Serialization\\": "src" + } }, - "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Steve Müller", - "email": "st.mueller@dzh-online.de" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "The Doctrine Coding Standard is a set of PHPCS rules applied to all Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/coding-standard.html", + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", "keywords": [ - "checks", - "code", - "coding", - "cs", - "doctrine", - "rules", - "sniffer", - "sniffs", - "standard", - "style" + "async", + "asynchronous", + "serialization", + "serialize" ], "support": { - "issues": "https://github.com/doctrine/coding-standard/issues", - "source": "https://github.com/doctrine/coding-standard/tree/8.2.1" + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/master" }, - "time": "2021-04-03T10:54:55+00:00" + "time": "2020-03-25T21:39:07+00:00" }, { - "name": "doctrine/instantiator", - "version": "2.0.0", + "name": "amphp/socket", + "version": "v2.3.1", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + "url": "https://github.com/amphp/socket.git", + "reference": "58e0422221825b79681b72c50c47a930be7bf1e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "url": "https://api.github.com/repos/amphp/socket/zipball/58e0422221825b79681b72c50c47a930be7bf1e1", + "reference": "58e0422221825b79681b72c50c47a930be7bf1e1", "shasum": "" }, "require": { - "php": "^8.1" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/dns": "^2", + "ext-openssl": "*", + "kelunik/certificate": "^1.1", + "league/uri": "^6.5 | ^7", + "league/uri-interfaces": "^2.3 | ^7", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "amphp/process": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "5.20" }, "type": "library", "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php", + "src/SocketAddress/functions.php" + ], "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "Amp\\Socket\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -671,827 +704,304 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Daniel Lowrey", + "email": "rdlowrey@gmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", + "homepage": "https://github.com/amphp/socket", "keywords": [ - "constructor", - "instantiate" + "amp", + "async", + "encryption", + "non-blocking", + "sockets", + "tcp", + "tls" ], "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + "issues": "https://github.com/amphp/socket/issues", + "source": "https://github.com/amphp/socket/tree/v2.3.1" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" + "url": "https://github.com/amphp", + "type": "github" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2024-04-21T14:33:03+00:00" }, { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", + "name": "amphp/sync", + "version": "v2.3.0", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" + "url": "https://github.com/amphp/sync.git", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "url": "https://api.github.com/repos/amphp/sync/zipball/217097b785130d77cfcc58ff583cf26cd1770bf1", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + "amphp/amp": "^3", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.23" }, "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "AdvancedJsonRpc\\": "lib/" + "Amp\\Sync\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" } ], - "description": "A more advanced JSONRPC implementation", + "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", + "homepage": "https://github.com/amphp/sync", + "keywords": [ + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" + ], "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v2.3.0" }, - "time": "2021-06-11T22:34:44+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-08-03T19:31:26+00:00" }, { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", + "name": "composer/pcre", + "version": "3.3.2", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" + "url": "https://github.com/composer/pcre.git", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "LanguageServerProtocol\\": "src/" + "Composer\\Pcre\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "PHP classes for the Language Server Protocol", + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", "keywords": [ - "language", - "microsoft", - "php", - "server" + "PCRE", + "preg", + "regex", + "regular expression" ], "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.2" }, - "time": "2024-04-30T00:40:11+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-11-12T16:29:46+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.12.1", + "name": "composer/semver", + "version": "3.4.3", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" + "url": "https://github.com/composer/semver.git", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" - }, - "funding": [ + "authors": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2024-11-08T17:47:46+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.5.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" - }, - "time": "2024-09-08T10:13:13+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.19.4", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.1" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" - }, - "time": "2024-09-29T15:01:53+00:00" - }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" - }, - "time": "2019-03-29T20:06:56+00:00" - }, - { - "name": "pdepend/pdepend", - "version": "2.16.2", - "source": { - "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", - "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", - "shasum": "" - }, - "require": { - "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", - "symfony/polyfill-mbstring": "^1.19" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0|^1.2.3", - "gregwar/rst": "^1.0", - "squizlabs/php_codesniffer": "^2.0.0" - }, - "bin": [ - "src/bin/pdepend" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "PDepend\\": "src/main/php/PDepend" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Official version of pdepend to be handled with Composer", - "keywords": [ - "PHP Depend", - "PHP_Depend", - "dev", - "pdepend" - ], - "support": { - "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.16.2" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", - "type": "tidelift" - } - ], - "time": "2023-12-17T18:09:59+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" - }, - "time": "2022-10-14T12:47:21+00:00" - }, - { - "name": "phpmd/phpmd", - "version": "2.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpmd/phpmd.git", - "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", - "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", - "shasum": "" - }, - "require": { - "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", - "ext-xml": "*", - "pdepend/pdepend": "^2.16.1", - "php": ">=5.3.9" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0 || ^1.3.2", - "ext-json": "*", - "ext-simplexml": "*", - "gregwar/rst": "^1.0", - "mikey179/vfsstream": "^1.6.8", - "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" - }, - "bin": [ - "src/bin/phpmd" - ], - "type": "library", - "autoload": { - "psr-0": { - "PHPMD\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Manuel Pichler", - "email": "github@manuel-pichler.de", - "homepage": "https://github.com/manuelpichler", - "role": "Project Founder" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" }, { - "name": "Marc Würth", - "email": "ravage@bluewin.ch", - "homepage": "https://github.com/ravage84", - "role": "Project Maintainer" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" }, { - "name": "Other contributors", - "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", - "role": "Contributors" + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", - "homepage": "https://phpmd.org/", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "dev", - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" + "semantic", + "semver", + "validation", + "versioning" ], "support": { - "irc": "irc://irc.freenode.org/phpmd", - "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.15.0" + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", "type": "tidelift" } ], - "time": "2023-12-11T08:22:20+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { - "name": "phpmetrics/phpmetrics", - "version": "v2.8.2", + "name": "composer/xdebug-handler", + "version": "3.0.5", "source": { "type": "git", - "url": "https://github.com/phpmetrics/PhpMetrics.git", - "reference": "4b77140a11452e63c7a9b98e0648320bf6710090" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/4b77140a11452e63c7a9b98e0648320bf6710090", - "reference": "4b77140a11452e63c7a9b98e0648320bf6710090", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^3|^4", - "php": ">=5.5" - }, - "replace": { - "halleck45/php-metrics": "*", - "halleck45/phpmetrics": "*" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14", - "sebastian/comparator": ">=1.2.3", - "squizlabs/php_codesniffer": "^3.5", - "symfony/dom-crawler": "^3.0 || ^4.0 || ^5.0" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, - "bin": [ - "bin/phpmetrics" - ], "type": "library", "autoload": { - "files": [ - "./src/functions.php" - ], - "psr-0": { - "Hal\\": "./src/" + "psr-4": { + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1500,596 +1010,489 @@ ], "authors": [ { - "name": "Jean-François Lépine", - "email": "lepinejeanfrancois@yahoo.fr", - "homepage": "http://www.lepine.pro", - "role": "Copyright Holder" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Static analyzer tool for PHP : Coupling, Cyclomatic complexity, Maintainability Index, Halstead's metrics... and more !", - "homepage": "http://www.phpmetrics.org", + "description": "Restarts a process without Xdebug.", "keywords": [ - "analysis", - "qa", - "quality", - "testing" + "Xdebug", + "performance" ], "support": { - "issues": "https://github.com/PhpMetrics/PhpMetrics/issues", - "source": "https://github.com/phpmetrics/PhpMetrics/tree/v2.8.2" + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, - "time": "2023-03-08T15:03:36+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "0.4.9", + "name": "daverandom/libdns", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531" + "url": "https://github.com/DaveRandom/LibDNS.git", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/98a088b17966bdf6ee25c8a4b634df313d8aa531", - "reference": "98a088b17966bdf6ee25c8a4b634df313d8aa531", + "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "ext-ctype": "*", + "php": ">=7.1" }, - "require-dev": { - "consistence/coding-standard": "^3.5", - "ergebnis/composer-normalize": "^2.0.2", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phing/phing": "^2.16.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.26", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^6.3", - "slevomat/coding-standard": "^4.7.2", - "symfony/process": "^4.0" + "suggest": { + "ext-intl": "Required for IDN support" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.4-dev" - } - }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "LibDNS\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", + "description": "DNS protocol implementation written in pure PHP", + "keywords": [ + "dns" + ], "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/master" + "issues": "https://github.com/DaveRandom/LibDNS/issues", + "source": "https://github.com/DaveRandom/LibDNS/tree/v2.1.0" }, - "time": "2020-08-03T20:32:43+00:00" + "time": "2024-04-12T12:12:48+00:00" }, { - "name": "phpstan/phpstan", - "version": "1.12.16", + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "e0bb5cb78545aae631220735aa706eac633a6be9" + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e0bb5cb78545aae631220735aa706eac633a6be9", - "reference": "e0bb5cb78545aae631220735aa706eac633a6be9", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, - "conflict": { - "phpstan/phpstan-shim": "*" + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ] + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ + "authors": [ { - "url": "https://github.com/ondrejmirtes", - "type": "github" + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" }, { - "url": "https://github.com/phpstan", - "type": "github" + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" } ], - "time": "2025-01-21T14:50:05+00:00" + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "9.2.32", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-text-template": "^2.0.4", - "sebastian/code-unit-reverse-lookup": "^2.0.3", - "sebastian/complexity": "^2.0.3", - "sebastian/environment": "^5.1.5", - "sebastian/lines-of-code": "^1.0.4", - "sebastian/version": "^3.0.2", - "theseer/tokenizer": "^1.2.3" + "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "^9.6" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "9.2.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "XdgBaseDir\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" + "MIT" ], + "description": "implementation of xdg base directory specification for php", "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-08-22T04:23:01+00:00" + "time": "2019-12-04T15:06:13+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "name": "doctrine/coding-standard", + "version": "12.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "url": "https://github.com/doctrine/coding-standard.git", + "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/1b2b7dc58c68833af481fb9325c25abd40681c79", + "reference": "1b2b7dc58c68833af481fb9325c25abd40681c79", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0.0", + "php": "^7.2 || ^8.0", + "slevomat/coding-standard": "^8.11", + "squizlabs/php_codesniffer": "^3.7" }, + "type": "phpcodesniffer-standard", "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Steve Müller", + "email": "st.mueller@dzh-online.de" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "The Doctrine Coding Standard is a set of PHPCS rules applied to all Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/coding-standard.html", "keywords": [ - "filesystem", - "iterator" + "checks", + "code", + "coding", + "cs", + "dev", + "doctrine", + "rules", + "sniffer", + "sniffs", + "standard", + "style" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "issues": "https://github.com/doctrine/coding-standard/issues", + "source": "https://github.com/doctrine/coding-standard/tree/12.0.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2023-04-24T17:43:28+00:00" }, { - "name": "phpunit/php-invoker", - "version": "3.1.1", + "name": "doctrine/deprecations", + "version": "1.1.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", "shasum": "" }, "require": { - "php": ">=7.3" + "php": "^7.1 || ^8.0" }, "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { - "ext-pcntl": "*" + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" + "MIT" ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2024-12-07T21:18:45+00:00" }, { - "name": "phpunit/php-text-template", - "version": "2.0.4", + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", "shasum": "" }, "require": { - "php": ">=7.3" + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "ISC" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], + "description": "A more advanced JSONRPC implementation", "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2021-06-11T22:34:44+00:00" }, { - "name": "phpunit/php-timer", - "version": "5.0.3", + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "LanguageServerProtocol\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "ISC" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "PHP classes for the Language Server Protocol", "keywords": [ - "timer" + "language", + "microsoft", + "php", + "server" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { - "name": "phpunit/phpunit", - "version": "9.6.22", + "name": "fidry/cpu-core-counter", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.5.0 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.32", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.4", - "phpunit/php-timer": "^5.0.3", - "sebastian/cli-parser": "^1.0.2", - "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.6", - "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", - "sebastian/global-state": "^5.0.7", - "sebastian/object-enumerator": "^4.0.4", - "sebastian/resource-operations": "^3.0.4", - "sebastian/type": "^3.2.1", - "sebastian/version": "^3.0.2" + "php": "^7.2 || ^8.0" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" }, - "bin": [ - "phpunit" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Tiny utility to get the number of CPU cores.", "keywords": [ - "phpunit", - "testing", - "xunit" + "CPU", + "core" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/theofidry", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" } ], - "time": "2024-12-05T13:48:26+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { - "name": "psalm/plugin-phpunit", - "version": "0.13.0", + "name": "kelunik/certificate", + "version": "v1.1.3", "source": { "type": "git", - "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "e006914489f3e445f5cb786ea6f3df89ea30129b" + "url": "https://github.com/kelunik/certificate.git", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e006914489f3e445f5cb786ea6f3df89ea30129b", - "reference": "e006914489f3e445f5cb786ea6f3df89ea30129b", + "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.10", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "ext-simplexml": "*", - "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", - "vimeo/psalm": "dev-master || dev-4.x || ^4.0" + "ext-openssl": "*", + "php": ">=7.0" }, "require-dev": { - "codeception/codeception": "^4.0.3", - "squizlabs/php_codesniffer": "^3.3.1", - "weirdan/codeception-psalm-module": "^0.7.1", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^6 | 7 | ^8 | ^9" }, - "type": "psalm-plugin", + "type": "library", "extra": { - "psalm": { - "pluginClass": "Psalm\\PhpUnitPlugin\\Plugin" + "branch-alias": { + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Psalm\\PhpUnitPlugin\\": "src" + "Kelunik\\Certificate\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2098,43 +1501,65 @@ ], "authors": [ { - "name": "Matt Brown", - "email": "github@muglug.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Psalm plugin for PHPUnit", + "description": "Access certificate details and transform between different formats.", + "keywords": [ + "DER", + "certificate", + "certificates", + "openssl", + "pem", + "x509" + ], "support": { - "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", - "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.13.0" + "issues": "https://github.com/kelunik/certificate/issues", + "source": "https://github.com/kelunik/certificate/tree/v1.1.3" }, - "time": "2020-10-19T12:43:17+00:00" + "time": "2023-02-03T21:26:53+00:00" }, { - "name": "psr/container", - "version": "2.0.2", + "name": "league/uri", + "version": "7.5.1", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + "url": "https://github.com/thephpleague/uri.git", + "reference": "81fb5145d2644324614cc532b28efd0215bda430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", "shasum": "" }, "require": { - "php": ">=7.4.0" + "league/uri-interfaces": "^7.5", + "php": "^8.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "7.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2143,51 +1568,84 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.5.1" }, - "time": "2021-11-05T16:47:00+00:00" + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:40:02+00:00" }, { - "name": "psr/log", - "version": "3.0.2", + "name": "league/uri-interfaces", + "version": "7.5.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", "shasum": "" }, "require": { - "php": ">=8.0.0" + "ext-filter": "*", + "php": "^8.1", + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "7.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "src" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2196,108 +1654,134 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" }, - "time": "2024-09-11T13:17:53+00:00" + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:18:47+00:00" }, { - "name": "sebastian/cli-parser", - "version": "1.0.2", + "name": "netresearch/jsonmapper", + "version": "v4.5.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "JsonMapper": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "OSL-3.0" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", + "description": "Map nested JSON structures onto PHP classes", "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:27:43+00:00" + "time": "2024-09-08T10:13:13+00:00" }, { - "name": "sebastian/code-unit", - "version": "1.0.8", + "name": "nikic/php-parser", + "version": "v5.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2305,310 +1789,294 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nikita Popov" } ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "name": "pdepend/pdepend", + "version": "2.16.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "url": "https://github.com/pdepend/pdepend.git", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=5.3.7", + "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/polyfill-mbstring": "^1.19" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "easy-doc/easy-doc": "0.0.0|^1.2.3", + "gregwar/rst": "^1.0", + "squizlabs/php_codesniffer": "^2.0.0" }, + "bin": [ + "src/bin/pdepend" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PDepend\\": "src/main/php/PDepend" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } + "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "issues": "https://github.com/pdepend/pdepend/issues", + "source": "https://github.com/pdepend/pdepend/tree/2.16.2" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2023-12-17T18:09:59+00:00" }, { - "name": "sebastian/comparator", - "version": "4.0.8", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "comparator", - "compare", - "equality" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "sebastian/complexity", - "version": "2.0.3", + "name": "phpdocumentor/reflection-docblock", + "version": "5.6.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:19:30+00:00" + "time": "2024-12-07T09:39:29+00:00" }, { - "name": "sebastian/diff", - "version": "4.0.6", + "name": "phpdocumentor/type-resolver", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", "shasum": "" }, "require": { - "php": ">=7.3" + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:30:58+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { - "name": "sebastian/environment", - "version": "5.1.5", + "name": "phpmd/phpmd", + "version": "2.15.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "url": "https://github.com/phpmd/phpmd.git", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", "shasum": "" }, "require": { - "php": ">=7.3" + "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", + "ext-xml": "*", + "pdepend/pdepend": "^2.16.1", + "php": ">=5.3.9" }, "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" + "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "ext-json": "*", + "ext-simplexml": "*", + "gregwar/rst": "^1.0", + "mikey179/vfsstream": "^1.6.8", + "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" }, + "bin": [ + "src/bin/phpmd" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "PHPMD\\": "src/main/php" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2616,480 +2084,459 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Manuel Pichler", + "email": "github@manuel-pichler.de", + "homepage": "https://github.com/manuelpichler", + "role": "Project Founder" + }, + { + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", + "role": "Contributors" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", + "homepage": "https://phpmd.org/", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "dev", + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" ], "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "irc": "irc://irc.freenode.org/phpmd", + "issues": "https://github.com/phpmd/phpmd/issues", + "source": "https://github.com/phpmd/phpmd/tree/2.15.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2023-12-11T08:22:20+00:00" }, { - "name": "sebastian/exporter", - "version": "4.0.6", + "name": "phpstan/phpdoc-parser", + "version": "1.33.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" + "MIT" ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { - "name": "sebastian/global-state", - "version": "5.0.7", + "name": "phpstan/phpstan", + "version": "2.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "7d08f569e582ade182a375c366cbd896eccadd3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7d08f569e582ade182a375c366cbd896eccadd3a", + "reference": "7d08f569e582ade182a375c366cbd896eccadd3a", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" + "php": "^7.4|^8.0" }, - "suggest": { - "ext-uopz": "*" + "conflict": { + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } + "MIT" ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "PHPStan - PHP Static Analysis Tool", "keywords": [ - "global state" + "dev", + "static analysis" ], "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", "type": "github" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-01-21T14:54:06+00:00" }, { - "name": "sebastian/lines-of-code", - "version": "1.0.4", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "4.0.4", + "name": "psr/http-factory", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "source": "https://github.com/php-fig/http-factory" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { - "name": "sebastian/object-reflector", - "version": "2.0.4", + "name": "psr/http-message", + "version": "2.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { - "name": "sebastian/recursion-context", - "version": "4.0.5", + "name": "psr/log", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.4", + "name": "revolt/event-loop", + "version": "v1.0.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" + "url": "https://github.com/revoltphp/event-loop.git", + "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/25de49af7223ba039f64da4ae9a28ec2d10d0254", + "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.15" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Revolt\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Rock-solid event loop for concurrent PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "event", + "event-loop", + "non-blocking", + "scheduler" + ], "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + "issues": "https://github.com/revoltphp/event-loop/issues", + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.6" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-14T16:00:52+00:00" + "time": "2023-11-30T05:34:44+00:00" }, { - "name": "sebastian/type", - "version": "3.2.1", + "name": "sebastian/diff", + "version": "6.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -3104,15 +2551,25 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -3120,134 +2577,153 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "slevomat/coding-standard", + "version": "8.15.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "7d1d957421618a3803b593ec31ace470177d7817" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", + "reference": "7d1d957421618a3803b593ec31ace470177d7817", "shasum": "" }, "require": { - "php": ">=7.3" + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.23.1", + "squizlabs/php_codesniffer": "^3.9.0" }, - "type": "library", + "require-dev": { + "phing/phing": "2.17.4", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.10.60", + "phpstan/phpstan-deprecation-rules": "1.1.4", + "phpstan/phpstan-phpunit": "1.3.16", + "phpstan/phpstan-strict-rules": "1.5.2", + "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + }, + "type": "phpcodesniffer-standard", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "8.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "keywords": [ + "dev", + "phpcs" ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/kukulich", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-03-09T15:20:58+00:00" }, { - "name": "slevomat/coding-standard", - "version": "6.4.1", + "name": "spatie/array-to-xml", + "version": "3.4.0", "source": { "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "696dcca217d0c9da2c40d02731526c1e25b65346" + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/696dcca217d0c9da2c40d02731526c1e25b65346", - "reference": "696dcca217d0c9da2c40d02731526c1e25b65346", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", + "reference": "7dcfc67d60b0272926dabad1ec01f6b8a5fb5e67", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.1 || ^8.0", - "phpstan/phpdoc-parser": "0.4.5 - 0.4.9", - "squizlabs/php_codesniffer": "^3.5.6" + "ext-dom": "*", + "php": "^8.0" }, "require-dev": { - "phing/phing": "2.16.3", - "php-parallel-lint/php-parallel-lint": "1.2.0", - "phpstan/phpstan": "0.12.48", - "phpstan/phpstan-deprecation-rules": "0.12.5", - "phpstan/phpstan-phpunit": "0.12.16", - "phpstan/phpstan-strict-rules": "0.12.5", - "phpunit/phpunit": "7.5.20|8.5.5|9.4.0" + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" }, - "type": "phpcodesniffer-standard", + "type": "library", "extra": { "branch-alias": { - "dev-master": "6.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" + "Spatie\\ArrayToXml\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], "support": { - "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/6.4.1" + "source": "https://github.com/spatie/array-to-xml/tree/3.4.0" }, "funding": [ { - "url": "https://github.com/kukulich", - "type": "github" + "url": "https://spatie.be/open-source/support-us", + "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", - "type": "tidelift" + "url": "https://github.com/spatie", + "type": "github" } ], - "time": "2020-10-05T12:39:37+00:00" + "time": "2024-12-16T12:45:15+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.2", + "version": "3.11.3", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079" + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1368f4a58c3c52114b86b1abe8f4098869cb0079", - "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", "shasum": "" }, "require": { @@ -3312,22 +2788,26 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-12-11T16:04:26+00:00" + "time": "2025-01-23T17:04:15+00:00" }, { "name": "symfony/config", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "bcd3c4adf0144dee5011bb35454728c38adec055" + "reference": "7716594aaae91d9141be080240172a92ecca4d44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/bcd3c4adf0144dee5011bb35454728c38adec055", - "reference": "bcd3c4adf0144dee5011bb35454728c38adec055", + "url": "https://api.github.com/repos/symfony/config/zipball/7716594aaae91d9141be080240172a92ecca4d44", + "reference": "7716594aaae91d9141be080240172a92ecca4d44", "shasum": "" }, "require": { @@ -3373,7 +2853,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.2.0" + "source": "https://github.com/symfony/config/tree/v7.2.3" }, "funding": [ { @@ -3389,51 +2869,50 @@ "type": "tidelift" } ], - "time": "2024-11-04T11:36:24+00:00" + "time": "2025-01-22T12:07:01+00:00" }, { "name": "symfony/console", - "version": "v6.4.17", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^6.4|^7.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3467,7 +2946,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.17" + "source": "https://github.com/symfony/console/tree/v7.2.1" }, "funding": [ { @@ -3483,20 +2962,20 @@ "type": "tidelift" } ], - "time": "2024-12-07T12:07:30+00:00" + "time": "2024-12-11T03:49:26+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "a475747af1a1c98272a5471abc35f3da81197c5d" + "reference": "1d321c4bc3fe926fd4c38999a4c9af4f5d61ddfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a475747af1a1c98272a5471abc35f3da81197c5d", - "reference": "a475747af1a1c98272a5471abc35f3da81197c5d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1d321c4bc3fe926fd4c38999a4c9af4f5d61ddfc", + "reference": "1d321c4bc3fe926fd4c38999a4c9af4f5d61ddfc", "shasum": "" }, "require": { @@ -3547,7 +3026,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.2.0" + "source": "https://github.com/symfony/dependency-injection/tree/v7.2.3" }, "funding": [ { @@ -3563,7 +3042,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T15:45:00+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4016,86 +3495,6 @@ ], "time": "2024-09-09T11:45:10+00:00" }, - { - "name": "symfony/polyfill-php80", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, { "name": "symfony/service-contracts", "version": "v3.5.1", @@ -4342,76 +3741,27 @@ ], "time": "2024-10-18T07:58:17+00:00" }, - { - "name": "theseer/tokenizer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:36:25+00:00" - }, { "name": "vimeo/psalm", - "version": "4.30.0", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + "reference": "827971f8bc7a28bb4f842f34bf8901521de1cea3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/827971f8bc7a28bb4f842f34bf8901521de1cea3", + "reference": "827971f8bc7a28bb4f842f34bf8901521de1cea3", "shasum": "" }, "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/parallel": "^2.3", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -4420,35 +3770,36 @@ "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", + "felixfbecker/advanced-json-rpc": "^3.1", + "felixfbecker/language-server-protocol": "^1.5.3", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" + "nikic/php-parser": "^5.0.0", + "php": "~8.1.17 || ~8.2.4 || ~8.3.0 || ~8.4.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^6.0 || ^7.0", + "symfony/filesystem": "^6.0 || ^7.0" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", + "amphp/phpunit-util": "^3", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "dg/bypass-finals": "^1.5", "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.19", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^6.0 || ^7.0" }, "suggest": { "ext-curl": "In order to send data to shepherd", @@ -4461,20 +3812,19 @@ "psalm-refactor", "psalter" ], - "type": "library", + "type": "project", "extra": { "branch-alias": { "dev-1.x": "1.x-dev", "dev-2.x": "2.x-dev", "dev-3.x": "3.x-dev", - "dev-master": "4.x-dev" + "dev-4.x": "4.x-dev", + "dev-5.x": "5.x-dev", + "dev-6.x": "6.x-dev", + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], "psr-4": { "Psalm\\": "src/Psalm/" } @@ -4486,19 +3836,25 @@ "authors": [ { "name": "Matthew Brown" + }, + { + "name": "Daniil Gentili", + "email": "daniil@daniil.it" } ], "description": "A static analysis tool for finding errors in PHP applications", "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { + "docs": "https://psalm.dev/docs", "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" + "source": "https://github.com/vimeo/psalm" }, - "time": "2022-11-06T20:37:08+00:00" + "time": "2025-01-30T19:33:41+00:00" }, { "name": "webmozart/assert", @@ -4557,57 +3913,6 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" } ], "packages-dev": [], From 9fa687233a4d7556b18d06466e73ecf4231c41df Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:49:47 +0900 Subject: [PATCH 11/16] Remove composer-require-checker from dev dependencies Composer-require-checker was removed from the require-dev section of composer.json. This change simplifies the development dependencies and reduces unnecessary overhead. --- composer.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 47dfad2..2965a8c 100644 --- a/composer.json +++ b/composer.json @@ -22,9 +22,7 @@ }, "require-dev": { "phpunit/phpunit": "^11.5.6", - "bamarni/composer-bin-plugin": "^1.4", - "maglnet/composer-require-checker": "^3.0" - + "bamarni/composer-bin-plugin": "^1.4" }, "autoload": { "psr-4": { From e2762b5475fd8454a63330695d3496860d71fd65 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:50:20 +0900 Subject: [PATCH 12/16] Set suppressions for unused code issues in Psalm config Added suppression rules for various unused code issues, including methods, properties, variables, and classes. This ensures cleaner Psalm outputs by addressing non-critical warnings without altering functionality. --- psalm.xml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/psalm.xml b/psalm.xml index 7c0333d..a87272e 100644 --- a/psalm.xml +++ b/psalm.xml @@ -1,10 +1,10 @@ @@ -12,4 +12,14 @@ + + + + + + + + + + From f1c16e6fce0ad96df20e74ce2a113f64a5f0ccd0 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:52:57 +0900 Subject: [PATCH 13/16] Update CI workflows to use PHP 8.4 Replaced PHP 8.3 with PHP 8.4 in static analysis and coding standards workflows. Removed the `old_stable` configuration from the CI workflow and set `current_stable` to 8.4. These changes align the workflows with the latest stable PHP version. --- .github/workflows/coding-standards.yml | 2 +- .github/workflows/continuous-integration.yml | 1 - .github/workflows/static-analysis.yml | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index 1a6e733..2a62ee6 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -9,4 +9,4 @@ jobs: cs: uses: ray-di/.github/.github/workflows/coding-standards.yml@v1 with: - php_version: 8.3 + php_version: 8.4 diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 2e3bb5a..644d1ca 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -9,5 +9,4 @@ jobs: ci: uses: ray-di/.github/.github/workflows/continuous-integration.yml@v1 with: - old_stable: '["7.4", "8.0", "8.1", "8.2", "8.3"]' current_stable: 8.4 diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index ffae3d5..3713270 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -9,5 +9,5 @@ jobs: sa: uses: ray-di/.github/.github/workflows/static-analysis.yml@v1 with: - php_version: 8.3 + php_version: 8.4 has_crc_config: false From 6d75d7da90214ef711660b667a4878bd12612e2f Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 10:56:50 +0900 Subject: [PATCH 14/16] Add missing return type annotation in AuraSqlQueryPager This change adds the missing return type annotation for the `init` method in `AuraSqlQueryPager`. It improves code readability and ensures better static analysis compatibility. --- src/Pagerfanta/AuraSqlQueryPager.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Pagerfanta/AuraSqlQueryPager.php b/src/Pagerfanta/AuraSqlQueryPager.php index 737f37f..c0bf41a 100644 --- a/src/Pagerfanta/AuraSqlQueryPager.php +++ b/src/Pagerfanta/AuraSqlQueryPager.php @@ -39,6 +39,9 @@ public function __construct(private readonly ViewInterface $view, private readon /** * @phpstan-param positive-int $paging + * + * @return AuraSqlQueryPagerInterface + * * {@inheritDoc} */ public function init(ExtendedPdoInterface $pdo, SelectInterface $select, int $paging, RouteGeneratorInterface $routeGenerator) From 3c581e750f8c8493a466c5b20f48ed608b1298bd Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 11:23:15 +0900 Subject: [PATCH 15/16] Update composer.json dependencies Upgraded several dependencies to newer versions for better compatibility and performance. Removed the `symfony/polyfill-php81` dependency as it is no longer needed. Adjusted `rize/uri-template` to require only `^0.4`. --- composer.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 2965a8c..cc565e7 100644 --- a/composer.json +++ b/composer.json @@ -10,14 +10,13 @@ "require": { "php": "^8.4", "ext-pdo": "*", - "ray/di": "^2.13.1", - "ray/aop": "^2.10.4", + "ray/di": "^2.18", + "ray/aop": "^2.17", "aura/sql": "^6.0", "pagerfanta/pagerfanta": "^3.5", - "rize/uri-template": "^0.3.4 || ^0.4", + "rize/uri-template": "^0.4", "doctrine/annotations": "^1.11 || ^2.0", "psr/log": "^1.1 || ^2.0 || ^3.0", - "symfony/polyfill-php81": "^1.24", "aura/sqlquery": "^3.0" }, "require-dev": { From d50103deaa2def4f7526775a4ef448d617a5b9ce Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Sat, 1 Feb 2025 13:06:51 +0900 Subject: [PATCH 16/16] "Remove Scrutinizer configuration file" The `.scrutinizer.yml` file was deleted as it is no longer needed. This change removes unused configurations related to static analysis tools, simplifying the project setup. --- .scrutinizer.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 .scrutinizer.yml diff --git a/.scrutinizer.yml b/.scrutinizer.yml deleted file mode 100644 index 72688a8..0000000 --- a/.scrutinizer.yml +++ /dev/null @@ -1,13 +0,0 @@ -filter: - paths: ["src/*"] - -tools: - php_sim: true - php_pdepend: true - php_analyzer: true -build: - nodes: - analysis: - tests: - override: - - php-scrutinizer-run --enable-security-analysis