Releases: usepvm/pvm
Version 2.3
🚀 New Features
-
PHP INI Management
- Added commands to handle PHP .ini settings with status display, filtering, and enable/disable options.
- Added missing information to ini help section.
- Display PHP settings in pvm info with search functionality.
- Added option to disable setting when using set (enable is default).
-
Extension Management
- Added command to list available extensions.
- Added ability to install PHP extensions directly from source.
- Added support for installing Xdebug and other Zend extensions.
- Enhanced handling of extension installation fallbacks.
- Added searching for PHP extensions and versions.
- Added xdebug to extension source list.
- Added alpha/beta xdebug versions to the fetched list.
-
Caching & Testing
- Introduced caching helpers and unified usage across commands.
- Increased cache expiration to one week.
- Added test coverage for new ini and extension commands.
- Added color-coded output per test file.
- Added more robust mock handling in tests.
-
Commands & Info
- Added help command with action list.
- Added filtering and searching options to info command.
- Added more detailed examples to command usage and README.
🧩 Improvements
- Trimmed responses for cleaner output.
- Unified count checks and refactored use command.
- Improved user messages when installing versions.
- Fixed typos and enhanced readability across multiple commands.
- Improved validation and error handling (use -1 instead of 1 as error code).
- Fixed multiple small edge cases in .ini and extension management.
🧰 Maintenance
- Updated README with clearer examples and explanations.
- Fixed function naming and improved message clarity in Opcache configuration.
- Fixed test cases for improved reliability.
🔢 Summary
- New INI commands for configuration management
- Extension installation improvements, including Xdebug
- Search support for PHP versions and extensions
- Better caching, colorful test output, and refined documentation
Credits
Thank you to the following contributors: @faissaloux
Version 2.2
What's Changed
✨ New Features
- Display help for specific commands and improved help output.
- Added support for different variations of php.ini files.
🛠 Fixes & Improvements
- Prevent enabling/disabling the same extension twice.
- Better handling of legacy extension naming (e.g., php_xdebug.dll).
- Improved PowerShell compatibility (pwsh fallback to powershell).
- Cleaner logging and testing output.
🧪 Testing & CI
- Added coverage reporting options in CI.
- Added previous OS version checks for tests.
Version 2.1
✨ New Features
- Added
logcommand with pagination support - Added
infocommand to display environment and configuration details
🔧 Improvements
- Optimized log formatting and readability
- Tests now show detailed summaries and clearer results
- Automatically enable opcache on new PHP versions
- Prompt to install xdebug (or extensions) if missing in php.ini
🐞 Fixes
- Fixed backup issues and handling of symbolic links
- Better handling of edge cases in config management
- Minor bug fixes (typos, return codes, exception handling, etc.)
🛠 Maintenance
- Added GitHub Actions CI workflow for automated testing
- Added contributing guidelines & funding metadata
Credits
Thank you to the following contributors: @faissaloux
Version 2.0
✨ New & Improved
- Symbolic link switching — PHP version switching now uses symbolic links instead of modifying the environment path.
- Path optimization — Always optimizes system path during setup.
🛠️ Removals & Cleanups
- Removed set command.
- Removed custom installation directory option.
- Removed Chocolatey module importing.
🧪 Testing & Reliability
- Added comprehensive tests for pvm.ps1 and router.ps1.
- Improved and adapted existing tests to new logic.
Version 1.1
New Features & Enhancements
- Added auto command to automatically select PHP version from .php-version or composer.json.
- Added suggestions for installing other versions from the same PHP family if a requested version is unavailable.
- Introduced better messaging when multiple versions match a request.
Testing & Reliability
- Added dedicated tests for all major commands (install, setup, set, ini, helpers, list, use, uninstall, current, common).
- Improved test tooling.
Fixes & Maintenance
- Refactored environment variable handling and admin check logic.
- Fixed typos, improved descriptions in help commands.
- Cleaned alert messages and standardized output formatting.
Overall, v1.1 makes PVM more stable, developer-friendly, and easier to maintain.
Credits
Thank you to the following contributors: @faissaloux
Version 1.0
🚀 PHP Version Manager for Windows - v1.0
A CLI tool to easily manage multiple PHP versions, php.ini settings, and extensions directly from Windows PowerShell.
✨ Features
- View, install, uninstall, and switch between PHP versions.
- Auto-detect PHP version from .php-version or composer.json.
- Manage php.ini settings and extensions (enable, disable, set, get, restore).
- Supports Xdebug and OPcache installation flags.
- Optional custom installation directory.
- Built-in testing via Pester.