<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://sugarclub.sugarai.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool</link><pubDate>Mon, 01 May 2023 19:13:43 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Current Revision posted to Dev Tutorials by Rafael Fernandes on 5/1/2023 7:13:43 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rectorphp/rector"&gt;Rector&lt;/a&gt; is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;How does Rector work with Sugar?&lt;/h2&gt;
&lt;p&gt;Rector is not a grep, search and replace tool, it&amp;nbsp;traverses&amp;nbsp;the entire object hierarchies to &amp;quot;understand&amp;quot; what can and cannot be changed without impacting the code&amp;#39;s functionality.&lt;/p&gt;
&lt;p&gt;For example, if you extend a SugarBean,&amp;nbsp;Rector needs the&amp;nbsp;entire&amp;nbsp;SugarBean class hierarchy loaded to make a decision in its&amp;nbsp;ruling engine.&lt;/p&gt;
&lt;p&gt;Having that in mind, Rector will need a working Sugar instance to execute and make recommendations (you can dry-run before it actually changes any code) and update your code automagically.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;Who uses Rector?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Use git to keep track of updated files before you run Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="content"&gt;
&lt;h2 id="mcetoc_1gudgk28f0"&gt;You can move on to the&amp;nbsp;Basic Setup Phase:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/828/rector-basic-setup"&gt;Rector Basic Setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/834/prepare-rector-for-mlp-addon"&gt;Prepare Rector for MLP/Addon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/837/prepare-rector-for-customizations"&gt;Prepare Rector for Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/836/executing-rector"&gt;Executing Rector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/838/keeping-compatibility"&gt;Keeping Compatibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/835/troubleshooting-rector"&gt;Troubleshooting Rector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="actions"&gt;
&lt;div class="navigation-list"&gt;
&lt;div class="container"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/9</link><pubDate>Thu, 20 Apr 2023 14:38:06 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 9 posted to Dev Tutorials by Rafael Fernandes on 4/20/2023 2:38:06 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;How does Rector work with Sugar?&lt;/h2&gt;
&lt;p&gt;Rector is not a grep, search and replace tool, it&amp;nbsp;traverses&amp;nbsp;the entire object hierarchies to &amp;quot;understand&amp;quot; what can and cannot be changed without impacting the code&amp;#39;s functionality.&lt;/p&gt;
&lt;p&gt;For example, if you extend a SugarBean,&amp;nbsp;Rector needs the&amp;nbsp;entire&amp;nbsp;SugarBean class hierarchy loaded to make a decision in its&amp;nbsp;ruling engine.&lt;/p&gt;
&lt;p&gt;Having that in mind, Rector will need a working Sugar instance to execute and make recommendations (you can dry-run before it actually changes any code) and update your code automagically.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;Who uses Rector?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Use git to keep track of updated files before you run Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="content"&gt;
&lt;h2 id="mcetoc_1gudgk28f0"&gt;You can move on to the&amp;nbsp;Basic Setup Phase:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/828/rector-basic-setup"&gt;Rector Basic Setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/834/prepare-rector-for-mlp-addon"&gt;Prepare Rector for MLP/Addon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/837/prepare-rector-for-customizations"&gt;Prepare Rector for Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/836/executing-rector"&gt;Executing Rector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/838/keeping-compatibility"&gt;Keeping Compatibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/w/dev-tutorials/835/troubleshooting-rector"&gt;Troubleshooting Rector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="actions"&gt;
&lt;div class="navigation-list"&gt;
&lt;div class="container"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/8</link><pubDate>Tue, 18 Apr 2023 15:16:14 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 8 posted to Dev Tutorials by Rafael Fernandes on 4/18/2023 3:16:14 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;How does Rector work with Sugar?&lt;/h2&gt;
&lt;p&gt;Rector is not a grep, search and replace tool, it&amp;nbsp;traverses&amp;nbsp;the entire object hierarchies to &amp;quot;understand&amp;quot; what can and cannot be changed without impacting the code&amp;#39;s functionality.&lt;/p&gt;
&lt;p&gt;For example, if you extend a SugarBean,&amp;nbsp;Rector needs the&amp;nbsp;entire&amp;nbsp;SugarBean class hierarchy loaded to make a decision in its&amp;nbsp;ruling engine.&lt;/p&gt;
&lt;p&gt;Having that in mind, Rector will need a working Sugar instance to execute and make recommendations (you can dry-run before it actually changes any code) and update your code automagically.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;Who uses Rector?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Use git to keep track of updated files before you run Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/7</link><pubDate>Tue, 04 Apr 2023 18:21:47 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 7 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 6:21:47 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;How does Rector work with Sugar?&lt;/h2&gt;
&lt;p&gt;Rector is not a grep, search and replace tool, it&amp;nbsp;traverses&amp;nbsp;the entire object hierarchies to &amp;quot;understand&amp;quot; what can and cannot be changed without impacting the code&amp;#39;s functionality.&lt;/p&gt;
&lt;p&gt;For example, if you extend a SugarBean,&amp;nbsp;Rector needs the&amp;nbsp;entire&amp;nbsp;SugarBean class hierarchy loaded to make a decision in its&amp;nbsp;ruling engine.&lt;/p&gt;
&lt;p&gt;Having that in mind, Rector will need a working Sugar instance to execute and make recommendations (you can dry-run before it actually changes any code) and update your code automagically.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;Who uses Rector?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/6</link><pubDate>Tue, 04 Apr 2023 15:28:15 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 6 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 3:28:15 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;Who uses Rector?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/5</link><pubDate>Tue, 04 Apr 2023 15:27:36 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 5 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 3:27:36 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How can it help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;How can I trust this tool?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/4</link><pubDate>Tue, 04 Apr 2023 15:22:10 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 4 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 3:22:10 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How it can help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;How can I trust this tool?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar Engineering group for a few&amp;nbsp;years now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyze&amp;nbsp;what the tool presents to you as suggestions and make a decision to incorporate those changes. Remember, it&amp;#39;s an automated tool that does what is told, so use it with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/3</link><pubDate>Tue, 04 Apr 2023 15:20:53 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 3 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 3:20:53 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How it can help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;How can I trust this tool?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar engineering group for few releases now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyse&amp;nbsp;what the tool presents to you as suggestions and make a decision to whether incorporate those changes. Remember, it&amp;#39;s an automated tool that does what&amp;#39;s told, so use with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers to code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Run a first pass in your customizations using &lt;code&gt;--dry-run&lt;/code&gt; so you can see exactly what Rector is/will change and decide to keep it.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/2</link><pubDate>Tue, 04 Apr 2023 15:17:19 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 2 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 3:17:19 PM&lt;br /&gt;
&lt;h2 id="mcetoc_1gt6d56ct0"&gt;&lt;span&gt;Why an Automated Compatibility Tool?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;PHP is a rapidly evolving language, and new versions are regularly released with new features and security improvements. However, with each new version, there may be changes to the language syntax, behavior, and functionality that can cause compatibility issues with code written in earlier versions.&amp;nbsp;&lt;/span&gt;It is crucial to keep the codebase clean and organized and maintain PHP compatibility when making customizations.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct1"&gt;What&amp;#39;s Rector and How it can help?&lt;/h2&gt;
&lt;p&gt;Rector is a powerful tool that automates the process of refactoring PHP code. It simplifies the codebase, making it easier to read, understand, and maintain.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;p&gt;By incorporating Rector into the customization process, you can save time and effort and reduce the risk of introducing bugs or coding standard violations. Rector can also help ensure that your customizations are aligned with the latest PHP versions and best practices, which can result in better performance, increased security, and a more stable system.&lt;/p&gt;
&lt;h2 id="mcetoc_1gt6d56ct2"&gt;How can I trust this tool?&lt;/h2&gt;
&lt;p&gt;Rector has been used by Sugar engineering group for few releases now and has proven to be to work very well in our massive codebase to keep the code simple, clean and multi-php-version compatible. You as a developer must&amp;nbsp;analyse&amp;nbsp;what the tool presents to you as suggestions and make a decision to whether incorporate those changes. Remember, it&amp;#39;s an automated tool that does what&amp;#39;s told, so use with caution.&lt;/p&gt;
&lt;div&gt;
&lt;div class="text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto"&gt;
&lt;div&gt;
&lt;div class="flex flex-grow flex-col gap-3"&gt;
&lt;div&gt;
&lt;div class="markdown prose w-full break-words dark:prose-invert light"&gt;
&lt;h2 id="mcetoc_1gt6d56ct3"&gt;Best Practices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sugar recommends developers to code their customizations in the latest &lt;a href="https://support.sugarcrm.com/Resources/Supported_Platforms/"&gt;Sugar Supported PHP&lt;/a&gt;&amp;nbsp;version and keep it backward compatible using Rector.&lt;/li&gt;
&lt;li&gt;Make a copy of your project/customization and run it. If you forget the &lt;code&gt;--dry-run&lt;/code&gt; argument, it will change your files and can become pretty difficult to track.&lt;/li&gt;
&lt;li&gt;Don&amp;#39;t use this tool directly in production!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Automated PHP Compatibility Tool</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool/revision/1</link><pubDate>Tue, 04 Apr 2023 14:48:59 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:dfa9d583-7e5b-4d2d-af75-4c177b2a89e2</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/819/automated-php-compatibility-tool#comments</comments><description>Revision 1 posted to Dev Tutorials by Rafael Fernandes on 4/4/2023 2:48:59 PM&lt;br /&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;What is it?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>