Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Class Symplify\PackageBuilder\Strings\StringFormatConverter not found on custom rule #6414

Closed
samsonasik opened this issue May 14, 2021 · 2 comments
Labels

Comments

@samsonasik
Copy link
Member

Bug Report

Subject Details
Rector version dev-main
Installed as composer dependency

Minimal PHP Code Causing Issue

When consuming Symplify\PackageBuilder\Strings\StringFormatConverter on custom rector rule, it got error:

 [ERROR] Cannot autowire service "App\Rector\UnderscoreToCamelCaseVariableNameRector": argument                       
         "$stringFormatConverter" of method "__construct()" has type                                                    
         "Symplify\PackageBuilder\Strings\StringFormatConverter" but this class was not found.    

We can test in CodeIgniter4 project with rector/rector:dev-main, on custom rule at

https://github.com/codeigniter4/CodeIgniter4/blob/43e0e9611b7e527a4b927127fc6f26a1c6d123a5/utils/Rector/UnderscoreToCamelCaseVariableNameRector.php#L16

When its dependency removed, another error shows:

Uncaught Error: Class 'Nette\Utils\Strings' not found

Expected Behaviour

It should works. Possible solutions:

  • skip prefixing for symplify and nette/utils packages
  • add documentation for possible missing deps that need to be manually added if create custom rules.
@samsonasik samsonasik added the bug label May 14, 2021
@TomasVotruba
Copy link
Member

Hi, this expected behavior, because this dependency is now Rector's internal.

That means any your local dependency that was accidentaly required by Rector too, must be included explicitly now.

This would be a way to go:

add documentation for possible missing deps that need to be manually added if create custom rules.

👍

@TomasVotruba
Copy link
Member

P.S. Be sure to use stable tag Rector 0.11.1 to avoid in-between version breaks

carlos-granados added a commit to carlos-granados/rector that referenced this issue Nov 13, 2024
carlos-granados/rector-src@f7ea3db [PHP8.3] add new rectors for get_class()/get_parent_class() without arguments (rectorphp#6405)
carlos-granados/rector-src@1afc647 Rectify (rectorphp#6408)
carlos-granados/rector-src@afe7c46 [DeadCode] Skip nullable @ template on RemoveUselessReturnTagRector (rectorphp#6409)
carlos-granados/rector-src@293eb97 [Php81] Skip Doctrine Embeddable on ReadOnlyPropertyRector (rectorphp#6411)
carlos-granados/rector-src@1b1807b [Privatization] Skip with parameter on PrivatizeLocalGetterToPropertyRector (rectorphp#6412)
carlos-granados/rector-src@2c67908 Fix ClassDependencyManipulator to add dependency on right position (rectorphp#6413)
carlos-granados/rector-src@29e8932 [automated] Apply Coding Standard (rectorphp#6414)
carlos-granados/rector-src@3949fc2 Move instanceof PHPStan Type to ->is*() take 1 (rectorphp#6416)
carlos-granados/rector-src@0cac71a [CodeQuality] Add fixture test for skip nullable array from property with default value (rectorphp#6417)
carlos-granados/rector-src@d2db35e [Php80] Returns null on no change on ClassPropertyAssignToConstructorPromotionRector (rectorphp#6418)
carlos-granados/rector-src@06adce3 use ->isInteger()->yes() on ReturnTypeFromStrictNewArrayRector (rectorphp#6419)
carlos-granados/rector-src@bcfb598 Add ClassNameFromObjectTypeResolver to cover TypeWithClassName instance checks (rectorphp#6420)
carlos-granados/rector-src@84bb596 [StaticTypeMapper] Reduce instanceof TypeWithClassName usage via ClassNameFromObjectTypeResolver (rectorphp#6421)
carlos-granados/rector-src@26b8b54 [Naming] Reduce instanceof ObjectType on ExpectedNameResolver (take 5) (rectorphp#6423)
carlos-granados/rector-src@5baf487 Require-dev phpstan/phpstan-deprecation-rules to show list of deprecated (rectorphp#6415)
carlos-granados/rector-src@c23ba82 [deprecation] Remove deprecated PublicConstantVisibilityRector, cleanup deprecated SetListInterface (rectorphp#6424)
carlos-granados/rector-src@c2053c7 [deprecation] Deprecate AbstractScopeAwareRector in favor of single AbstractRector (rectorphp#6425)
carlos-granados/rector-src@2c5cd97 [deprecated] Remove deprecated AbstractTestCase (rectorphp#6426)
carlos-granados/rector-src@fb3c33a Merge commit '2c5cd97a3a98ab5af9efb846f6f78738e4a195a6'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants