{"id":"https:\/\/getrector.com\/rss.xml","link":{"@attributes":{"href":"https:\/\/getrector.com\/rss.xml"}},"title":{},"description":"Rector Blog about Legacy Code Migrations","language":{},"updated":"Sat, 07 Feb 2026 00:00:00 +0000","entry":[{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/upgrade-to-phpunit-125-in-7-diffs"}},"id":"https:\/\/getrector.com\/blog\/upgrade-to-phpunit-125-in-7-diffs","author":{"name":{}},"summary":{},"updated":"Sat, 07 Feb 2026 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-safe-and-progressive-strict-type-adoption-rule"}},"id":"https:\/\/getrector.com\/blog\/introducing-safe-and-progressive-strict-type-adoption-rule","author":{"name":{}},"summary":{},"updated":"Sun, 01 Feb 2026 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/make-phpunit-tests-perfect-in-15-diffs"}},"id":"https:\/\/getrector.com\/blog\/make-phpunit-tests-perfect-in-15-diffs","author":{"name":{}},"summary":{},"updated":"Wed, 12 Nov 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-22-new-rules-for-array-docblocks"}},"id":"https:\/\/getrector.com\/blog\/rector-22-new-rules-for-array-docblocks","author":{"name":{}},"summary":{},"updated":"Mon, 06 Oct 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-rector-jack-raise-your-dependencies-safely"}},"id":"https:\/\/getrector.com\/blog\/introducing-rector-jack-raise-your-dependencies-safely","author":{"name":{}},"summary":{},"updated":"Mon, 19 May 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-install-old-or-new-php-on-non-lts-ubuntu"}},"id":"https:\/\/getrector.com\/blog\/how-to-install-old-or-new-php-on-non-lts-ubuntu","author":{"name":{}},"summary":{},"updated":"Fri, 25 Apr 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-strangle-your-project-with-strangle-anti-pattern"}},"id":"https:\/\/getrector.com\/blog\/how-to-strangle-your-project-with-strangle-anti-pattern","author":{"name":{}},"summary":{},"updated":"Mon, 03 Mar 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/road-to-hell-is-paved-with-strings"}},"id":"https:\/\/getrector.com\/blog\/road-to-hell-is-paved-with-strings","author":{"name":{}},"summary":{},"updated":"Sun, 02 Mar 2025 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/evolution-of-new-rector-logo"}},"id":"https:\/\/getrector.com\/blog\/evolution-of-new-rector-logo","author":{"name":{}},"summary":{},"updated":"Mon, 16 Dec 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/5-new-features-in-rector-20"}},"id":"https:\/\/getrector.com\/blog\/5-new-features-in-rector-20","author":{"name":{}},"summary":{},"updated":"Thu, 12 Dec 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-composer-version-based-sets"}},"id":"https:\/\/getrector.com\/blog\/introducing-composer-version-based-sets","author":{"name":{}},"summary":{},"updated":"Wed, 13 Nov 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/improving-rector-performance-by-20-30-percent"}},"id":"https:\/\/getrector.com\/blog\/improving-rector-performance-by-20-30-percent","author":{"name":{}},"summary":{},"updated":"Wed, 11 Sep 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-is-joining-open-source-pledge"}},"id":"https:\/\/getrector.com\/blog\/rector-is-joining-open-source-pledge","author":{"name":{}},"summary":{},"updated":"Mon, 09 Sep 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-migrate-codeigniter-to-symfony-or-laravel"}},"id":"https:\/\/getrector.com\/blog\/how-to-migrate-codeigniter-to-symfony-or-laravel","author":{"name":{}},"summary":{},"updated":"Mon, 19 Aug 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-rule-finder"}},"id":"https:\/\/getrector.com\/blog\/introducing-rule-finder","author":{"name":{}},"summary":{},"updated":"Mon, 24 Jun 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-type-perfect-for-extra-safety"}},"id":"https:\/\/getrector.com\/blog\/introducing-type-perfect-for-extra-safety","author":{"name":{}},"summary":{},"updated":"Tue, 04 Jun 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/5-tricks-to-write-better-custom-rules"}},"id":"https:\/\/getrector.com\/blog\/5-tricks-to-write-better-custom-rules","author":{"name":{}},"summary":{},"updated":"Wed, 29 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/migrate-datetime-to-carbon"}},"id":"https:\/\/getrector.com\/blog\/migrate-datetime-to-carbon","author":{"name":{}},"summary":{},"updated":"Wed, 22 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/7-traits-of-successful-upgrade-companies"}},"id":"https:\/\/getrector.com\/blog\/7-traits-of-successful-upgrade-companies","author":{"name":{}},"summary":{},"updated":"Wed, 15 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/introducing-play-with-ast-page"}},"id":"https:\/\/getrector.com\/blog\/introducing-play-with-ast-page","author":{"name":{}},"summary":{},"updated":"Tue, 07 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/upgrade-legacy-framework-or-change-it-for-another"}},"id":"https:\/\/getrector.com\/blog\/upgrade-legacy-framework-or-change-it-for-another","author":{"name":{}},"summary":{},"updated":"Sat, 04 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-upgrade-zend-legacy-project"}},"id":"https:\/\/getrector.com\/blog\/how-to-upgrade-zend-legacy-project","author":{"name":{}},"summary":{},"updated":"Thu, 02 May 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-upgrace-phalcon-project"}},"id":"https:\/\/getrector.com\/blog\/how-to-upgrace-phalcon-project","author":{"name":{}},"summary":{},"updated":"Thu, 15 Feb 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-1-0-is-here"}},"id":"https:\/\/getrector.com\/blog\/rector-1-0-is-here","author":{"name":{}},"summary":{},"updated":"Thu, 08 Feb 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/what-to-expect-when-you-plan-to-migrate-away-from-cakephp-2"}},"id":"https:\/\/getrector.com\/blog\/what-to-expect-when-you-plan-to-migrate-away-from-cakephp-2","author":{"name":{}},"summary":{},"updated":"Mon, 05 Feb 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/grab-fresh-book-release-with-rector-019"}},"id":"https:\/\/getrector.com\/blog\/grab-fresh-book-release-with-rector-019","author":{"name":{}},"summary":{},"updated":"Tue, 30 Jan 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/modernize-symfony-configs"}},"id":"https:\/\/getrector.com\/blog\/modernize-symfony-configs","author":{"name":{}},"summary":{},"updated":"Mon, 22 Jan 2024 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/5-common-mistakes-in-rector-config-and-how-to-avoid-them"}},"id":"https:\/\/getrector.com\/blog\/5-common-mistakes-in-rector-config-and-how-to-avoid-them","author":{"name":{}},"summary":{},"updated":"Mon, 04 Sep 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-017-using-scoped-traverse"}},"id":"https:\/\/getrector.com\/blog\/rector-017-using-scoped-traverse","author":{"name":{}},"summary":{},"updated":"Sun, 27 Aug 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-018-from-symfony-container-to-laravel-and-how-to-upgrade-your-extensions"}},"id":"https:\/\/getrector.com\/blog\/rector-018-from-symfony-container-to-laravel-and-how-to-upgrade-your-extensions","author":{"name":{}},"summary":{},"updated":"Thu, 24 Aug 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-018-how-we-made-tests-seven-times-faster"}},"id":"https:\/\/getrector.com\/blog\/rector-018-how-we-made-tests-seven-times-faster","author":{"name":{}},"summary":{},"updated":"Mon, 21 Aug 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-018-refocus-on-php"}},"id":"https:\/\/getrector.com\/blog\/rector-018-refocus-on-php","author":{"name":{}},"summary":{},"updated":"Wed, 16 Aug 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-017-brings-more-robust-and-lighter-node-tree"}},"id":"https:\/\/getrector.com\/blog\/rector-017-brings-more-robust-and-lighter-node-tree","author":{"name":{}},"summary":{},"updated":"Mon, 14 Aug 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/faster-rector-on-015"}},"id":"https:\/\/getrector.com\/blog\/faster-rector-on-015","author":{"name":{}},"summary":{},"updated":"Thu, 23 Mar 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-setup-ci-command-to-let-rector-work-for-you"}},"id":"https:\/\/getrector.com\/blog\/new-setup-ci-command-to-let-rector-work-for-you","author":{"name":{}},"summary":{},"updated":"Fri, 03 Mar 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-upgrade-to-phpunit-10-in-diffs"}},"id":"https:\/\/getrector.com\/blog\/how-to-upgrade-to-phpunit-10-in-diffs","author":{"name":{}},"summary":{},"updated":"Fri, 03 Feb 2023 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-in-rector-015-complete-safe-and-known-type-declarations"}},"id":"https:\/\/getrector.com\/blog\/new-in-rector-015-complete-safe-and-known-type-declarations","author":{"name":{}},"summary":{},"updated":"Sat, 10 Dec 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/separating-laravel-and-cakephp-as-community-packages"}},"id":"https:\/\/getrector.com\/blog\/separating-laravel-and-cakephp-as-community-packages","author":{"name":{}},"summary":{},"updated":"Tue, 08 Nov 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/support-for-nested-doctrine-annotation-to-flat-attributes-in-rector-014"}},"id":"https:\/\/getrector.com\/blog\/support-for-nested-doctrine-annotation-to-flat-attributes-in-rector-014","author":{"name":{}},"summary":{},"updated":"Fri, 09 Sep 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/tests-made-simpler-in-rector-014"}},"id":"https:\/\/getrector.com\/blog\/tests-made-simpler-in-rector-014","author":{"name":{}},"summary":{},"updated":"Fri, 02 Sep 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/interview-legacy-code-javascript-transpilers-and-rector-challenges"}},"id":"https:\/\/getrector.com\/blog\/interview-legacy-code-javascript-transpilers-and-rector-challenges","author":{"name":{}},"summary":{},"updated":"Sat, 20 Aug 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/separating-typo3-and-nette-as-community-packages"}},"id":"https:\/\/getrector.com\/blog\/separating-typo3-and-nette-as-community-packages","author":{"name":{}},"summary":{},"updated":"Fri, 05 Aug 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-automatically-add-return-type-declarations-without-breaking-your-code"}},"id":"https:\/\/getrector.com\/blog\/how-to-automatically-add-return-type-declarations-without-breaking-your-code","author":{"name":{}},"summary":{},"updated":"Mon, 04 Jul 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-in-rector-013-refresh-scope-for-changed-nodes"}},"id":"https:\/\/getrector.com\/blog\/new-in-rector-013-refresh-scope-for-changed-nodes","author":{"name":{}},"summary":{},"updated":"Thu, 12 May 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-in-rector-012-introducing-rector-config-with-autocomplete"}},"id":"https:\/\/getrector.com\/blog\/new-in-rector-012-introducing-rector-config-with-autocomplete","author":{"name":{}},"summary":{},"updated":"Tue, 26 Apr 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/success-story-of-automated-framework-migration-from-fuelphp-to-laravel-of-400k-lines-application"}},"id":"https:\/\/getrector.com\/blog\/success-story-of-automated-framework-migration-from-fuelphp-to-laravel-of-400k-lines-application","author":{"name":{}},"summary":{},"updated":"Mon, 07 Feb 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-migrate-legacy-php-applications-without-stopping-development-of-new-features"}},"id":"https:\/\/getrector.com\/blog\/how-to-migrate-legacy-php-applications-without-stopping-development-of-new-features","author":{"name":{}},"summary":{},"updated":"Fri, 21 Jan 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-in-rector-012-much-simpler-and-safer-rule-configuration"}},"id":"https:\/\/getrector.com\/blog\/new-in-rector-012-much-simpler-and-safer-rule-configuration","author":{"name":{}},"summary":{},"updated":"Fri, 07 Jan 2022 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/new-in-rector-012-the-latest-php-in-a-single-import"}},"id":"https:\/\/getrector.com\/blog\/new-in-rector-012-the-latest-php-in-a-single-import","author":{"name":{}},"summary":{},"updated":"Fri, 31 Dec 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-all-frameworks-can-bump-to-php-81-and-you-can-use-older-php"}},"id":"https:\/\/getrector.com\/blog\/how-all-frameworks-can-bump-to-php-81-and-you-can-use-older-php","author":{"name":{}},"summary":{},"updated":"Mon, 18 Oct 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-upgrade-annotations-to-attributes"}},"id":"https:\/\/getrector.com\/blog\/how-to-upgrade-annotations-to-attributes","author":{"name":{}},"summary":{},"updated":"Mon, 11 Oct 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/dropping-docker-in-favor-of-composer-install-for-better-developer-experince"}},"id":"https:\/\/getrector.com\/blog\/dropping-docker-in-favor-of-composer-install-for-better-developer-experince","author":{"name":{}},"summary":{},"updated":"Mon, 09 Aug 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-bump-minimal-version-without-leaving-anyone-behind"}},"id":"https:\/\/getrector.com\/blog\/how-to-bump-minimal-version-without-leaving-anyone-behind","author":{"name":{}},"summary":{},"updated":"Mon, 10 May 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/prefixed-rector-by-default"}},"id":"https:\/\/getrector.com\/blog\/prefixed-rector-by-default","author":{"name":{}},"summary":{},"updated":"Mon, 03 May 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/from-doctrine-annotations-parser-to-static-reflection"}},"id":"https:\/\/getrector.com\/blog\/from-doctrine-annotations-parser-to-static-reflection","author":{"name":{}},"summary":{},"updated":"Mon, 05 Apr 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-010-released-with-php71-support"}},"id":"https:\/\/getrector.com\/blog\/rector-010-released-with-php71-support","author":{"name":{}},"summary":{},"updated":"Mon, 22 Mar 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/legacy-refactoring-made-easy-with-static-reflection"}},"id":"https:\/\/getrector.com\/blog\/legacy-refactoring-made-easy-with-static-reflection","author":{"name":{}},"summary":{},"updated":"Mon, 15 Mar 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-much-does-single-type-declaration-know"}},"id":"https:\/\/getrector.com\/blog\/how-much-does-single-type-declaration-know","author":{"name":{}},"summary":{},"updated":"Mon, 15 Feb 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-instantly-decouple-symfony-doctrine-repository-inheritance-to-clean-composition"}},"id":"https:\/\/getrector.com\/blog\/how-to-instantly-decouple-symfony-doctrine-repository-inheritance-to-clean-composition","author":{"name":{}},"summary":{},"updated":"Mon, 08 Feb 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-instantly-refactor-symfony-action-injects-to-constructor-injection"}},"id":"https:\/\/getrector.com\/blog\/how-to-instantly-refactor-symfony-action-injects-to-constructor-injection","author":{"name":{}},"summary":{},"updated":"Mon, 01 Feb 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/smooth-upgrade-to-nette-31-in-diffs"}},"id":"https:\/\/getrector.com\/blog\/smooth-upgrade-to-nette-31-in-diffs","author":{"name":{}},"summary":{},"updated":"Mon, 18 Jan 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/switch-symfony-string-route-names-to-constants"}},"id":"https:\/\/getrector.com\/blog\/switch-symfony-string-route-names-to-constants","author":{"name":{}},"summary":{},"updated":"Mon, 11 Jan 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/7-valuable-lessons-we-learned-from-our-clients-in-2020"}},"id":"https:\/\/getrector.com\/blog\/7-valuable-lessons-we-learned-from-our-clients-in-2020","author":{"name":{}},"summary":{},"updated":"Mon, 04 Jan 2021 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-09-released"}},"id":"https:\/\/getrector.com\/blog\/rector-09-released","author":{"name":{}},"summary":{},"updated":"Mon, 28 Dec 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/4-configurable-phpstan-rules-that-help-rector-merge-188-pull-request-a-month"}},"id":"https:\/\/getrector.com\/blog\/4-configurable-phpstan-rules-that-help-rector-merge-188-pull-request-a-month","author":{"name":{}},"summary":{},"updated":"Mon, 14 Dec 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/laravel-facades-to-constructor-injection-replace-facade-aliases-with-full-classes-in-2-hours"}},"id":"https:\/\/getrector.com\/blog\/laravel-facades-to-constructor-injection-replace-facade-aliases-with-full-classes-in-2-hours","author":{"name":{}},"summary":{},"updated":"Mon, 07 Dec 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/smooth-upgrade-to-php-8-in-diffs"}},"id":"https:\/\/getrector.com\/blog\/smooth-upgrade-to-php-8-in-diffs","author":{"name":{}},"summary":{},"updated":"Mon, 30 Nov 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-make-rector-contribute-your-pull-requests-every-day"}},"id":"https:\/\/getrector.com\/blog\/how-to-make-rector-contribute-your-pull-requests-every-day","author":{"name":{}},"summary":{},"updated":"Mon, 05 Oct 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-inline-value-object-in-symfony-php-config"}},"id":"https:\/\/getrector.com\/blog\/how-to-inline-value-object-in-symfony-php-config","author":{"name":{}},"summary":{},"updated":"Mon, 07 Sep 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/rector-is-moving-from-yaml-to-php-configs-what-changes-and-how-to-get-ready"}},"id":"https:\/\/getrector.com\/blog\/rector-is-moving-from-yaml-to-php-configs-what-changes-and-how-to-get-ready","author":{"name":{}},"summary":{},"updated":"Mon, 31 Aug 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-migrate-from-phpexcel-to-phpspreadsheet-with-rector-in-30-minutes"}},"id":"https:\/\/getrector.com\/blog\/how-to-migrate-from-phpexcel-to-phpspreadsheet-with-rector-in-30-minutes","author":{"name":{}},"summary":{},"updated":"Thu, 16 Apr 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/upgrading-glami-to-psr-4-what-why-how"}},"id":"https:\/\/getrector.com\/blog\/upgrading-glami-to-psr-4-what-why-how","author":{"name":{}},"summary":{},"updated":"Tue, 10 Mar 2020 00:00:00 +0000"},{"title":{},"link":{"@attributes":{"rel":"alternate","href":"https:\/\/getrector.com\/blog\/how-to-install-rector-despite-composer-conflicts"}},"id":"https:\/\/getrector.com\/blog\/how-to-install-rector-despite-composer-conflicts","author":{"name":{}},"summary":{},"updated":"Mon, 20 Jan 2020 00:00:00 +0000"}]}