mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-03 18:00:50 +00:00
Updated Rector to commit bbe0567317
bbe0567317
[DX] Use type safe access with PrivatePropertyAccessor (#1660)
This commit is contained in:
parent
5fc2efb4ad
commit
3bf32aa1f9
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -4,4 +4,4 @@
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f::getLoader();
|
||||
return ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550::getLoader();
|
||||
|
|
3
vendor/composer/autoload_classmap.php
vendored
3
vendor/composer/autoload_classmap.php
vendored
|
@ -1884,6 +1884,8 @@ return array(
|
|||
'Rector\\DependencyInjection\\Rector\\ClassMethod\\AddMethodParentCallRector' => $baseDir . '/rules/DependencyInjection/Rector/ClassMethod/AddMethodParentCallRector.php',
|
||||
'Rector\\DependencyInjection\\Rector\\Class_\\ActionInjectionToConstructorInjectionRector' => $baseDir . '/rules/DependencyInjection/Rector/Class_/ActionInjectionToConstructorInjectionRector.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AssignPropertyFetchAnalyzer' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AssignPropertyFetchAnalyzer.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AttributeArgValueResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeArgValueResolver.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\EntityObjectTypeResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/EntityObjectTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\MethodCallNameOnTypeResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/MethodCallNameOnTypeResolver.php',
|
||||
|
@ -1902,6 +1904,7 @@ return array(
|
|||
'Rector\\Doctrine\\NodeManipulator\\DependencyRemover' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/DependencyRemover.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\DoctrineItemDefaultValueManipulator' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/DoctrineItemDefaultValueManipulator.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\IssetDimFetchCleaner' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/IssetDimFetchCleaner.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\NullabilityColumnPropertyTypeResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\PropertyTypeManipulator' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/PropertyTypeManipulator.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\ToManyRelationPropertyTypeResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\ToOneRelationPropertyTypeResolver' => $vendorDir . '/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php',
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f
|
||||
class ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,15 +22,15 @@ class ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitcb88470e4097b4abed9422046bc9b550::getInitializer($loader));
|
||||
} else {
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
|
@ -42,12 +42,12 @@ class ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitcb88470e4097b4abed9422046bc9b550::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire2dca741eb5e08a171c3337652f0f3f2f($fileIdentifier, $file);
|
||||
composerRequirecb88470e4097b4abed9422046bc9b550($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -59,7 +59,7 @@ class ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequire2dca741eb5e08a171c3337652f0f3f2f($fileIdentifier, $file)
|
||||
function composerRequirecb88470e4097b4abed9422046bc9b550($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
|
11
vendor/composer/autoload_static.php
vendored
11
vendor/composer/autoload_static.php
vendored
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f
|
||||
class ComposerStaticInitcb88470e4097b4abed9422046bc9b550
|
||||
{
|
||||
public static $files = array (
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
|
@ -2279,6 +2279,8 @@ class ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
'Rector\\DependencyInjection\\Rector\\ClassMethod\\AddMethodParentCallRector' => __DIR__ . '/../..' . '/rules/DependencyInjection/Rector/ClassMethod/AddMethodParentCallRector.php',
|
||||
'Rector\\DependencyInjection\\Rector\\Class_\\ActionInjectionToConstructorInjectionRector' => __DIR__ . '/../..' . '/rules/DependencyInjection/Rector/Class_/ActionInjectionToConstructorInjectionRector.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AssignPropertyFetchAnalyzer' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AssignPropertyFetchAnalyzer.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AttributeArgValueResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeArgValueResolver.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\EntityObjectTypeResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/EntityObjectTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeAnalyzer\\MethodCallNameOnTypeResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/MethodCallNameOnTypeResolver.php',
|
||||
|
@ -2297,6 +2299,7 @@ class ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
'Rector\\Doctrine\\NodeManipulator\\DependencyRemover' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/DependencyRemover.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\DoctrineItemDefaultValueManipulator' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/DoctrineItemDefaultValueManipulator.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\IssetDimFetchCleaner' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/IssetDimFetchCleaner.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\NullabilityColumnPropertyTypeResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\PropertyTypeManipulator' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/PropertyTypeManipulator.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\ToManyRelationPropertyTypeResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/ToManyRelationPropertyTypeResolver.php',
|
||||
'Rector\\Doctrine\\NodeManipulator\\ToOneRelationPropertyTypeResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php',
|
||||
|
@ -3858,9 +3861,9 @@ class ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit2dca741eb5e08a171c3337652f0f3f2f::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitcb88470e4097b4abed9422046bc9b550::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitcb88470e4097b4abed9422046bc9b550::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitcb88470e4097b4abed9422046bc9b550::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
12
vendor/composer/installed.json
vendored
12
vendor/composer/installed.json
vendored
|
@ -2165,12 +2165,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git",
|
||||
"reference": "d65a9b076fd28e3ce85f06ea4b3a983bd9a02ca6"
|
||||
"reference": "4ce012666dd939e2956fbed329e5eef79179856f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/d65a9b076fd28e3ce85f06ea4b3a983bd9a02ca6",
|
||||
"reference": "d65a9b076fd28e3ce85f06ea4b3a983bd9a02ca6",
|
||||
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/4ce012666dd939e2956fbed329e5eef79179856f",
|
||||
"reference": "4ce012666dd939e2956fbed329e5eef79179856f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2180,9 +2180,9 @@
|
|||
"rector\/rector": "<0.11"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine\/orm": "^2.9",
|
||||
"doctrine\/orm": "^2.10",
|
||||
"phpstan\/extension-installer": "^1.1",
|
||||
"phpstan\/phpstan": "^1.0",
|
||||
"phpstan\/phpstan": "^1.3",
|
||||
"phpstan\/phpstan-strict-rules": "^1.1",
|
||||
"phpstan\/phpstan-webmozart-assert": "^1.0",
|
||||
"phpunit\/phpunit": "^9.5",
|
||||
|
@ -2195,7 +2195,7 @@
|
|||
"symplify\/rule-doc-generator": "^10.0",
|
||||
"symplify\/vendor-patches": "^10.0"
|
||||
},
|
||||
"time": "2021-12-24T20:36:51+00:00",
|
||||
"time": "2022-01-11T18:45:11+00:00",
|
||||
"default-branch": true,
|
||||
"type": "rector-extension",
|
||||
"extra": {
|
||||
|
|
2
vendor/composer/installed.php
vendored
2
vendor/composer/installed.php
vendored
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ namespace Rector\RectorInstaller;
|
|||
*/
|
||||
final class GeneratedConfig
|
||||
{
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f601f07'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d65a9b0'), 'rector/rector-generator' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-generator', 'relative_install_path' => '../../rector-generator', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main df58e86'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 96d50d4'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main eb859a5'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 3f56f3b'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main cd2eb3d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 5c3c503'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d1e8671'));
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f601f07'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 4ce0126'), 'rector/rector-generator' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-generator', 'relative_install_path' => '../../rector-generator', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main df58e86'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 96d50d4'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main eb859a5'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 3f56f3b'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main cd2eb3d'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 5c3c503'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d1e8671'));
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
|
6
vendor/rector/rector-doctrine/composer.json
vendored
6
vendor/rector/rector-doctrine/composer.json
vendored
|
@ -9,14 +9,14 @@
|
|||
"require-dev": {
|
||||
"phpstan\/extension-installer": "^1.1",
|
||||
"rector\/phpstan-rules": "^0.4.8",
|
||||
"phpstan\/phpstan": "^1.0",
|
||||
"phpstan\/phpstan": "^1.3",
|
||||
"phpunit\/phpunit": "^9.5",
|
||||
"symplify\/phpstan-rules": "^10.0",
|
||||
"symplify\/phpstan-extensions": "^10.0",
|
||||
"symplify\/easy-coding-standard": "^10.0",
|
||||
"symplify\/rule-doc-generator": "^10.0",
|
||||
"rector\/rector-src": "dev-main",
|
||||
"doctrine\/orm": "^2.9",
|
||||
"doctrine\/orm": "^2.10",
|
||||
"symplify\/monorepo-builder": "^10.0",
|
||||
"phpstan\/phpstan-webmozart-assert": "^1.0",
|
||||
"phpstan\/phpstan-strict-rules": "^1.1",
|
||||
|
@ -63,7 +63,7 @@
|
|||
"prefer-stable": true,
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"composer\/package-versions-deprecated": true,
|
||||
"composer\/package-versions-deprecated": false,
|
||||
"cweagans\/composer-patches": true,
|
||||
"rector\/extension-installer": true,
|
||||
"phpstan\/extension-installer": true
|
||||
|
|
36
vendor/rector/rector-doctrine/src/NodeAnalyzer/AttributeArgValueResolver.php
vendored
Normal file
36
vendor/rector/rector-doctrine/src/NodeAnalyzer/AttributeArgValueResolver.php
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Doctrine\NodeAnalyzer;
|
||||
|
||||
use PhpParser\Node\Attribute;
|
||||
use PhpParser\Node\Expr;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class AttributeArgValueResolver
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
}
|
||||
/**
|
||||
* @return \PhpParser\Node\Expr|null
|
||||
*/
|
||||
public function resolve(\PhpParser\Node\Attribute $attribute, string $argName)
|
||||
{
|
||||
foreach ($attribute->args as $arg) {
|
||||
if ($arg->name === null) {
|
||||
continue;
|
||||
}
|
||||
if (!$this->nodeNameResolver->isName($arg->name, $argName)) {
|
||||
continue;
|
||||
}
|
||||
return $arg->value;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
42
vendor/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php
vendored
Normal file
42
vendor/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Doctrine\NodeAnalyzer;
|
||||
|
||||
use PhpParser\Node\Attribute;
|
||||
use PhpParser\Node\AttributeGroup;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use PhpParser\Node\Param;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class AttributeFinder
|
||||
{
|
||||
/**
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Param|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Property $node
|
||||
*/
|
||||
public function findAttributeByClass($node, string $desiredAttributeClass) : ?\PhpParser\Node\Attribute
|
||||
{
|
||||
/** @var AttributeGroup $attrGroup */
|
||||
foreach ($node->attrGroups as $attrGroup) {
|
||||
foreach ($attrGroup->attrs as $attribute) {
|
||||
if (!$attribute->name instanceof \PhpParser\Node\Name\FullyQualified) {
|
||||
continue;
|
||||
}
|
||||
if ($this->nodeNameResolver->isName($attribute->name, $desiredAttributeClass)) {
|
||||
return $attribute;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -3,8 +3,9 @@
|
|||
declare (strict_types=1);
|
||||
namespace Rector\Doctrine\NodeManipulator;
|
||||
|
||||
use PhpParser\Node\Attribute;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode;
|
||||
use PHPStan\Type\BooleanType;
|
||||
use PHPStan\Type\FloatType;
|
||||
use PHPStan\Type\IntegerType;
|
||||
|
@ -14,7 +15,10 @@ use PHPStan\Type\ObjectType;
|
|||
use PHPStan\Type\StringType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver;
|
||||
use Rector\Doctrine\NodeAnalyzer\AttributeFinder;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
|
||||
final class ColumnPropertyTypeResolver
|
||||
{
|
||||
|
@ -22,6 +26,10 @@ final class ColumnPropertyTypeResolver
|
|||
* @var string
|
||||
*/
|
||||
private const DATE_TIME_INTERFACE = 'DateTimeInterface';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const COLUMN_CLASS = 'Doctrine\\ORM\\Mapping\\Column';
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
|
||||
|
@ -31,6 +39,14 @@ final class ColumnPropertyTypeResolver
|
|||
* @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory
|
||||
*/
|
||||
private $typeFactory;
|
||||
/**
|
||||
* @var \Rector\Doctrine\NodeAnalyzer\AttributeFinder
|
||||
*/
|
||||
private $attributeFinder;
|
||||
/**
|
||||
* @var \Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver
|
||||
*/
|
||||
private $attributeArgValueResolver;
|
||||
/**
|
||||
* @var array<string, Type>
|
||||
*/
|
||||
|
@ -39,7 +55,7 @@ final class ColumnPropertyTypeResolver
|
|||
* @param array<string, Type> $doctrineTypeToScalarType
|
||||
* @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/basic-mapping.html#doctrine-mapping-types
|
||||
*/
|
||||
public function __construct(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, array $doctrineTypeToScalarType = null)
|
||||
public function __construct(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, \Rector\Doctrine\NodeAnalyzer\AttributeFinder $attributeFinder, \Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver $attributeArgValueResolver, array $doctrineTypeToScalarType = null)
|
||||
{
|
||||
$doctrineTypeToScalarType = $doctrineTypeToScalarType ?? [
|
||||
'tinyint' => new \PHPStan\Type\BooleanType(),
|
||||
|
@ -79,27 +95,48 @@ final class ColumnPropertyTypeResolver
|
|||
];
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->typeFactory = $typeFactory;
|
||||
$this->attributeFinder = $attributeFinder;
|
||||
$this->attributeArgValueResolver = $attributeArgValueResolver;
|
||||
$this->doctrineTypeToScalarType = $doctrineTypeToScalarType;
|
||||
}
|
||||
public function resolve(\PhpParser\Node\Stmt\Property $property) : ?\PHPStan\Type\Type
|
||||
public function resolve(\PhpParser\Node\Stmt\Property $property, bool $isNullable) : ?\PHPStan\Type\Type
|
||||
{
|
||||
$columnAttribute = $this->attributeFinder->findAttributeByClass($property, self::COLUMN_CLASS);
|
||||
if ($columnAttribute instanceof \PhpParser\Node\Attribute) {
|
||||
$argValue = $this->attributeArgValueResolver->resolve($columnAttribute, 'type');
|
||||
if ($argValue instanceof \PhpParser\Node\Scalar\String_) {
|
||||
return $this->createPHPStanTypeFromDoctrineStringType($argValue->value, $isNullable);
|
||||
}
|
||||
}
|
||||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
|
||||
$doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass('Doctrine\\ORM\\Mapping\\Column');
|
||||
return $this->resolveFromPhpDocInfo($phpDocInfo, $isNullable);
|
||||
}
|
||||
/**
|
||||
* @return \PHPStan\Type\Type|null
|
||||
*/
|
||||
private function resolveFromPhpDocInfo(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo $phpDocInfo, bool $isNullable)
|
||||
{
|
||||
$doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(self::COLUMN_CLASS);
|
||||
if (!$doctrineAnnotationTagValueNode instanceof \Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode) {
|
||||
return null;
|
||||
}
|
||||
$type = $doctrineAnnotationTagValueNode->getValueWithoutQuotes('type');
|
||||
if ($type === null) {
|
||||
if (!\is_string($type)) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
return $this->createPHPStanTypeFromDoctrineStringType($type, $isNullable);
|
||||
}
|
||||
/**
|
||||
* @return \PHPStan\Type\MixedType|\PHPStan\Type\Type
|
||||
*/
|
||||
private function createPHPStanTypeFromDoctrineStringType(string $type, bool $isNullable)
|
||||
{
|
||||
$scalarType = $this->doctrineTypeToScalarType[$type] ?? null;
|
||||
if (!$scalarType instanceof \PHPStan\Type\Type) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
$types = [$scalarType];
|
||||
$isNullable = $doctrineAnnotationTagValueNode->getValue('nullable');
|
||||
// is nullable?
|
||||
if ($isNullable instanceof \PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode) {
|
||||
if ($isNullable) {
|
||||
$types[] = new \PHPStan\Type\NullType();
|
||||
}
|
||||
return $this->typeFactory->createMixedPassedOrUnionType($types);
|
||||
|
|
71
vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php
vendored
Normal file
71
vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Doctrine\NodeManipulator;
|
||||
|
||||
use PhpParser\Node\Attribute;
|
||||
use PhpParser\Node\Expr;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode;
|
||||
use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Core\PhpParser\Node\Value\ValueResolver;
|
||||
use Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver;
|
||||
use Rector\Doctrine\NodeAnalyzer\AttributeFinder;
|
||||
final class NullabilityColumnPropertyTypeResolver
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const COLUMN_CLASS = 'Doctrine\\ORM\\Mapping\\Column';
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
|
||||
*/
|
||||
private $phpDocInfoFactory;
|
||||
/**
|
||||
* @var \Rector\Doctrine\NodeAnalyzer\AttributeFinder
|
||||
*/
|
||||
private $attributeFinder;
|
||||
/**
|
||||
* @var \Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver
|
||||
*/
|
||||
private $attributeArgValueResolver;
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
|
||||
*/
|
||||
private $valueResolver;
|
||||
/**
|
||||
* @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/basic-mapping.html#doctrine-mapping-types
|
||||
*/
|
||||
public function __construct(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\Doctrine\NodeAnalyzer\AttributeFinder $attributeFinder, \Rector\Doctrine\NodeAnalyzer\AttributeArgValueResolver $attributeArgValueResolver, \Rector\Core\PhpParser\Node\Value\ValueResolver $valueResolver)
|
||||
{
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->attributeFinder = $attributeFinder;
|
||||
$this->attributeArgValueResolver = $attributeArgValueResolver;
|
||||
$this->valueResolver = $valueResolver;
|
||||
}
|
||||
public function isNullable(\PhpParser\Node\Stmt\Property $property) : bool
|
||||
{
|
||||
$columnAttribute = $this->attributeFinder->findAttributeByClass($property, self::COLUMN_CLASS);
|
||||
if ($columnAttribute instanceof \PhpParser\Node\Attribute) {
|
||||
$nullableExpr = $this->attributeArgValueResolver->resolve($columnAttribute, 'nullable');
|
||||
if (!$nullableExpr instanceof \PhpParser\Node\Expr) {
|
||||
return \true;
|
||||
}
|
||||
return $this->valueResolver->isTrue($nullableExpr);
|
||||
}
|
||||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
|
||||
return $this->isNullableColumn($phpDocInfo);
|
||||
}
|
||||
private function isNullableColumn(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo $phpDocInfo) : bool
|
||||
{
|
||||
$doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(self::COLUMN_CLASS);
|
||||
if (!$doctrineAnnotationTagValueNode instanceof \Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode) {
|
||||
return \true;
|
||||
}
|
||||
$nullableValue = $doctrineAnnotationTagValueNode->getValue('nullable');
|
||||
return $nullableValue === null || $nullableValue instanceof \PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
|
|||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\PhpVersion;
|
||||
use Rector\Doctrine\NodeManipulator\ColumnPropertyTypeResolver;
|
||||
use Rector\Doctrine\NodeManipulator\NullabilityColumnPropertyTypeResolver;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
use Rector\TypeDeclaration\NodeTypeAnalyzer\PropertyTypeDecorator;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
|
@ -34,11 +35,16 @@ final class TypedPropertyFromColumnTypeRector extends \Rector\Core\Rector\Abstra
|
|||
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger
|
||||
*/
|
||||
private $phpDocTypeChanger;
|
||||
public function __construct(\Rector\TypeDeclaration\NodeTypeAnalyzer\PropertyTypeDecorator $propertyTypeDecorator, \Rector\Doctrine\NodeManipulator\ColumnPropertyTypeResolver $columnPropertyTypeResolver, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger $phpDocTypeChanger)
|
||||
/**
|
||||
* @var \Rector\Doctrine\NodeManipulator\NullabilityColumnPropertyTypeResolver
|
||||
*/
|
||||
private $nullabilityColumnPropertyTypeResolver;
|
||||
public function __construct(\Rector\TypeDeclaration\NodeTypeAnalyzer\PropertyTypeDecorator $propertyTypeDecorator, \Rector\Doctrine\NodeManipulator\ColumnPropertyTypeResolver $columnPropertyTypeResolver, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger $phpDocTypeChanger, \Rector\Doctrine\NodeManipulator\NullabilityColumnPropertyTypeResolver $nullabilityColumnPropertyTypeResolver)
|
||||
{
|
||||
$this->propertyTypeDecorator = $propertyTypeDecorator;
|
||||
$this->columnPropertyTypeResolver = $columnPropertyTypeResolver;
|
||||
$this->phpDocTypeChanger = $phpDocTypeChanger;
|
||||
$this->nullabilityColumnPropertyTypeResolver = $nullabilityColumnPropertyTypeResolver;
|
||||
}
|
||||
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
|
||||
{
|
||||
|
@ -82,12 +88,13 @@ CODE_SAMPLE
|
|||
if ($node->type !== null) {
|
||||
return null;
|
||||
}
|
||||
$propertyType = $this->columnPropertyTypeResolver->resolve($node);
|
||||
$isNullable = $this->nullabilityColumnPropertyTypeResolver->isNullable($node);
|
||||
$propertyType = $this->columnPropertyTypeResolver->resolve($node, $isNullable);
|
||||
if (!$propertyType instanceof \PHPStan\Type\Type || $propertyType instanceof \PHPStan\Type\MixedType) {
|
||||
return null;
|
||||
}
|
||||
// add default null if missing
|
||||
if (!\PHPStan\Type\TypeCombinator::containsNull($propertyType)) {
|
||||
if ($isNullable && !\PHPStan\Type\TypeCombinator::containsNull($propertyType)) {
|
||||
$propertyType = \PHPStan\Type\TypeCombinator::addNull($propertyType);
|
||||
}
|
||||
$typeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($propertyType, \Rector\PHPStanStaticTypeMapper\Enum\TypeKind::PROPERTY());
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|||
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
|
||||
spl_autoload_call('RectorPrefix20220111\AutoloadIncluder');
|
||||
}
|
||||
if (!class_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false) && !interface_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false) && !trait_exists('ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f', false)) {
|
||||
spl_autoload_call('RectorPrefix20220111\ComposerAutoloaderInit2dca741eb5e08a171c3337652f0f3f2f');
|
||||
if (!class_exists('ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550', false) && !interface_exists('ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550', false) && !trait_exists('ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550', false)) {
|
||||
spl_autoload_call('RectorPrefix20220111\ComposerAutoloaderInitcb88470e4097b4abed9422046bc9b550');
|
||||
}
|
||||
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
|
||||
spl_autoload_call('RectorPrefix20220111\Helmich\TypoScriptParser\Parser\AST\Statement');
|
||||
|
@ -71,9 +71,9 @@ if (!function_exists('print_node')) {
|
|||
return \RectorPrefix20220111\print_node(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('composerRequire2dca741eb5e08a171c3337652f0f3f2f')) {
|
||||
function composerRequire2dca741eb5e08a171c3337652f0f3f2f() {
|
||||
return \RectorPrefix20220111\composerRequire2dca741eb5e08a171c3337652f0f3f2f(...func_get_args());
|
||||
if (!function_exists('composerRequirecb88470e4097b4abed9422046bc9b550')) {
|
||||
function composerRequirecb88470e4097b4abed9422046bc9b550() {
|
||||
return \RectorPrefix20220111\composerRequirecb88470e4097b4abed9422046bc9b550(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('scanPath')) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user