<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hassan Elhawary</title>
    <description>The latest articles on DEV Community by Hassan Elhawary (@hasanhawary).</description>
    <link>https://dev.to/hasanhawary</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4024331%2F6f36d07f-c0de-4a61-bbdb-1ae554f9e423.jpg</url>
      <title>DEV Community: Hassan Elhawary</title>
      <link>https://dev.to/hasanhawary</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hasanhawary"/>
    <language>en</language>
    <item>
      <title>I Built PVM: An Open-Source PHP Version Manager Inspired by NVM</title>
      <dc:creator>Hassan Elhawary</dc:creator>
      <pubDate>Fri, 10 Jul 2026 17:02:30 +0000</pubDate>
      <link>https://dev.to/hasanhawary/i-built-pvm-an-open-source-php-version-manager-inspired-by-nvm-2fmp</link>
      <guid>https://dev.to/hasanhawary/i-built-pvm-an-open-source-php-version-manager-inspired-by-nvm-2fmp</guid>
      <description>&lt;p&gt;As developers, we spend a lot of time solving problems for our users—but sometimes the biggest productivity improvements come from solving our own.&lt;/p&gt;

&lt;p&gt;For me, one recurring pain point was managing multiple PHP versions across different projects.&lt;/p&gt;

&lt;p&gt;Some projects still run on older PHP releases, while newer ones require the latest version. Switching between them often meant manually updating configurations, checking environment variables, and making sure the correct PHP executable was active.&lt;/p&gt;

&lt;p&gt;It worked, but it never felt like a great developer experience.&lt;/p&gt;

&lt;p&gt;Why I Built PVM&lt;/p&gt;

&lt;p&gt;Node.js developers have one of the best version management tools available: nvm.&lt;/p&gt;

&lt;p&gt;The workflow is simple.&lt;/p&gt;

&lt;p&gt;nvm install 22&lt;br&gt;
nvm use 22&lt;/p&gt;

&lt;p&gt;I wanted a similar experience for PHP.&lt;/p&gt;

&lt;p&gt;That idea became PVM (PHP Version Manager)—an open-source CLI tool focused on making PHP version management simple.&lt;/p&gt;

&lt;p&gt;What PVM Does&lt;/p&gt;

&lt;p&gt;With PVM, installing and switching PHP versions is straightforward.&lt;/p&gt;

&lt;p&gt;pvm install 8.3&lt;br&gt;
pvm use 8.3&lt;br&gt;
php -v&lt;/p&gt;

&lt;p&gt;Current capabilities include:&lt;/p&gt;

&lt;p&gt;Install PHP versions&lt;br&gt;
Manage multiple installed versions&lt;br&gt;
Switch between versions instantly&lt;br&gt;
Lightweight CLI&lt;br&gt;
Open source&lt;br&gt;
Design Goals&lt;/p&gt;

&lt;p&gt;When building PVM, I tried to keep a few principles in mind:&lt;/p&gt;

&lt;p&gt;Simple commands&lt;br&gt;
Fast execution&lt;br&gt;
Minimal configuration&lt;br&gt;
Familiar developer experience&lt;br&gt;
Easy to contribute to&lt;/p&gt;

&lt;p&gt;Rather than adding dozens of commands, I'd rather keep the interface predictable and intuitive.&lt;/p&gt;

&lt;p&gt;What's Next&lt;/p&gt;

&lt;p&gt;This is only the first public release.&lt;/p&gt;

&lt;p&gt;There are many ideas planned for future versions, including improvements to the developer experience and additional workflow features.&lt;/p&gt;

&lt;p&gt;Community feedback will help shape the roadmap.&lt;/p&gt;

&lt;p&gt;Open Source&lt;/p&gt;

&lt;p&gt;If you'd like to try PVM, report issues, suggest new features, or contribute, I'd love to hear from you.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hasanhawary/pvm" rel="noopener noreferrer"&gt;https://github.com/hasanhawary/pvm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every issue, discussion, and pull request helps make the project better.&lt;/p&gt;

&lt;p&gt;If you find the project useful, consider giving it a ⭐ on GitHub.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>php</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
