npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pvm-php

v0.1.2

Published

PHP Version Manager — Simple, fast PHP version management

Readme

pvm — PHP Version Manager

Simple, fast PHP version management. Inspired by nvm.

Cross-platform: macOS, Linux, and Windows.

pvm install 8.3
pvm use 8.3
pvm list
php -v  # PHP 8.3.x

Install

macOS / Linux

Quick install (recommended):

curl -fsSL https://raw.githubusercontent.com/nvndevio/pvm/main/install.sh | bash

Or via npm:

npm install -g pvm-php

Then add to your ~/.zshrc or ~/.bashrc:

export PVM_DIR="$HOME/.pvm"
[ -s "$PVM_DIR/pvm.sh" ] && source "$PVM_DIR/pvm.sh"

Windows

Quick install (PowerShell):

irm https://raw.githubusercontent.com/nvndevio/pvm/main/install.ps1 | iex

Or via npm:

npm install -g pvm-php

Then add to your PowerShell profile ($PROFILE):

$env:PVM_DIR = "$env:USERPROFILE\.pvm"
. "$env:PVM_DIR\pvm.ps1"

Manual (all platforms)

git clone https://github.com/nvndevio/pvm.git ~/.pvm
cd ~/.pvm && npm install

Platform Differences

| | macOS / Linux | Windows | |---|---|---| | Install method | Build from source | Pre-built binaries from windows.php.net | | Install speed | 5-15 min (compiling) | ~30 sec (download only) | | Build tools required | Yes (gcc, make, etc.) | No | | Shell integration | bash / zsh / fish | PowerShell / CMD |

Build Requirements (macOS / Linux only)

Windows users can skip this — pvm downloads pre-built binaries automatically.

macOS (via Homebrew):

xcode-select --install
brew install openssl readline libzip icu4c oniguruma pkg-config autoconf bison re2c

Ubuntu/Debian:

sudo apt install build-essential libxml2-dev libssl-dev libcurl4-openssl-dev \
  libzip-dev libonig-dev libreadline-dev libsqlite3-dev pkg-config autoconf bison re2c

Run pvm doctor to check if your system is ready.

Usage

Install a PHP version

pvm install 8.3       # Install latest PHP 8.3.x
pvm install 8.2.25    # Install exact version

List installed versions

pvm list

#   8.1.27
#   8.2.25
# → 8.3.14 (active)

Switch PHP version

pvm use 8.2

Show current version

pvm current
# 8.3.14

Uninstall a version

pvm uninstall 8.1.27

See available versions

pvm available           # PHP 8.x versions
pvm available --major 7 # PHP 7.x versions

Check system dependencies

pvm doctor

Auto-switch per project

Create a .php-version file in your project root:

8.2

When you cd into the project, pvm automatically switches to the specified version.

How it works

~/.pvm/
├── versions/
│   ├── 8.1.27/
│   ├── 8.2.25/
│   └── 8.3.14/
├── current             # Symlink (Unix) or version file (Windows)
├── cache/              # Downloaded tarballs / zips
├── bin/pvm             # CLI binary
└── pvm.sh              # Shell integration
  • macOS/Linux: Downloads PHP source, compiles with common extensions, installs to ~/.pvm/versions/
  • Windows: Downloads pre-built NTS binary from windows.php.net, extracts to ~/.pvm/versions/
  • pvm use updates the active version and your shell PATH

Commands

| Command | Description | |---------|-------------| | pvm install <version> | Install a PHP version | | pvm use <version> | Switch to an installed version | | pvm list | List installed versions | | pvm current | Show active version | | pvm uninstall <version> | Remove a version | | pvm available | List versions available to install | | pvm doctor | Check system dependencies | | pvm env | Print shell integration code |

License

MIT