diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index e579cf3c..ac9fc0a0 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -13,7 +13,6 @@ jobs: fail-fast: false matrix: php-version: - - "7.3" - "7.4" - "8.0" - "8.1" diff --git a/Magento2/Helpers/Commenting/PHPDocFormattingValidator.php b/Magento2/Helpers/Commenting/PHPDocFormattingValidator.php index 9fd42e7f..a87312d5 100644 --- a/Magento2/Helpers/Commenting/PHPDocFormattingValidator.php +++ b/Magento2/Helpers/Commenting/PHPDocFormattingValidator.php @@ -123,6 +123,12 @@ public function hasDeprecatedWellFormatted($commentStartPtr, $tokens) } $seePtr = $this->getTagPosition('@see', $commentStartPtr, $tokens); if ($seePtr === -1) { + if (preg_match( + "/This [a-zA-Z]* will be removed in version \d.\d.\d without replacement/", + $tokens[$deprecatedPtr + 2]['content'] + )) { + return true; + } return false; } diff --git a/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/AddArrayAccessInterfaceReturnTypesTest.php b/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/AddArrayAccessInterfaceReturnTypesTest.php index 3d53d5aa..89c9bb05 100644 --- a/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/AddArrayAccessInterfaceReturnTypesTest.php +++ b/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/AddArrayAccessInterfaceReturnTypesTest.php @@ -16,9 +16,9 @@ class AddArrayAccessInterfaceReturnTypesTest extends AbstractRectorTestCase /** * @dataProvider provideData() */ - public function test(SmartFileInfo $fileInfo): void + public function test(string $fileInfo): void { - $this->doTestFileInfo($fileInfo); + $this->doTestFile($fileInfo); } /** diff --git a/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/config/configured_rule.php b/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/config/configured_rule.php index 13e377ff..ab2ece4a 100644 --- a/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/config/configured_rule.php +++ b/Magento2/Rector/Tests/AddArrayAccessInterfaceReturnTypes/config/configured_rule.php @@ -1,14 +1,13 @@ services(); - $services->set(AddArrayAccessInterfaceReturnTypes::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(AddArrayAccessInterfaceReturnTypes::class); }; diff --git a/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/ReplaceMbStrposNullLimitTest.php b/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/ReplaceMbStrposNullLimitTest.php index 77a15b75..eb87d394 100644 --- a/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/ReplaceMbStrposNullLimitTest.php +++ b/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/ReplaceMbStrposNullLimitTest.php @@ -16,9 +16,9 @@ class ReplaceMbStrposNullLimitTest extends AbstractRectorTestCase /** * @dataProvider provideData() */ - public function test(SmartFileInfo $fileInfo): void + public function test(string $fileInfo): void { - $this->doTestFileInfo($fileInfo); + $this->doTestFile($fileInfo); } /** diff --git a/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/config/configured_rule.php b/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/config/configured_rule.php index a08979ca..2e8bacac 100644 --- a/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/config/configured_rule.php +++ b/Magento2/Rector/Tests/ReplaceMbStrposNullLimit/config/configured_rule.php @@ -1,14 +1,13 @@ services(); - $services->set(ReplaceMbStrposNullLimit::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(ReplaceMbStrposNullLimit::class); }; diff --git a/Magento2/Rector/Tests/ReplaceNewDateTimeNull/ReplaceNewDateTimeNullTest.php b/Magento2/Rector/Tests/ReplaceNewDateTimeNull/ReplaceNewDateTimeNullTest.php index fe3c6028..49c3491f 100644 --- a/Magento2/Rector/Tests/ReplaceNewDateTimeNull/ReplaceNewDateTimeNullTest.php +++ b/Magento2/Rector/Tests/ReplaceNewDateTimeNull/ReplaceNewDateTimeNullTest.php @@ -16,9 +16,9 @@ class ReplaceNewDateTimeNullTest extends AbstractRectorTestCase /** * @dataProvider provideData() */ - public function test(SmartFileInfo $fileInfo): void + public function test(string $fileInfo): void { - $this->doTestFileInfo($fileInfo); + $this->doTestFile($fileInfo); } /** diff --git a/Magento2/Rector/Tests/ReplaceNewDateTimeNull/config/configured_rule.php b/Magento2/Rector/Tests/ReplaceNewDateTimeNull/config/configured_rule.php index 83f8e100..5b4f4b1a 100644 --- a/Magento2/Rector/Tests/ReplaceNewDateTimeNull/config/configured_rule.php +++ b/Magento2/Rector/Tests/ReplaceNewDateTimeNull/config/configured_rule.php @@ -1,14 +1,13 @@ services(); - $services->set(ReplaceNewDateTimeNull::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(ReplaceNewDateTimeNull::class); }; diff --git a/Magento2/Rector/Tests/ReplacePregSplitNullLimit/ReplacePregSplitNullLimitTest.php b/Magento2/Rector/Tests/ReplacePregSplitNullLimit/ReplacePregSplitNullLimitTest.php index 5db48332..112bfe0f 100644 --- a/Magento2/Rector/Tests/ReplacePregSplitNullLimit/ReplacePregSplitNullLimitTest.php +++ b/Magento2/Rector/Tests/ReplacePregSplitNullLimit/ReplacePregSplitNullLimitTest.php @@ -16,9 +16,9 @@ class ReplacePregSplitNullLimitTest extends AbstractRectorTestCase /** * @dataProvider provideData() */ - public function test(SmartFileInfo $fileInfo): void + public function test(string $fileInfo): void { - $this->doTestFileInfo($fileInfo); + $this->doTestFile($fileInfo); } /** diff --git a/Magento2/Rector/Tests/ReplacePregSplitNullLimit/config/configured_rule.php b/Magento2/Rector/Tests/ReplacePregSplitNullLimit/config/configured_rule.php index d6f7f7cd..502704f4 100644 --- a/Magento2/Rector/Tests/ReplacePregSplitNullLimit/config/configured_rule.php +++ b/Magento2/Rector/Tests/ReplacePregSplitNullLimit/config/configured_rule.php @@ -1,14 +1,13 @@ services(); - $services->set(ReplacePregSplitNullLimit::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(ReplacePregSplitNullLimit::class); }; diff --git a/Magento2/Sniffs/Commenting/ClassAndInterfacePHPDocFormattingSniff.php b/Magento2/Sniffs/Commenting/ClassAndInterfacePHPDocFormattingSniff.php index 2d715c50..20c12851 100644 --- a/Magento2/Sniffs/Commenting/ClassAndInterfacePHPDocFormattingSniff.php +++ b/Magento2/Sniffs/Commenting/ClassAndInterfacePHPDocFormattingSniff.php @@ -24,6 +24,7 @@ class ClassAndInterfacePHPDocFormattingSniff implements Sniff * @var string[] List of tags that can not be used in comments */ public $forbiddenTags = [ + '@author', '@category', '@package', '@subpackage' diff --git a/Magento2/Sniffs/Commenting/ClassPropertyPHPDocFormattingSniff.php b/Magento2/Sniffs/Commenting/ClassPropertyPHPDocFormattingSniff.php index 571eab08..8c53669c 100644 --- a/Magento2/Sniffs/Commenting/ClassPropertyPHPDocFormattingSniff.php +++ b/Magento2/Sniffs/Commenting/ClassPropertyPHPDocFormattingSniff.php @@ -29,7 +29,9 @@ class ClassPropertyPHPDocFormattingSniff extends AbstractVariableSniff T_NS_SEPARATOR, T_STRING, T_COMMENT, - T_NULLABLE + T_NULLABLE, + T_BITWISE_AND, + T_TYPE_UNION, ]; /** diff --git a/Magento2/Sniffs/Legacy/TableNameSniff.php b/Magento2/Sniffs/Legacy/TableNameSniff.php index b9a9081f..4569f7fc 100644 --- a/Magento2/Sniffs/Legacy/TableNameSniff.php +++ b/Magento2/Sniffs/Legacy/TableNameSniff.php @@ -189,8 +189,10 @@ private function checkOccurrencesInProperty(File $phpcsFile, int $stackPtr, arra private function checkOccurrencesInArray(File $phpcsFile, int $stackPtr, array $tokens): void { $aliasPos = $phpcsFile->findPrevious( - T_CONSTANT_ENCAPSED_STRING, - $stackPtr -1 + T_WHITESPACE, + $stackPtr - 1, + null, + true, ); $alias = trim($tokens[$aliasPos]['content'], '\'"'); diff --git a/Magento2/Sniffs/Legacy/_files/restricted_classes.php b/Magento2/Sniffs/Legacy/_files/restricted_classes.php index ed6d2540..3269caca 100644 --- a/Magento2/Sniffs/Legacy/_files/restricted_classes.php +++ b/Magento2/Sniffs/Legacy/_files/restricted_classes.php @@ -29,6 +29,311 @@ 'Magento/Framework/DB/Adapter/Pdo/Mysql.php' ] ], + 'Zend_Json' => [ + 'warning_code' => 'ZendJsonIsRestricted', + 'replacement' => 'Magento\Framework\Serialize\Serializer\Json', + 'exclude' => [] + ], + 'Zend_Json_Exception' => [ + 'warning_code' => 'ZendJsonIsRestricted', + 'replacement' => '\InvalidArgumentException', + 'exclude' => [] + ], + 'Zend_Acl' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Acl', + 'exclude' => [] + ], + 'Zend_Acl_Role' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Role\GenericRole', + 'exclude' => [] + ], + 'Zend_Acl_Resource' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Resource\GenericResource', + 'exclude' => [] + ], + 'Zend_Acl_Role_Registry' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Role\Registry', + 'exclude' => [] + ], + 'Zend_Acl_Role_Registry_Exception' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Exception\InvalidArgumentException', + 'exclude' => [] + ], + 'Zend_Acl_Exception' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Exception\InvalidArgumentException', + 'exclude' => [] + ], + 'Zend_Acl_Role_Interface' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Laminas\Permissions\Acl\Role\RoleInterface', + 'exclude' => [] + ], + 'Zend_Currency' => [ + 'warning_code' => 'ZendAclIsRestricted', + 'replacement' => 'Magento\Framework\Currency\Data\Currency', + 'exclude' => [] + ], + 'Zend_Currency_Exception' => [ + 'warning_code' => 'ZendCurrencyIsRestricted', + 'replacement' => 'Magento\Framework\Currency\Exception\CurrencyException', + 'exclude' => [] + ], + 'Zend_Oauth_Http_Utility' => [ + 'warning_code' => 'ZendOauthIsRestricted', + 'replacement' => 'Laminas\OAuth\Http\Utility', + 'exclude' => [] + ], + 'Zend_Measure_Weight' => [ + 'warning_code' => 'ZendMeasureIsRestricted', + 'replacement' => 'Magento\Framework\Measure\Weight', + 'exclude' => [] + ], + 'Zend_Measure_Length' => [ + 'warning_code' => 'ZendMeasureIsRestricted', + 'replacement' => 'Magento\Framework\Measure\Length', + 'exclude' => [] + ], + 'Zend_Validate' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\ValidatorChain', + 'exclude' => [] + ], + 'Zend_Validate_Regex' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Regex', + 'exclude' => [] + ], + 'Zend_Validate_Interface' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\ValidatorInterface', + 'exclude' => [] + ], + 'Zend_Validate_EmailAddress' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\EmailAddress', + 'exclude' => [] + ], + 'Zend_Validate_StringLength' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\StringLength', + 'exclude' => [] + ], + 'Zend_Validate_Exception' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\ValidateException', + 'exclude' => [] + ], + 'Zend_Validate_File_ExcludeExtension' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\ExcludeExtension', + 'exclude' => [] + ], + 'Zend_Validate_File_Extension' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\Extension', + 'exclude' => [] + ], + 'Zend_Validate_File_ImageSize' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\ImageSize', + 'exclude' => [] + ], + 'Zend_Validate_File_FilesSize' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\FilesSize', + 'exclude' => [] + ], + 'Zend_Validate_Alnum' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\Alnum', + 'exclude' => [] + ], + 'Zend_Validate_Hostname' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\Hostname', + 'exclude' => [] + ], + 'Zend_Validate_Date' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Date', + 'exclude' => [] + ], + 'Zend_Validate_Digits' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Digits', + 'exclude' => [] + ], + 'Zend_Validate_Alpha' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\I18n\Validator\Alpha', + 'exclude' => [] + ], + 'Zend_Validate_InArray' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\InArray', + 'exclude' => [] + ], + 'Zend_Validate_Abstract' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\AbstractValidator', + 'exclude' => [] + ], + 'Zend_Validate_NotEmpty' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Magento\Framework\Validator\NotEmpty', + 'exclude' => [] + ], + 'Zend_Validate_Callback' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Callback', + 'exclude' => [] + ], + 'Zend_Validate_Ip' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Ip', + 'exclude' => [] + ], + 'Zend_Validate_Identical' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\Identical', + 'exclude' => [] + ], + 'Zend_Validate_File_IsImage' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\IsImage', + 'exclude' => [] + ], + 'Zend_Validate_File_Size' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\Validator\File\FilesSize', + 'exclude' => [] + ], + 'Zend_Validate_Float' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\I18n\Validator\IsFloat', + 'exclude' => [] + ], + 'Zend_Validate_Int' => [ + 'warning_code' => 'ZendValidateIsRestricted', + 'replacement' => 'Laminas\I18n\Validator\IsInt', + 'exclude' => [] + ], + 'Magento\Framework\HTTP\ZendClient' => [ + 'warning_code' => 'HttpZendClientIsRestricted', + 'replacement' => 'Magento\Framework\HTTP\LaminasClient', + 'exclude' => [] + ], + 'Magento\Framework\HTTP\ZendClientFactory' => [ + 'warning_code' => 'HttpZendClientFactoryIsRestricted', + 'replacement' => 'Magento\Framework\HTTP\LaminasClientFactory', + 'exclude' => [] + ], + 'Zend_Http_Client' => [ + 'warning_code' => 'ZendHttpIsRestricted', + 'replacement' => 'Laminas\Http\Request', + 'exclude' => [] + ], + 'Zend_Http_Response' => [ + 'warning_code' => 'ZendHttpIsRestricted', + 'replacement' => 'Laminas\Http\Response', + 'exclude' => [] + ], + 'Zend_Http_Exception' => [ + 'warning_code' => 'ZendHttpIsRestricted', + 'replacement' => 'Laminas\Http\Exception\RuntimeException', + 'exclude' => [] + ], + 'Zend_Http_Client_Exception' => [ + 'warning_code' => 'ZendHttpIsRestricted', + 'replacement' => 'Laminas\Http\Exception\RuntimeException', + 'exclude' => [] + ], + 'Zend_Http_Client_Adapter_Interface' => [ + 'warning_code' => 'ZendHttpIsRestricted', + 'replacement' => 'Laminas\Http\Client\Adapter\AdapterInterface', + 'exclude' => [] + ], + 'Zend_Filter_File_Rename' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\Filter\File\Rename', + 'exclude' => [] + ], + 'Zend_Filter' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Magento\Framework\Filter\FilterInput', + 'exclude' => [] + ], + 'Zend_Filter_Input' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Magento\Framework\Filter\FilterInput', + 'exclude' => [] + ], + 'Zend_Filter_Interface' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\Filter\FilterInterface', + 'exclude' => [] + ], + 'Zend_Filter_LocalizedToNormalized' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Magento\Framework\Filter\LocalizedToNormalized', + 'exclude' => [] + ], + 'Zend_Filter_Decrypt' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\Filter\Decrypt', + 'exclude' => [] + ], + 'Zend_Filter_Encrypt' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\Filter\Encrypt', + 'exclude' => [] + ], + 'Zend_Filter_Encrypt_Interface' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\Filter\Encrypt\EncryptionAlgorithmInterface', + 'exclude' => [] + ], + 'Zend_Filter_Alnum' => [ + 'warning_code' => 'ZendFilterIsRestricted', + 'replacement' => 'Laminas\I18n\Filter\Alnum', + 'exclude' => [] + ], + 'Zend_Translate_Adapter' => [ + 'warning_code' => 'ZendTranslateIsRestricted', + 'replacement' => 'Laminas\I18n\View\Helper\AbstractTranslatorHelper', + 'exclude' => [] + ], + 'Zend_File_Transfer_Exception' => [ + 'warning_code' => 'ZendFileIsRestricted', + 'replacement' => 'Laminas\File\Transfer\Exception\PhpEnvironmentException', + 'exclude' => [] + ], + 'Zend_File_Transfer_Adapter_Http' => [ + 'warning_code' => 'ZendFileIsRestricted', + 'replacement' => 'Magento\Framework\File\Http', + 'exclude' => [] + ], + 'Zend_File_Transfer' => [ + 'warning_code' => 'ZendFileIsRestricted', + 'replacement' => 'Laminas\File\Transfer\Transfer', + 'exclude' => [] + ], + 'Zend_Date' => [ + 'warning_code' => 'ZendDateIsRestricted', + 'replacement' => '\IntlDateFormatter', + 'exclude' => [] + ], + 'Zend_Locale_Format' => [ + 'warning_code' => 'ZendLocaleFormatIsRestricted', + 'replacement' => 'Laminas\I18n\Filter\NumberParse, \NumberFormatter, \IntlDateFormatter', + 'exclude' => [] + ], 'Magento\Framework\Serialize\Serializer\Serialize' => [ 'warning_code' => 'SerializerSerializeIsRestricted', 'replacement' => 'Magento\Framework\Serialize\SerializerInterface', diff --git a/Magento2/Sniffs/Less/ClassNamingSniff.php b/Magento2/Sniffs/Less/ClassNamingSniff.php index e684172b..3c3d1a86 100644 --- a/Magento2/Sniffs/Less/ClassNamingSniff.php +++ b/Magento2/Sniffs/Less/ClassNamingSniff.php @@ -66,7 +66,10 @@ public function process(File $phpcsFile, $stackPtr) [implode("", $matches[0])] ); } - if (strpos($className, self::STRING_HELPER_CLASSES_PREFIX, 2) !== false) { + + if (strlen($className) > 1 && strpos($className, self::STRING_HELPER_CLASSES_PREFIX, 2) !== false + && !str_starts_with($className, 'admin__') + ) { $phpcsFile->addError( 'CSS class names should be separated with "-" (dash) instead of "_" (underscore)', $stackPtr, diff --git a/Magento2/Sniffs/PHP/ShortEchoSyntaxSniff.php b/Magento2/Sniffs/PHP/ShortEchoSyntaxSniff.php index 946bb273..da1aa279 100644 --- a/Magento2/Sniffs/PHP/ShortEchoSyntaxSniff.php +++ b/Magento2/Sniffs/PHP/ShortEchoSyntaxSniff.php @@ -37,11 +37,30 @@ public function process(File $phpcsFile, $stackPtr) $nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($tokens[$nextToken]['code'] == T_ECHO) { - $phpcsFile->addWarning( + $fix = $phpcsFile->addFixableWarning( 'Short echo tag syntax must be used; expected "fixer->beginChangeset(); + + if (($nextToken - $stackPtr) === 1) { + $phpcsFile->fixer->replaceToken($stackPtr, 'fixer->replaceToken($stackPtr, 'fixer->replaceToken($i, ''); + } + } + + $phpcsFile->fixer->replaceToken($nextToken, ''); + $phpcsFile->fixer->endChangeset(); + } } } } diff --git a/Magento2/Sniffs/Security/XssTemplateSniff.php b/Magento2/Sniffs/Security/XssTemplateSniff.php index 3b4385e8..2ba8e8c0 100644 --- a/Magento2/Sniffs/Security/XssTemplateSniff.php +++ b/Magento2/Sniffs/Security/XssTemplateSniff.php @@ -135,6 +135,7 @@ public function process(File $phpcsFile, $stackPtr) $statement = array_shift($this->statements); $this->detectUnescapedString($statement); } + $this->hasDisallowedAnnotation = false; } /** diff --git a/Magento2/Tests/Annotation/MethodAnnotationStructureUnitTest.inc b/Magento2/Tests/Annotation/MethodAnnotationStructureUnitTest.inc index 4d3e0b7b..2e0fdf0e 100644 --- a/Magento2/Tests/Annotation/MethodAnnotationStructureUnitTest.inc +++ b/Magento2/Tests/Annotation/MethodAnnotationStructureUnitTest.inc @@ -369,4 +369,24 @@ class MethodAnnotationFixture { return true; } + + /** + * This deprecated function is correct even though it only contains the @deprecated tag. + * + * @deprecated This method will be removed in version 1.0.0 without replacement + */ + public function correctBecauseOfKeywordPhrase() + { + return false; + } + + /** + * This deprecated function is correct even though it only contains the @deprecated tag. + * + * @deprecated WOW! This method will be removed in version 1.0.0 without replacement + */ + public function alsoCorrectBecauseOfKeywordPhrase() + { + return false; + } } diff --git a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.1.inc b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.1.inc index e5895e32..4ffbea81 100644 --- a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.1.inc +++ b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.1.inc @@ -60,9 +60,9 @@ class EmptyHandler * @api is ok here * @deprecated can be used in this context * @see is ok here - * @author is actually ok + * @author should not be used * @category is irrelevant - * @package is not ment to be used + * @package should not be used * @subpackage does not belong here */ class ExampleHandler @@ -162,3 +162,20 @@ class OldHandler { } + +/** + * @deprecated This class will be removed in version 1.0.0 without replacement + */ +class DeprecatedButHandler +{ + +} + +/** + * @deprecated It's also deprecated - This class will be removed in version 1.0.0 without replacement + */ +class AlsoDeprecatedButHandler +{ + +} + diff --git a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.2.inc b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.2.inc index 96900de2..55d4a07f 100644 --- a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.2.inc +++ b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.2.inc @@ -60,9 +60,9 @@ interface EmptyHandler * @api is ok here * @deprecated can be used in this context * @see is ok here - * @author is actually ok + * @author should not be used * @category is irrelevant - * @package is not ment to be used + * @package should not be used * @subpackage does not belong here */ interface ExampleHandler @@ -153,3 +153,19 @@ interface DoNotCareHandler { } + +/** + * @deprecated This interface will be removed in version 1.0.0 without replacement + */ +interface DeprecatedButHandler +{ + +} + +/** + * @deprecated Yeah! This interface will be removed in version 1.0.0 without replacement + */ +interface AlsoDeprecatedButHandler +{ + +} diff --git a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.php b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.php index 868187c3..a88fae2c 100644 --- a/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.php +++ b/Magento2/Tests/Commenting/ClassAndInterfacePHPDocFormattingUnitTest.php @@ -29,6 +29,7 @@ public function getWarningList($testFile = '') 35 => 1, 44 => 1, 52 => 1, + 63 => 1, 64 => 1, 65 => 1, 66 => 1, diff --git a/Magento2/Tests/Commenting/ClassPropertyPHPDocFormattingUnitTest.inc b/Magento2/Tests/Commenting/ClassPropertyPHPDocFormattingUnitTest.inc index fa06bdc9..2925b6e0 100644 --- a/Magento2/Tests/Commenting/ClassPropertyPHPDocFormattingUnitTest.inc +++ b/Magento2/Tests/Commenting/ClassPropertyPHPDocFormattingUnitTest.inc @@ -194,6 +194,13 @@ class correctlyFormattedClassMemberDocBlock * @see Message with some reference */ protected string $itIsCorrect; + + /** + * @var string + * @deprecated This property will be removed in version 1.0.0 without replacement + */ + protected string $deprecatedWithKeyword; + private string $typedPropertyWithoutComment; private string $typedPropertyWithoutComment2; @@ -205,6 +212,6 @@ class correctlyFormattedClassMemberDocBlock private Test $typedPropertyWithoutComment5; private Test|Test2 $typedPropertyWithoutComment6; - - private ?Test $typedPropertyWithoutComment7; + + private ?Test $typedPropertyWithoutComment7; } diff --git a/Magento2/Tests/Commenting/ConstantsPHPDocFormattingUnitTest.2.inc b/Magento2/Tests/Commenting/ConstantsPHPDocFormattingUnitTest.2.inc index 12b89834..a751d8aa 100644 --- a/Magento2/Tests/Commenting/ConstantsPHPDocFormattingUnitTest.2.inc +++ b/Magento2/Tests/Commenting/ConstantsPHPDocFormattingUnitTest.2.inc @@ -63,4 +63,14 @@ class Profiler * @see */ const d = 100; + + /** + * @deprecated This constant will be removed in version 1.0.0 without replacement + */ + const KEYWORD_PHRASE = false; + + /** + * @deprecated It's awesome - This constant will be removed in version 1.0.0 without replacement + */ + const WITH_KEYWORD_PHRASE = false; } diff --git a/Magento2/Tests/Legacy/TableNameUnitTest.inc b/Magento2/Tests/Legacy/TableNameUnitTest.inc index d3b46079..c076adf4 100644 --- a/Magento2/Tests/Legacy/TableNameUnitTest.inc +++ b/Magento2/Tests/Legacy/TableNameUnitTest.inc @@ -28,6 +28,8 @@ $select = $connection->select()->from( ['main_table' => 'magento_sample_table'] ); +$fooBar=array(0=>array(125,0,875,750),'33' =>array(85,0,194,716), 10 => 100); + class Collection extends \Magento\Sales\Model\ResourceModel\Report\Order\Collection { /** diff --git a/Magento2/Tests/Legacy/TableNameUnitTest.php b/Magento2/Tests/Legacy/TableNameUnitTest.php index eec07bfe..3d9ccce0 100644 --- a/Magento2/Tests/Legacy/TableNameUnitTest.php +++ b/Magento2/Tests/Legacy/TableNameUnitTest.php @@ -19,7 +19,7 @@ public function getErrorList($testFile = '') 7 => 1, 16 => 1, 20 => 1, - 38 => 1, + 40 => 1, ]; } diff --git a/Magento2/Tests/Less/ClassNamingUnitTest.less b/Magento2/Tests/Less/ClassNamingUnitTest.less index ba60c205..b7860bc4 100644 --- a/Magento2/Tests/Less/ClassNamingUnitTest.less +++ b/Magento2/Tests/Less/ClassNamingUnitTest.less @@ -30,3 +30,13 @@ .category-title { background: green; } + +// @see https://github.com/magento/magento-coding-standard/issues/425 +.a { + text-decoration: none; +} + +// @see https://github.com/magento/magento-coding-standard/issues/409 +.admin__allowed { + background: green; +} diff --git a/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc index b254ebc0..14f7ba1e 100644 --- a/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc +++ b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc @@ -3,3 +3,5 @@ + + diff --git a/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc.fixed b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc.fixed new file mode 100644 index 00000000..a3073e65 --- /dev/null +++ b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.inc.fixed @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.php b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.php index 159ddedb..c7a68fe5 100644 --- a/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.php +++ b/Magento2/Tests/PHP/ShortEchoSyntaxUnitTest.php @@ -24,6 +24,7 @@ public function getWarningList() { return [ 5 => 1, + 7 => 1, ]; } } diff --git a/composer.json b/composer.json index 69f6abaf..58996ae3 100644 --- a/composer.json +++ b/composer.json @@ -6,15 +6,16 @@ "AFL-3.0" ], "type": "phpcodesniffer-standard", - "version": "25", + "version": "31", "require": { - "php": ">=7.3", - "webonyx/graphql-php": "^14.9", + "php": ">=7.4", + "webonyx/graphql-php": "^15.0", "ext-simplexml": "*", "ext-dom": "*", "phpcompatibility/php-compatibility": "^9.3", "squizlabs/php_codesniffer": "^3.6.1", - "rector/rector": "^0.13.0" + "rector/rector": "^0.15.10", + "symfony/polyfill": "^1.16" }, "require-dev": { "phpunit/phpunit": "^9.5.8" diff --git a/composer.lock b/composer.lock index 563cd8b9..e9e1ad93 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4545f720f14d1d67c1b4684e624da98b", + "content-hash": "15fe639e2947bab4e7afcbd629e84805", "packages": [ { "name": "phpcompatibility/php-compatibility", @@ -70,16 +70,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.7.13", + "version": "1.9.14", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "86ffc063bfd8f264c9eba568e84b0225a6090d09" + "reference": "e5fcc96289cf737304286a9b505fbed091f02e58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/86ffc063bfd8f264c9eba568e84b0225a6090d09", - "reference": "86ffc063bfd8f264c9eba568e84b0225a6090d09", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5fcc96289cf737304286a9b505fbed091f02e58", + "reference": "e5fcc96289cf737304286a9b505fbed091f02e58", "shasum": "" }, "require": { @@ -103,9 +103,13 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.7.13" + "source": "https://github.com/phpstan/phpstan/tree/1.9.14" }, "funding": [ { @@ -116,44 +120,36 @@ "url": "https://github.com/phpstan", "type": "github" }, - { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" - }, { "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", "type": "tidelift" } ], - "time": "2022-06-13T15:15:39+00:00" + "time": "2023-01-19T10:47:09+00:00" }, { "name": "rector/rector", - "version": "0.13.5", + "version": "0.15.10", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "4170aad2943b150149ba9594c34539e06ced6c6b" + "reference": "000bfb6f7974449399f39e1a210458395b75c887" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/4170aad2943b150149ba9594c34539e06ced6c6b", - "reference": "4170aad2943b150149ba9594c34539e06ced6c6b", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/000bfb6f7974449399f39e1a210458395b75c887", + "reference": "000bfb6f7974449399f39e1a210458395b75c887", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.7.10" + "phpstan/phpstan": "^1.9.7" }, "conflict": { - "phpstan/phpdoc-parser": "<1.2", - "rector/rector-cakephp": "*", "rector/rector-doctrine": "*", - "rector/rector-laravel": "*", - "rector/rector-nette": "*", - "rector/rector-phpoffice": "*", + "rector/rector-downgrade-php": "*", + "rector/rector-php-parser": "*", "rector/rector-phpunit": "*", - "rector/rector-prefixed": "*", "rector/rector-symfony": "*" }, "bin": [ @@ -162,7 +158,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "0.13-dev" + "dev-main": "0.14-dev" } }, "autoload": { @@ -177,7 +173,7 @@ "description": "Instant Upgrade and Automated Refactoring of any PHP code", "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.13.5" + "source": "https://github.com/rectorphp/rector/tree/0.15.10" }, "funding": [ { @@ -185,20 +181,20 @@ "type": "github" } ], - "time": "2022-06-09T12:54:02+00:00" + "time": "2023-01-21T14:30:16+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.0", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563" + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563", - "reference": "a2cd51b45bcaef9c1f2a4bda48f2dd2fa2b95563", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", "shasum": "" }, "require": { @@ -241,41 +237,162 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-06-13T06:31:38+00:00" + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/polyfill", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill.git", + "reference": "b78222a273aac3e5bab6358bf499d7f1fb88e48b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill/zipball/b78222a273aac3e5bab6358bf499d7f1fb88e48b", + "reference": "b78222a273aac3e5bab6358bf499d7f1fb88e48b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "replace": { + "symfony/polyfill-apcu": "self.version", + "symfony/polyfill-ctype": "self.version", + "symfony/polyfill-iconv": "self.version", + "symfony/polyfill-intl-grapheme": "self.version", + "symfony/polyfill-intl-icu": "self.version", + "symfony/polyfill-intl-idn": "self.version", + "symfony/polyfill-intl-messageformatter": "self.version", + "symfony/polyfill-intl-normalizer": "self.version", + "symfony/polyfill-mbstring": "self.version", + "symfony/polyfill-php72": "self.version", + "symfony/polyfill-php73": "self.version", + "symfony/polyfill-php74": "self.version", + "symfony/polyfill-php80": "self.version", + "symfony/polyfill-php81": "self.version", + "symfony/polyfill-php82": "self.version", + "symfony/polyfill-php83": "self.version", + "symfony/polyfill-util": "self.version", + "symfony/polyfill-uuid": "self.version", + "symfony/polyfill-xml": "self.version" + }, + "require-dev": { + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^5.3|^6.0", + "symfony/var-dumper": "^4.4|^5.1|^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + } + }, + "autoload": { + "files": [ + "src/bootstrap.php", + "src/Apcu/bootstrap.php", + "src/Ctype/bootstrap.php", + "src/Uuid/bootstrap.php", + "src/Iconv/bootstrap.php", + "src/Intl/Grapheme/bootstrap.php", + "src/Intl/Idn/bootstrap.php", + "src/Intl/Icu/bootstrap.php", + "src/Intl/MessageFormatter/bootstrap.php", + "src/Intl/Normalizer/bootstrap.php", + "src/Mbstring/bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\": "src/" + }, + "classmap": [ + "src/Intl/Icu/Resources/stubs", + "src/Intl/MessageFormatter/Resources/stubs", + "src/Intl/Normalizer/Resources/stubs", + "src/Php82/Resources/stubs", + "src/Php80/Resources/stubs", + "src/Php73/Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfills backporting features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "support": { + "issues": "https://github.com/symfony/polyfill/issues", + "source": "https://github.com/symfony/polyfill/tree/v1.27.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": "2022-11-10T10:11:03+00:00" }, { "name": "webonyx/graphql-php", - "version": "v14.11.6", + "version": "v15.0.0", "source": { "type": "git", "url": "https://github.com/webonyx/graphql-php.git", - "reference": "6070542725b61fc7d0654a8a9855303e5e157434" + "reference": "dc754edf765479644a82d96105bd2979530d7f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/6070542725b61fc7d0654a8a9855303e5e157434", - "reference": "6070542725b61fc7d0654a8a9855303e5e157434", + "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/dc754edf765479644a82d96105bd2979530d7f8d", + "reference": "dc754edf765479644a82d96105bd2979530d7f8d", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.1 || ^8" + "php": "^7.4 || ^8" }, "require-dev": { - "amphp/amp": "^2.3", - "doctrine/coding-standard": "^6.0", - "nyholm/psr7": "^1.2", + "amphp/amp": "^2.6", + "dms/phpunit-arraysubset-asserts": "^0.4", + "ergebnis/composer-normalize": "^2.28", + "mll-lab/php-cs-fixer-config": "^4.4", + "nyholm/psr7": "^1.5", "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "0.12.82", - "phpstan/phpstan-phpunit": "0.12.18", - "phpstan/phpstan-strict-rules": "0.12.9", - "phpunit/phpunit": "^7.2 || ^8.5", - "psr/http-message": "^1.0", - "react/promise": "2.*", - "simpod/php-coveralls-mirror": "^3.0", - "squizlabs/php_codesniffer": "3.5.4" + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "1.9.7", + "phpstan/phpstan-phpunit": "1.3.3", + "phpstan/phpstan-strict-rules": "1.4.4", + "phpunit/phpunit": "^9.5", + "psr/http-message": "^1", + "react/http": "^1.6", + "react/promise": "^2.9", + "symfony/polyfill-php81": "^1.23", + "symfony/var-exporter": "^5 || ^6", + "thecodingmachine/safe": "^1.3" }, "suggest": { "psr/http-message": "To use standard GraphQL server", @@ -299,7 +416,7 @@ ], "support": { "issues": "https://github.com/webonyx/graphql-php/issues", - "source": "https://github.com/webonyx/graphql-php/tree/v14.11.6" + "source": "https://github.com/webonyx/graphql-php/tree/v15.0.0" }, "funding": [ { @@ -307,7 +424,7 @@ "type": "open_collective" } ], - "time": "2022-04-13T16:25:32+00:00" + "time": "2023-01-06T12:18:04+00:00" } ], "packages-dev": [ @@ -442,16 +559,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.14.0", + "version": "v4.15.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { @@ -492,9 +609,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2022-05-31T20:59:12+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "phar-io/manifest", @@ -607,252 +724,25 @@ }, "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.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "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.1" - }, - "time": "2022-03-15T21:29:03+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, { "name": "phpunit/php-code-coverage", - "version": "9.2.15", + "version": "9.2.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" + "reference": "af7463c955007de36db0c5e26d03e2f933c2e980" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/af7463c955007de36db0c5e26d03e2f933c2e980", + "reference": "af7463c955007de36db0c5e26d03e2f933c2e980", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -901,7 +791,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.20" }, "funding": [ { @@ -909,7 +799,7 @@ "type": "github" } ], - "time": "2022-03-07T09:28:20+00:00" + "time": "2022-12-13T07:49:28+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1154,16 +1044,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.20", + "version": "9.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", "shasum": "" }, "require": { @@ -1178,7 +1068,6 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", @@ -1186,20 +1075,16 @@ "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", + "sebastian/comparator": "^4.0.8", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", + "sebastian/exporter": "^4.0.5", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.0", + "sebastian/type": "^3.2", "sebastian/version": "^3.0.2" }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -1241,7 +1126,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" }, "funding": [ { @@ -1251,9 +1136,13 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-04-01T12:37:26+00:00" + "time": "2022-12-09T07:31:23+00:00" }, { "name": "sebastian/cli-parser", @@ -1424,16 +1313,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -1486,7 +1375,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -1494,7 +1383,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -1684,16 +1573,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -1749,7 +1638,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -1757,7 +1646,7 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", @@ -2112,16 +2001,16 @@ }, { "name": "sebastian/type", - "version": "3.0.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { @@ -2133,7 +2022,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -2156,7 +2045,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -2164,7 +2053,7 @@ "type": "github" } ], - "time": "2022-03-15T09:54:48+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -2268,64 +2157,6 @@ } ], "time": "2021-07-28T10:34:58+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" } ], "aliases": [], @@ -2334,7 +2165,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.3", + "php": ">=7.4", "ext-simplexml": "*", "ext-dom": "*" },