DEV Community

Cover image for I Built PVM: An Open-Source PHP Version Manager Inspired by NVM
Hassan Elhawary
Hassan Elhawary

Posted on

I Built PVM: An Open-Source PHP Version Manager Inspired by NVM

As developers, we spend a lot of time solving problems for our users—but sometimes the biggest productivity improvements come from solving our own.

For me, one recurring pain point was managing multiple PHP versions across different projects.

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.

It worked, but it never felt like a great developer experience.

Why I Built PVM

Node.js developers have one of the best version management tools available: nvm.

The workflow is simple.

nvm install 22
nvm use 22

I wanted a similar experience for PHP.

That idea became PVM (PHP Version Manager)—an open-source CLI tool focused on making PHP version management simple.

What PVM Does

With PVM, installing and switching PHP versions is straightforward.

pvm install 8.3
pvm use 8.3
php -v

Current capabilities include:

Install PHP versions
Manage multiple installed versions
Switch between versions instantly
Lightweight CLI
Open source
Design Goals

When building PVM, I tried to keep a few principles in mind:

Simple commands
Fast execution
Minimal configuration
Familiar developer experience
Easy to contribute to

Rather than adding dozens of commands, I'd rather keep the interface predictable and intuitive.

What's Next

This is only the first public release.

There are many ideas planned for future versions, including improvements to the developer experience and additional workflow features.

Community feedback will help shape the roadmap.

Open Source

If you'd like to try PVM, report issues, suggest new features, or contribute, I'd love to hear from you.

GitHub:

https://github.com/hasanhawary/pvm

Every issue, discussion, and pull request helps make the project better.

If you find the project useful, consider giving it a ⭐ on GitHub.

Thanks for reading!

Top comments (0)