Rector 立即升級並重構您應用程式的 PHP 程式碼。它可以在 2 個主要領域為您提供幫助:
Rector 現在支援從 PHP 5.3 到 8.4 的升級以及 Symfony、PHPUnit 和 Doctrine 等主要開源專案。您想毫不費力地持續使用最新的 PHP 和框架嗎?
使用 Rector 為您處理即時升級。
您是否擁有所需的程式碼質量,但很難讓團隊中的新開發人員保持這種品質?即使每個高級開發人員都在睡覺,您是否希望看到智慧程式碼審查?
將 Rector 添加到您的 CI 中,讓它不斷重構您的程式碼並保持較高的程式碼品質。
閱讀我們的博文,了解如何設定自動重構。
composer require rector/rector --dev
Rector的使用主要有2種方式:
要使用它們,請在根目錄中建立一個rector.php
:
vendor/bin/rector
並修改它:
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
然後演練 Rector:
vendor/bin/rector process src --dry-run
Rector 將向您顯示它將更改的檔案的差異。若要進行更改,請刪除--dry-run
:
vendor/bin/rector process src
您是否好奇,Rector 內部是如何運作的,如何建立自己的規則並測試它們以及 Rector 為何誕生?閱讀 Rector - 自動重構的力量,它將引導您逐步完成 Rector 設定以及如何建立自己的規則。
Rector 社群的強大得益於活躍的維護者,他們負責特定專案的 Rector 集。
其中項目包括:
Rector 是我們免費開發和分享的工具,因此任何人都可以自動化重構。但並不是每個人都有自己的時間花幾十個小時來理解抽象語法樹的複雜性。這就是我們提供商業支援的原因 - 以節省您的時間。
您想在您的程式碼庫中套用 Rector,但沒有時間與您的專案作鬥爭嗎?僱用我們可以更快到達那裡。
請參閱貢獻指南或前往開發儲存庫ector/rector-src。
您可以使用--debug
選項,它將列印嵌套異常輸出:
vendor/bin/rector process src/Controller --dry-run --debug
或使用 Xdebug:
--xdebug
選項vendor/bin/rector process src/Controller --dry-run --xdebug
為了協助簡單的調試,Rector 提供了 2 個助手來漂亮列印 AST 節點:
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
Rector 使用 nikic/php-parser,該解析器基於稱為抽象語法樹(AST) 的技術建構。 AST 不知道空格,當寫入檔案時,它會在 PHP 和 docblock 註解中產生格式錯誤的程式碼。
並行模式下的 Rector 在大多數作業系統中都能正常運作。在 Windows 上,儘管遵循並行故障排除指南,您可能會遇到無法解決的問題。在這種情況下,請檢查您是否使用 Powershell 7 (pwsh)。將終端機變更為命令提示字元 (cmd) 或 Windows 的 bash。
你的專案需要有一個編碼標準工具和一套格式化規則,這樣它才能讓 Rector 的輸出程式碼再次變得漂亮和閃亮。
我們使用 ECS 進行此設定。
當您將變更套用至包含 PHP + HTML 內容的檔案時,您可能需要在套用變更後手動驗證變更的檔案。