Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 7 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ os: linux
language: php

php:
- '7.1'
- '7.2'
- '7.3'
- '7.4snapshot'
Expand All @@ -22,20 +21,20 @@ jobs:
# Stage 1
-
stage: test
php: 7.1
php: 7.2
name: Lowest dependencies
install:
# install lowest dependencies
- composer update --prefer-lowest --no-progress

-
name: PHPStan
php: 7.1
php: 7.2
script:
- composer phpstan

-
php: 7.1
php: 7.2
name: ECS
script:
- composer check-cs
Expand All @@ -53,13 +52,13 @@ jobs:

-
name: Documentation
php: 7.1
php: 7.2
script:
- composer check-docs

-
name: Simple checks
php: 7.1
php: 7.2
script:
- php ci/check_services_in_yaml_configs.php
- php ci/run_all_sets.php
Expand Down Expand Up @@ -109,11 +108,11 @@ jobs:
# Windows
- &STANDARD_WINDOWS_JOB
stage: test
name: Windows PHP 7.1
name: Windows PHP 7.2
os: windows
dist: '1803-containers'
language: sh # No PHP currently
env: PHP_VERSION=7.1.32
env: PHP_VERSION=7.2.23
install:
- choco install php --version=${PHP_VERSION} --package-parameters="/InstallDir:c:\tools\php"
- choco install composer --ia "/DEV=C:\tools\php"
Expand All @@ -129,11 +128,6 @@ jobs:
# @todo this is probably broken, needs fixing
- php vendor/phpunit/phpunit/phpunit

-
<<: *STANDARD_WINDOWS_JOB
name: Windows PHP 7.2
env: PHP_VERSION=7.2.23

-
<<: *STANDARD_WINDOWS_JOB
name: Windows PHP 7.3
Expand Down
39 changes: 24 additions & 15 deletions bin/container.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,50 @@

declare(strict_types=1);

use Rector\Bootstrap\ConfigResolver;
use Rector\Bootstrap\SetOptionResolver;
use Rector\Configuration\Configuration;
use Rector\DependencyInjection\RectorContainerFactory;
use Rector\Exception\Configuration\SetNotFoundException;
use Rector\Set\Set;
use Symfony\Component\Console\Input\ArgvInput;
use Symplify\PackageBuilder\Configuration\ConfigFileFinder;
use Symplify\EasyCodingStandard\Exception\Configuration\SetNotFoundException;
use Symplify\PackageBuilder\Console\ShellCode;
use Symplify\PackageBuilder\Console\Style\SymfonyStyleFactory;
use Symplify\SetConfigResolver\ConfigResolver;

$configs = [];
$configResolver = new ConfigResolver();

// Detect configuration from --set
try {
$input = new ArgvInput();
$setOptionResolver = new SetOptionResolver();
$configs[] = $setOptionResolver->detectFromInputAndDirectory($input, Set::SET_DIRECTORY);

$setConfig = $configResolver->resolveSetFromInputAndDirectory($input, Set::SET_DIRECTORY);
if ($setConfig !== null) {
$configs[] = $setConfig;
}
} catch (SetNotFoundException $setNotFoundException) {
$symfonyStyle = (new SymfonyStyleFactory())->create();
$symfonyStyle->error($setNotFoundException->getMessage());
exit(ShellCode::ERROR);
}

// And from --config or default one
ConfigFileFinder::detectFromInput('rector', new ArgvInput());
$configs[] = ConfigFileFinder::provide('rector', ['rector.yml', 'rector.yaml']);

// remove empty values
$configs = array_filter($configs);
$inputOrFallbackConfig = $configResolver->resolveFromInputWithFallback($input, ['rector.yml', 'rector.yaml']);
if ($inputOrFallbackConfig !== null) {
$configs[] = $inputOrFallbackConfig;
}

// resolve: parameters > sets
$configResolver = new ConfigResolver();
$parameterSetsConfigs = $configResolver->resolveFromParameterSetsFromConfigFiles($configs);
$configs = array_merge($configs, $parameterSetsConfigs);
$parameterSetsConfigs = $configResolver->resolveFromParameterSetsFromConfigFiles($configs, Set::SET_DIRECTORY);
if ($parameterSetsConfigs !== []) {
$configs = array_merge($configs, $parameterSetsConfigs);
}

// Build DI container
$rectorContainerFactory = new RectorContainerFactory();
return $rectorContainerFactory->createFromConfigs($configs);
$container = $rectorContainerFactory->createFromConfigs($configs);

/** @var Configuration $configuration */
$configuration = $container->get(Configuration::class);
$configuration->setFirstResolverConfig($configResolver->getFirstResolvedConfig());

return $container;
43 changes: 22 additions & 21 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,38 @@
],
"bin": ["bin/rector"],
"require": {
"php": "^7.1",
"php": "^7.2",
"ext-json": "*",
"composer/xdebug-handler": "^1.3",
"doctrine/annotations": "^1.6",
"composer/xdebug-handler": "^1.4",
"doctrine/annotations": "^1.8",
"doctrine/inflector": "^1.3",
"jean85/pretty-package-versions": "^1.2",
"nette/robot-loader": "^3.1",
"nette/utils": "^2.5|^3.0",
"nette/robot-loader": "^3.2",
"nette/utils": "^3.0",
"nikic/php-parser": "^4.3",
"ondram/ci-detector": "^3.1",
"phpstan/phpdoc-parser": "^0.3.5",
"phpstan/phpstan": "^0.11.13",
"phpstan/phpstan": "^0.11.19",
"phpstan/phpstan-phpunit": "^0.11.2",
"sebastian/diff": "^3.0",
"symfony/console": "^3.4|^4.4|^5.0",
"symfony/dependency-injection": "^3.4|^4.4|^5.0",
"symfony/finder": "^3.4|^4.4|^5.0",
"symfony/process": "^3.4|^4.4|^5.0",
"symplify/package-builder": "^6.1"
"symfony/console": "^4.4|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/finder": "^4.4|^5.0",
"symfony/process": "^4.4|^5.0",
"symplify/package-builder": "^7.0",
"symplify/set-config-resolver": "^7.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.14",
"jetbrains/phpstorm-stubs": "^2019.1",
"ocramius/package-versions": "^1.4",
"phpunit/phpunit": "^7.5|^8.0",
"symplify/changelog-linker": "^6.1",
"symplify/easy-coding-standard": "^6.1",
"symplify/monorepo-builder": "^6.1",
"symplify/phpstan-extensions": "^6.1",
"thecodingmachine/phpstan-strict-rules": "^0.11",
"tracy/tracy": "^2.5"
"friendsofphp/php-cs-fixer": "^2.16",
"jetbrains/phpstorm-stubs": "^2019.2",
"ocramius/package-versions": "^1.4|^1.5",
"phpunit/phpunit": "^8.4",
"symplify/changelog-linker": "^7.0",
"symplify/easy-coding-standard": "^7.0",
"symplify/monorepo-builder": "^7.0",
"symplify/phpstan-extensions": "^7.0",
"thecodingmachine/phpstan-strict-rules": "^0.11.2",
"tracy/tracy": "^2.7"
},
"autoload": {
"psr-4": {
Expand Down
15 changes: 13 additions & 2 deletions config/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,18 @@ services:

Rector\:
resource: '../src'
exclude: '../src/{Node/Attribute.php,Rector/**/*Rector.php,Reporting/FileDiff.php,Testing/PHPUnit,RectorDefinition,PhpParser/Node/*Info.php,Exception/*,DependencyInjection/CompilerPass/*,DependencyInjection/Loader/*,Application/Error.php,HttpKernel/RectorKernel.php,ValueObject/*}'
exclude:
- '../src/Rector/**/*Rector.php'
- '../src/Reporting/FileDiff.php'
- '../src/Testing/PHPUnit/*'
- '../src/RectorDefinition/*'
- '../src/PhpParser/Node/*Info.php'
- '../src/Exception/*'
- '../src/DependencyInjection/CompilerPass/*'
- '../src/DependencyInjection/Loader/*'
- '../src/Application/Error.php'
- '../src/HttpKernel/RectorKernel.php'
- '../src/ValueObject/*'

# extra services
Rector\Symfony\Rector\Form\Helper\FormTypeStringToTypeProvider: ~
Expand All @@ -26,7 +37,7 @@ services:
Symplify\PackageBuilder\Reflection\PrivatesAccessor: ~

Symplify\PackageBuilder\FileSystem\FileSystem: ~
Symplify\PackageBuilder\FileSystem\FinderSanitizer: ~
Symplify\SmartFileSystem\Finder\FinderSanitizer: ~

Symplify\PackageBuilder\Parameter\ParameterProvider: ~
Symplify\PackageBuilder\Reflection\PrivatesCaller: ~
Expand Down
31 changes: 2 additions & 29 deletions ecs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,6 @@ imports:
- { resource: 'vendor/symplify/easy-coding-standard/config/set/clean-code.yaml' }

services:
Symplify\CodingStandard\Fixer\Php\ClassStringToClassConstantFixer:
allow_classes:
- 'SomeClass' # from PHPUnit
- 'PHPUnit\Framework\TestCase' # usually part of node construction, it can be missed
- 'Exception'
- 'ResourceBundle'
- 'SimpleXMLElement'
- 'SomeInterface'

Symplify\CodingStandard\Sniffs\CleanCode\CognitiveComplexitySniff:
max_cognitive_complexity: 9

Expand Down Expand Up @@ -51,6 +42,8 @@ parameters:
skip:
# rather useless
Symplify\CodingStandard\Sniffs\DependencyInjection\NoClassInstantiationSniff: ~
PhpCsFixer\Fixer\Import\GlobalNamespaceImportFixer: ~
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixer breaks everything, nay

Symplify\CodingStandard\Fixer\Php\ClassStringToClassConstantFixer: ~

PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\MethodDeclarationSniff.Underscore: ~
Symplify\CodingStandard\Sniffs\Architecture\DuplicatedClassShortNameSniff: ~
Expand All @@ -66,26 +59,6 @@ parameters:

Symplify\CodingStandard\Sniffs\CleanCode\ForbiddenReferenceSniff: ~

Symplify\CodingStandard\Fixer\Php\ClassStringToClassConstantFixer:
# classes might not exist
- 'packages/*Class.php'
- 'bin/bootstrap.php'
- '*/packages/*/src/Rector/*Rector.php'
- 'src/Rector/MethodCall/MethodCallToAnotherMethodCallWithArgumentsRector.php'
- 'src/Rector/Constant/RenameClassConstantsUseToStringsRector.php'
- '*/packages/NodeTypeResolver/**/PerNodeTypeResolver/**TypeResolver.php'
- '*/packages/NodeTypeResolver/**/PerNodeTypeResolver/**TypeResolver/*Test.php'
- '*RectorTest.php'
- 'src/Rector/AbstractPHPUnitRector.php'
- 'src/Rector/Class_/ParentClassToTraitsRector.php'
# required for exact string match with "\"
- 'packages/NodeTypeResolver/src/Php/AbstractTypeInfo.php'
# example in description
- 'src/Rector/Annotation/RenameAnnotationRector.php'
- 'packages/NetteToSymfony/src/Event/EventInfosFactory.php'
- 'packages/NetteTesterToPHPUnit/src/AssertManipulator.php'
- 'src/PhpParser/Node/Manipulator/CallManipulator.php'

Symplify\CodingStandard\Sniffs\CleanCode\ForbiddenStaticFunctionSniff:
- 'src/Util/*.php'
- 'packages/BetterPhpDocParser/src/Annotation/AnnotationNaming.php'
Expand Down
3 changes: 2 additions & 1 deletion packages/Architecture/config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ services:

Rector\Architecture\:
resource: '../src'
exclude: '../src/{Rector/**/*Rector.php}'
exclude:
- '../src/Rector/**/*Rector.php'
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,6 @@ private function removeUnusedPropertiesAndConstructorParams(Class_ $class, Class
}

/**
* @param Node $node
* @return string[]|null
*/
private function resolveAssignPropertyToVariableOrNull(Node $node): ?array
Expand Down
4 changes: 3 additions & 1 deletion packages/Autodiscovery/config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ services:

Rector\Autodiscovery\:
resource: '../src'
exclude: '../src/{Rector/**/*Rector.php,ValueObject/*}'
exclude:
- '../src/Rector/**/*Rector.php'
- '../src/ValueObject/*'
2 changes: 1 addition & 1 deletion packages/Autodiscovery/src/FileMover/FileMover.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use Rector\PhpParser\Node\BetterNodeFinder;
use Rector\PSR4\Collector\RenamedClassesCollector;
use Rector\PSR4\FileRelocationResolver;
use Symplify\PackageBuilder\FileSystem\SmartFileInfo;
use Symplify\SmartFileSystem\SmartFileInfo;

final class FileMover
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use Rector\FileSystemRector\Rector\AbstractFileSystemRector;
use Rector\RectorDefinition\CodeSample;
use Rector\RectorDefinition\RectorDefinition;
use Symplify\PackageBuilder\FileSystem\SmartFileInfo;
use Symplify\SmartFileSystem\SmartFileInfo;

/**
* @sponsor Thanks https://spaceflow.io/ for sponsoring this rule - visit them on https://github.com/SpaceFlow-app
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
use Rector\FileSystemRector\Rector\AbstractFileSystemRector;
use Rector\RectorDefinition\CodeSample;
use Rector\RectorDefinition\RectorDefinition;
use Symplify\PackageBuilder\FileSystem\SmartFileInfo;
use Symplify\SmartFileSystem\SmartFileInfo;

/**
* @sponsor Thanks https://spaceflow.io/ for sponsoring this rule - visit them on https://github.com/SpaceFlow-app
Expand Down Expand Up @@ -39,7 +39,7 @@ public function getDefinition(): RectorDefinition

interface Rule
{
}
}
PHP
,
<<<'PHP'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
use Rector\FileSystemRector\Rector\AbstractFileSystemRector;
use Rector\RectorDefinition\ConfiguredCodeSample;
use Rector\RectorDefinition\RectorDefinition;
use Symplify\PackageBuilder\FileSystem\SmartFileInfo;
use Symplify\SmartFileSystem\SmartFileInfo;

/**
* @sponsor Thanks https://spaceflow.io/ for sponsoring this rule - visit them on https://github.com/SpaceFlow-app
Expand Down Expand Up @@ -49,7 +49,7 @@ public function getDefinition(): RectorDefinition
{
return new RectorDefinition('Move classes by their suffix to their own group/directory', [new ConfiguredCodeSample(
<<<'PHP'
// file: app/Entity/ProductRepository.php
// file: app/Entity/ProductRepository.php

namespace App/Entity;

Expand All @@ -59,7 +59,7 @@ class ProductRepository
PHP
,
<<<'PHP'
// file: app/Repository/ProductRepository.php
// file: app/Repository/ProductRepository.php

namespace App/Repository;

Expand Down
7 changes: 6 additions & 1 deletion packages/BetterPhpDocParser/config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,12 @@ services:

Rector\BetterPhpDocParser\:
resource: '../src'
exclude: '../src/{ValueObject/*,*/*Info.php,*Info.php,Attributes/Ast/PhpDoc/*,PhpDocNode/*}'
exclude:
- '../src/ValueObject/*'
- '../src/*/*Info.php'
- '../src/*Info.php'
- '../src/Attributes/Ast/PhpDoc/*'
- '../src/PhpDocNode/*'

PHPStan\PhpDocParser\Lexer\Lexer: ~
PHPStan\PhpDocParser\Parser\TypeParser: ~
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,11 @@ trait AttributeTrait
*/
private $attributes = [];

/**
* @return mixed
*/
public function getAttribute(string $name)
{
return $this->attributes[$name] ?? null;
}

/**
* @param mixed $value
*/
public function setAttribute(string $name, $value): void
{
$this->attributes[$name] = $value;
Expand Down
Loading