https://getrector.com/rss.xml <![CDATA[ Rector Blog ]]> Rector Blog about Legacy Code Migrations Sat, 07 Feb 2026 00:00:00 +0000 <![CDATA[ Upgrade to PHPUnit 12.5 in 7 Diffs ]]> https://getrector.com/blog/upgrade-to-phpunit-125-in-7-diffs Sat, 07 Feb 2026 00:00:00 +0000 <![CDATA[ Introducing Safe and Progressive Strict Type Adoption Rule ]]> https://getrector.com/blog/introducing-safe-and-progressive-strict-type-adoption-rule Sun, 01 Feb 2026 00:00:00 +0000 <![CDATA[ Make PHPUnit tests Perfect in 15 Diffs ]]> https://getrector.com/blog/make-phpunit-tests-perfect-in-15-diffs Wed, 12 Nov 2025 00:00:00 +0000 <![CDATA[ Rector 2.2: New rules for Array Docblocks ]]> https://getrector.com/blog/rector-22-new-rules-for-array-docblocks Mon, 06 Oct 2025 00:00:00 +0000 <![CDATA[ Introducing Rector Jack: Raise Your Dependencies Safely ]]> https://getrector.com/blog/introducing-rector-jack-raise-your-dependencies-safely Mon, 19 May 2025 00:00:00 +0000 <![CDATA[ How to install old or new PHP on non-LTS Ubuntu ]]> https://getrector.com/blog/how-to-install-old-or-new-php-on-non-lts-ubuntu Fri, 25 Apr 2025 00:00:00 +0000 <![CDATA[ How to Strangle your Project with Strangle Anti-Pattern ]]> https://getrector.com/blog/how-to-strangle-your-project-with-strangle-anti-pattern Mon, 03 Mar 2025 00:00:00 +0000 <![CDATA[ Road to Hell is Paved with Strings ]]> https://getrector.com/blog/road-to-hell-is-paved-with-strings Sun, 02 Mar 2025 00:00:00 +0000 <![CDATA[ Evolution of New Rector Logo ]]> https://getrector.com/blog/evolution-of-new-rector-logo Mon, 16 Dec 2024 00:00:00 +0000 <![CDATA[ 5 New Features in Rector 2.0 ]]> https://getrector.com/blog/5-new-features-in-rector-20 Thu, 12 Dec 2024 00:00:00 +0000 <![CDATA[ Introducing Composer Version-Based Sets ]]> https://getrector.com/blog/introducing-composer-version-based-sets Wed, 13 Nov 2024 00:00:00 +0000 <![CDATA[ Improving Rector Performance by 20-30 % ]]> https://getrector.com/blog/improving-rector-performance-by-20-30-percent Wed, 11 Sep 2024 00:00:00 +0000 <![CDATA[ Rector is joining the Open Source Pledge ]]> https://getrector.com/blog/rector-is-joining-open-source-pledge Mon, 09 Sep 2024 00:00:00 +0000 <![CDATA[ How to Migrate CodeIgniter to Symfony or Laravel ]]> https://getrector.com/blog/how-to-migrate-codeigniter-to-symfony-or-laravel Mon, 19 Aug 2024 00:00:00 +0000 <![CDATA[ Introducing Rule Finder ]]> https://getrector.com/blog/introducing-rule-finder Mon, 24 Jun 2024 00:00:00 +0000 <![CDATA[ Introducing Type Perfect for extra Safety ]]> https://getrector.com/blog/introducing-type-perfect-for-extra-safety Tue, 04 Jun 2024 00:00:00 +0000 <![CDATA[ 5 Tricks to Write Better Custom Rules ]]> https://getrector.com/blog/5-tricks-to-write-better-custom-rules Wed, 29 May 2024 00:00:00 +0000 <![CDATA[ Migrate DateTime to Carbon ]]> https://getrector.com/blog/migrate-datetime-to-carbon Wed, 22 May 2024 00:00:00 +0000 <![CDATA[ 7 Traits of Successful Upgrade Companies ]]> https://getrector.com/blog/7-traits-of-successful-upgrade-companies Wed, 15 May 2024 00:00:00 +0000 <![CDATA[ Introducing Play with AST page ]]> https://getrector.com/blog/introducing-play-with-ast-page Tue, 07 May 2024 00:00:00 +0000 <![CDATA[ Upgrade Legacy Framework or Change it for Another ]]> https://getrector.com/blog/upgrade-legacy-framework-or-change-it-for-another Sat, 04 May 2024 00:00:00 +0000 <![CDATA[ How to Upgrade Zend Legacy Project ]]> https://getrector.com/blog/how-to-upgrade-zend-legacy-project Thu, 02 May 2024 00:00:00 +0000 <![CDATA[ How to Upgrade Phalcon project ]]> https://getrector.com/blog/how-to-upgrace-phalcon-project Thu, 15 Feb 2024 00:00:00 +0000 <![CDATA[ Rector 1.0 is Here ]]> https://getrector.com/blog/rector-1-0-is-here Thu, 08 Feb 2024 00:00:00 +0000 <![CDATA[ What to expect when you plan to Migrate Away from CakePHP 2 ]]> https://getrector.com/blog/what-to-expect-when-you-plan-to-migrate-away-from-cakephp-2 Mon, 05 Feb 2024 00:00:00 +0000 <![CDATA[ Grab Fresh Book Release with Rector 1.0 ]]> https://getrector.com/blog/grab-fresh-book-release-with-rector-019 Tue, 30 Jan 2024 00:00:00 +0000 <![CDATA[ Modernize Symfony Configs ]]> https://getrector.com/blog/modernize-symfony-configs Mon, 22 Jan 2024 00:00:00 +0000 <![CDATA[ 5 Common Mistakes in Rector Config and How to Avoid Them ]]> https://getrector.com/blog/5-common-mistakes-in-rector-config-and-how-to-avoid-them Mon, 04 Sep 2023 00:00:00 +0000 <![CDATA[ Rector 0.17 - Using Scoped Traverse to Locate Specific Node ]]> https://getrector.com/blog/rector-017-using-scoped-traverse Sun, 27 Aug 2023 00:00:00 +0000 <![CDATA[ Rector 0.18 - From Symfony Container to Laravel and How to Upgrade your Extensions ]]> https://getrector.com/blog/rector-018-from-symfony-container-to-laravel-and-how-to-upgrade-your-extensions Thu, 24 Aug 2023 00:00:00 +0000 <![CDATA[ Rector 0.18 - How we made tests Seven Times Faster ]]> https://getrector.com/blog/rector-018-how-we-made-tests-seven-times-faster Mon, 21 Aug 2023 00:00:00 +0000 <![CDATA[ Rector 0.18 - Refocus on PHP ]]> https://getrector.com/blog/rector-018-refocus-on-php Wed, 16 Aug 2023 00:00:00 +0000 <![CDATA[ Rector 0.17 brings More Robust and Lighter Node Tree ]]> https://getrector.com/blog/rector-017-brings-more-robust-and-lighter-node-tree Mon, 14 Aug 2023 00:00:00 +0000 <![CDATA[ Faster Rector on 0.15.22 ]]> https://getrector.com/blog/faster-rector-on-015 Thu, 23 Mar 2023 00:00:00 +0000 <![CDATA[ New command to add Rector to your CI in seconds ]]> https://getrector.com/blog/new-setup-ci-command-to-let-rector-work-for-you Fri, 03 Mar 2023 00:00:00 +0000 <![CDATA[ How to Upgrade to PHPUnit 10 in Diffs ]]> https://getrector.com/blog/how-to-upgrade-to-phpunit-10-in-diffs Fri, 03 Feb 2023 00:00:00 +0000 <![CDATA[ New in Rector 0.15: Complete Safe and Known Type Declarations ]]> https://getrector.com/blog/new-in-rector-015-complete-safe-and-known-type-declarations Sat, 10 Dec 2022 00:00:00 +0000 <![CDATA[ Separating Laravel and CakePHP as Community Packages ]]> https://getrector.com/blog/separating-laravel-and-cakephp-as-community-packages Tue, 08 Nov 2022 00:00:00 +0000 <![CDATA[ Support for Nested Doctrine Annotation to Flat Attributes in Rector 0.14 ]]> https://getrector.com/blog/support-for-nested-doctrine-annotation-to-flat-attributes-in-rector-014 Fri, 09 Sep 2022 00:00:00 +0000 <![CDATA[ Tests Made Simpler in Rector 0.14 ]]> https://getrector.com/blog/tests-made-simpler-in-rector-014 Fri, 02 Sep 2022 00:00:00 +0000 <![CDATA[ Interview: Legacy Code, Javascript Transpilers and Rector Challenges ]]> https://getrector.com/blog/interview-legacy-code-javascript-transpilers-and-rector-challenges Sat, 20 Aug 2022 00:00:00 +0000 <![CDATA[ Separating Typo3 and Nette as Community Packages ]]> https://getrector.com/blog/separating-typo3-and-nette-as-community-packages Fri, 05 Aug 2022 00:00:00 +0000 <![CDATA[ How to Automatically Add Return Type Declarations without Breaking Your Code ]]> https://getrector.com/blog/how-to-automatically-add-return-type-declarations-without-breaking-your-code Mon, 04 Jul 2022 00:00:00 +0000 <![CDATA[ New in Rector 0.13 - Refresh Scope for Changed Nodes ]]> https://getrector.com/blog/new-in-rector-013-refresh-scope-for-changed-nodes Thu, 12 May 2022 00:00:00 +0000 <![CDATA[ New in Rector 0.12 - Introducing Rector Config with Autocomplete ]]> https://getrector.com/blog/new-in-rector-012-introducing-rector-config-with-autocomplete Tue, 26 Apr 2022 00:00:00 +0000 <![CDATA[ Success Story of Automated Framework Migration from FuelPHP to Laravel of 400k+lines Application ]]> https://getrector.com/blog/success-story-of-automated-framework-migration-from-fuelphp-to-laravel-of-400k-lines-application Mon, 07 Feb 2022 00:00:00 +0000 <![CDATA[ How to Migrate Legacy PHP Applications Without Stopping Development of New Features ]]> https://getrector.com/blog/how-to-migrate-legacy-php-applications-without-stopping-development-of-new-features Fri, 21 Jan 2022 00:00:00 +0000 <![CDATA[ New in Rector 0.12 - Much Simpler and Safer Rule Configuration ]]> https://getrector.com/blog/new-in-rector-012-much-simpler-and-safer-rule-configuration Fri, 07 Jan 2022 00:00:00 +0000 <![CDATA[ New in Rector 0.12 - The Latest PHP in a Single Import ]]> https://getrector.com/blog/new-in-rector-012-the-latest-php-in-a-single-import Fri, 31 Dec 2021 00:00:00 +0000 <![CDATA[ How all Frameworks can Bump to PHP 8.1 and You can Keep Using Older PHP ]]> https://getrector.com/blog/how-all-frameworks-can-bump-to-php-81-and-you-can-use-older-php Mon, 18 Oct 2021 00:00:00 +0000 <![CDATA[ How to Upgrade Annotations to Attributes ]]> https://getrector.com/blog/how-to-upgrade-annotations-to-attributes Mon, 11 Oct 2021 00:00:00 +0000 <![CDATA[ Dropping Docker in Favor of Composer Install for Better Developer Experience ]]> https://getrector.com/blog/dropping-docker-in-favor-of-composer-install-for-better-developer-experince Mon, 09 Aug 2021 00:00:00 +0000 <![CDATA[ How to bump Minimal PHP Version without Leaving Anyone Behind ]]> https://getrector.com/blog/how-to-bump-minimal-version-without-leaving-anyone-behind Mon, 10 May 2021 00:00:00 +0000 <![CDATA[ Prefixed Rector by Default ]]> https://getrector.com/blog/prefixed-rector-by-default Mon, 03 May 2021 00:00:00 +0000 <![CDATA[ From Doctrine Annotations Parser to Static Reflection ]]> https://getrector.com/blog/from-doctrine-annotations-parser-to-static-reflection Mon, 05 Apr 2021 00:00:00 +0000 <![CDATA[ Rector 0.10 Released - with PHP 7.1 Support ]]> https://getrector.com/blog/rector-010-released-with-php71-support Mon, 22 Mar 2021 00:00:00 +0000 <![CDATA[ Legacy Refactoring made Easy with Static Reflection ]]> https://getrector.com/blog/legacy-refactoring-made-easy-with-static-reflection Mon, 15 Mar 2021 00:00:00 +0000 <![CDATA[ How much does Single Type Declaration Know ]]> https://getrector.com/blog/how-much-does-single-type-declaration-know Mon, 15 Feb 2021 00:00:00 +0000 <![CDATA[ How to Instantly Decouple Symfony Doctrine Repository Inheritance to Clean Composition ]]> https://getrector.com/blog/how-to-instantly-decouple-symfony-doctrine-repository-inheritance-to-clean-composition Mon, 08 Feb 2021 00:00:00 +0000 <![CDATA[ How to Instantly Refactor Symfony Action Injects to Constructor Injection ]]> https://getrector.com/blog/how-to-instantly-refactor-symfony-action-injects-to-constructor-injection Mon, 01 Feb 2021 00:00:00 +0000 <![CDATA[ Smooth Upgrade to Nette 3.1 in Diffs ]]> https://getrector.com/blog/smooth-upgrade-to-nette-31-in-diffs Mon, 18 Jan 2021 00:00:00 +0000 <![CDATA[ Switch Symfony String Route Names to Constants ]]> https://getrector.com/blog/switch-symfony-string-route-names-to-constants Mon, 11 Jan 2021 00:00:00 +0000 <![CDATA[ 7 Valuable Lessons We Learned from our Clients in 2020 ]]> https://getrector.com/blog/7-valuable-lessons-we-learned-from-our-clients-in-2020 Mon, 04 Jan 2021 00:00:00 +0000 <![CDATA[ Rector 0.9 Released ❄️ ]]> https://getrector.com/blog/rector-09-released Mon, 28 Dec 2020 00:00:00 +0000 <![CDATA[ 4 Configurable PHPStan rules that Help Rector Merge 188 pull-requests a Month ]]> https://getrector.com/blog/4-configurable-phpstan-rules-that-help-rector-merge-188-pull-request-a-month Mon, 14 Dec 2020 00:00:00 +0000 <![CDATA[ Laravel Facades to Constructor Injection: Replace Facade Aliases with Full Classes in 2 hours ]]> https://getrector.com/blog/laravel-facades-to-constructor-injection-replace-facade-aliases-with-full-classes-in-2-hours Mon, 07 Dec 2020 00:00:00 +0000 <![CDATA[ Smooth Upgrade to PHP 8 in Diffs ]]> https://getrector.com/blog/smooth-upgrade-to-php-8-in-diffs Mon, 30 Nov 2020 00:00:00 +0000 <![CDATA[ How to make Rector Contribute Your Pull Requests Every Day ]]> https://getrector.com/blog/how-to-make-rector-contribute-your-pull-requests-every-day Mon, 05 Oct 2020 00:00:00 +0000 <![CDATA[ How to Inline Value Object in Symfony PHP Config ]]> https://getrector.com/blog/how-to-inline-value-object-in-symfony-php-config Mon, 07 Sep 2020 00:00:00 +0000 <![CDATA[ Rector is Moving From YAML to PHP Configs - What Changes and How to Get Ready ]]> https://getrector.com/blog/rector-is-moving-from-yaml-to-php-configs-what-changes-and-how-to-get-ready Mon, 31 Aug 2020 00:00:00 +0000 <![CDATA[ How to Migrate From PHPExcel to PHPSpreadsheet with Rector in 30 minutes ]]> https://getrector.com/blog/how-to-migrate-from-phpexcel-to-phpspreadsheet-with-rector-in-30-minutes Thu, 16 Apr 2020 00:00:00 +0000 <![CDATA[ Upgrading Glami to PSR-4, part 1: What and why ]]> https://getrector.com/blog/upgrading-glami-to-psr-4-what-why-how Tue, 10 Mar 2020 00:00:00 +0000 <![CDATA[ How to install Rector despite Composer Conflicts ]]> https://getrector.com/blog/how-to-install-rector-despite-composer-conflicts Mon, 20 Jan 2020 00:00:00 +0000