driftingly/rector-laravel

Rector upgrades rules for Laravel Framework

Installs: 1 920 845

Dependents: 55

Suggesters: 0

Security: 0

Stars: 438

Watchers: 9

Forks: 44

Open Issues: 11

Type:rector-extension


README

Tests Code Analysis Packagist Downloads Packagist Version

See available Laravel rules

Install

This package is a Rector extension developed by the Laravel community.

Install the RectorLaravel package as dependency:

composer require driftingly/rector-laravel --dev

Use Sets

To add a set to your config, use RectorLaravel\Set\LaravelSetList class and pick one of the constants:

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use RectorLaravel\Set\LaravelSetList;

return RectorConfig::configure()
    ->withSets([
        LaravelSetList::LARAVEL_110
    ]);

Available Sets

Set Purpose
LaravelSetList::LARAVEL_ARRAY_STR_FUNCTION_TO_STATIC_CALL Converts most string and array helpers into Str and Arr Facades' static calls.
https://laravel.com/docs/11.x/facades#facades-vs-helper-functions
LaravelSetList::LARAVEL_CODE_QUALITY Replaces magical call on $this->app["something"] to standalone variable with PHPDocs.
LaravelSetList::LARAVEL_CONTAINER_STRING_TO_FULLY_QUALIFIED_NAME Changes the string or class const used for a service container make call.
https://laravel.com/docs/11.x/container#the-make-method
LaravelSetList::LARAVEL_ELOQUENT_MAGIC_METHOD_TO_QUERY_BUILDER Transforms magic method calls on Eloquent Models into corresponding Query Builder method calls.
https://laravel.com/docs/11.x/eloquent
LaravelSetList::LARAVEL_FACADE_ALIASES_TO_FULL_NAMES Replaces Facade aliases with full Facade names.
https://laravel.com/docs/11.x/facades#facade-class-reference
LaravelSetList::LARAVEL_IF_HELPERS Replaces abort(), report(), throw statements inside conditions with abort_if(), report_if(), throw_if() function calls.
https://laravel.com/docs/11.x/helpers#method-abort-if
LaravelSetList::LARAVEL_LEGACY_FACTORIES_TO_CLASSES Migrates Eloquent legacy model factories (with closures) into class based factories.
https://laravel.com/docs/8.x/releases#model-factory-classes
LaravelSetList::LARAVEL_STATIC_TO_INJECTION Replaces Laravel's Facades with Dependency Injection.
https://tomasvotruba.com/blog/2019/03/04/how-to-turn-laravel-from-static-to-dependency-injection-in-one-day/
https://laravel.com/docs/11.x/facades#facades-vs-dependency-injection

Contributors

Thank you everyone who works so hard on improving this package:

Hire The Rector Team

Rector is a tool that we develop and share for free, so anyone can automate their refactoring. But not everyone has dozens of hours to understand complexity of abstract-syntax-tree in their own time. That's why we provide commercial support - to save your time.

Would you like to apply Rector on your code base but don't have time for the struggle with your project? Hire the Rector team to get there faster.

Learn Rector Faster

Not everyone has time to understand Rector and AST complexity. You can speed up the process by reading the book The Power of Automated Refactoring. Not only will it help you learn and understand Rector but it supports the project as well.