برنامه نویسی

با Rector پروژه خود را به PHP 8.2 ارتقا دهید

من می خواستم یک پروژه را به PHP 8.2 ارتقا دهم و فهمیدم که می توانم از Rector برای این کار استفاده کنم.

نه تنها اینطور بود، بلکه من کاملاً دست کم گرفتم که چقدر آسان می شد.

رکتور چیست؟

Rector یک ابزار رایگان و منبع باز است که با زبان PHP نوشته شده است که به شما امکان می دهد وظایف مختلف بازسازی را خودکار کنید. کد شما را تجزیه و تحلیل می کند و قوانینی را که در پیکربندی آن مشخص کرده اید اعمال می کند. همچنین این امکان وجود دارد که قوانین خود را ایجاد کنید.

چگونه پروژه خود را به PHP 8.2 ارتقا دهیم

ابتدا Rector را به عنوان وابستگی توسعه نصب کنید:

$ composer require --dev rector/rector
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، تولید کنید rector.php فایل پیکربندی در ریشه پروژه شما:

$ ./vendor/bin/rector init
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

آن فایل را باز کنید و محتوای آن را با موارد زیر جایگزین کنید:

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->sets([LevelSetList::UP_TO_PHP_82]);
};
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای بررسی تغییراتی که Rector قرار است ایجاد کند، یک اجرا خشک انجام دهید (در زیر آن را تجزیه و تحلیل می کند app پوشه به عنوان مثال):

$ ./vendor/bin/rector process app --dry-run
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر از آنها راضی هستید، تغییرات را اعمال کنید:

$ ./vendor/bin/rector process app
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همچنین می‌توانید مسیرهایی را برای تجزیه و تحلیل در فایل پیکربندی مستقیماً مشخص کنید:

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__ . '/app',
        // ...
    ]);

    $rectorConfig->sets([LevelSetList::UP_TO_PHP_82]);
};
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و سپس به سادگی اجرا کنید:

$ ./vendor/bin/rector process
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

زیر کاپوت چه خبر است؟

در بالا، UP_TO_PHP_82 ثابت به این معنی است که نه تنها قوانین ارتقاء از PHP 8.1 به PHP 8.2 اعمال شده است، بلکه قوانین از PHP 8.0 به PHP 8.1 و همچنین تمامی نسخه های دیگر تا PHP 5.2 اعمال شده اند.

به عبارت دیگر، می توانید با استفاده از مجموعه قوانین از پیش تعریف شده ارائه شده توسط Rector، کل پایه کد را از PHP 5.2 به آخرین نسخه با یک دستور بیاورید.

اما موارد بیشتری وجود دارد – می‌توانید قوانین موجود و توضیحات آنها را در اینجا بررسی کنید، که بسیار فراتر از تغییرات مربوط به نسخه است. و همانطور که قبلا ذکر شد، در صورت نیاز می توانید قوانین خود را نیز ایجاد کنید.

بستن افکار

Rector مدتی در رادار من بوده است و من حتی قبلاً چند بار از آن استفاده کردم، با این حال هنوز از قدرت آن شگفت زده هستم.

در حالی که به نظر می رسد اخیراً کشش کمی بیشتر شده است، همراه با سایر ابزارهای تجزیه و تحلیل استاتیک مانند PHPStan، هنوز بسیار مورد استفاده قرار نمی گیرد. یکی از دلایل احتمالاً عدم آگاهی توسعه دهندگان از پتانسیل آن است که موارد فوق فقط یک ذوق است.

کتابی وجود دارد که به طور عمیق Rector را پوشش می دهد که به زودی قصد مطالعه آن را دارم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا