Czym jest Rector i jak go używać?

W dzisiejszym wpisie przyjrzymy się narzędziu o nazwie Rector, które może znacznie ułatwić prace programistów PHP. Poznasz jego funkcje, korzyści płynące z jego zastosowania oraz dowiesz się, jak go używać w praktyce. Zapraszam do lektury!

Część 1: Czym jest Rector?


Rector to narzędzie open-source stworzone z myślą o programistach PHP. Jego głównym zadaniem jest automatyczne przeprowadzanie refaktoryzacji kodu oraz modernizowanie go do nowszych wersji PHP. Rector może również pomóc w poprawianiu błędów, stosowaniu dobrych praktyk oraz eliminowaniu przestarzałych funkcji. Narzędzie to pozwala na znaczne oszczędności czasu i wysiłku podczas pracy z kodem źródłowym.

Część 2: Dlaczego warto używać Rectora?

1. Automatyzacja refaktoryzacji: Rector potrafi automatycznie przeprowadzać proces refaktoryzacji, co pozwala na usunięcie wielu manualnych kroków.
2. Wsparcie dla różnych wersji PHP: Rector wspiera migracje pomiędzy różnymi wersjami PHP, co pozwala na szybkie i łatwe modernizowanie kodu.
3. Poprawa jakości kodu: Rector pomaga w wykrywaniu i naprawianiu błędów, co prowadzi do zwiększenia jakości kodu.
4. Wdrożenie dobrych praktyk: Narzędzie wspiera stosowanie dobrych praktyk programistycznych oraz zasady SOLID, co przekłada się na czytelniejszy i łatwiejszy w utrzymaniu kod.

Część 3: Jak używać Rectora?

1. Instalacja: Aby zainstalować Rectora, użyj komendy:

composer require rector/rector --dev

2. Konfiguracja: Utwórz plik konfiguracyjny rector.php w głównym katalogu projektu. W tym pliku możesz określić reguły, które Rector ma stosować podczas refaktoryzacji. Przykładowa konfiguracja:

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\SetList;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector;

return static function (RectorConfig $rectorConfig): void {
    // register single rule
    $rectorConfig->rule(TypedPropertyFromStrictConstructorRector::class);

    // here we can define, what sets of rules will be applied
    // tip: use "SetList" class to autocomplete sets with your IDE
    $rectorConfig->sets([
        SetList::CODE_QUALITY
    ]);
};

3. Uruchomienie Rectora: Aby uruchomić Rectora, użyj komendy:

vendor/bin/rector process [ścieżka_do_katalogu_lub_pliku] 

Rector automatycznie przeprowadzi refaktoryzację kodu według zdefiniowanych reguł.

4. Sprawdzenie zmian: Po zakończeniu działania Rectora, sprawdź zmiany wprowadzone w kodzie. Przejrzyj je i upewnij się, że wszystko jest zgodne z oczekiwaniami. W razie potrzeby, możesz dostosować reguły w pliku konfiguracyjnym i uruchomić Rectora ponownie.

5. Testy: Po przeprowadzeniu refaktoryzacji, upewnij się, że wszelkie testy jednostkowe oraz integracyjne działają poprawnie. Jeśli nie masz jeszcze testów, rozważ ich dodanie, aby móc łatwiej kontrolować wprowadzane zmiany.

6. Przeprowadzenie migracji do nowszych wersji PHP: Jeśli chcesz przeprowadzić migrację kodu do nowszej wersji PHP, skorzystaj z gotowych zestawów reguł dostarczonych przez Rector. Na przykład, aby przeprowadzić migrację z PHP 7.4 do PHP 8.0, dodaj poniższy kod do pliku rector.php:

<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
    $parameters = $containerConfigurator->parameters();
    $parameters->set(Option::SETS, [
        SetList::PHP_74,
        SetList::PHP_80,
    ]);
};

Następnie uruchom Rectora, aby przeprowadzić automatyczne zmiany w kodzie.

Podsumowanie:


Rector to potężne narzędzie, które może znacząco usprawnić proces refaktoryzacji i modernizacji kodu PHP. Dzięki niemu, programiści mogą skupić się na tworzeniu nowych funkcjonalności, zamiast poświęcać czas na ręczne wprowadzanie zmian w kodzie. Jeśli jeszcze nie korzystasz z Rectora, warto rozważyć jego zastosowanie w swoich projektach.

Dołącz do Newslettera! Co tydzień świeże newsy ze świata PHP

X