Download the PHP package rawdreeg/phpswitcher without Composer
On this page you can find all versions of the php package rawdreeg/phpswitcher. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rawdreeg/phpswitcher
More information about rawdreeg/phpswitcher
Files in rawdreeg/phpswitcher
Package phpswitcher
Short Description CLI tool to manage and switch between multiple PHP versions
License MIT
Homepage https://github.com/rawdreeg/phpswitcher
Informations about the package phpswitcher
PHP Switcher
A simple CLI tool to manage multiple PHP versions on macOS and Linux.
Features
- Install specific PHP versions (via Homebrew for macOS, or APT for Linux).
- Uninstall PHP versions you no longer need.
- Switch the active PHP version.
- List all installed PHP versions.
- Auto-detect required version from
.php-version,composer.json, or global default. - Global default version — set a fallback PHP version used when no project-level config is found.
- Automatic version switching when you change directories (supports
.php-version,composer.json, and global default). - Status command — see active PHP version, detection source, and path info at a glance.
- Extensions management — list or install PHP extensions for any version.
- Tab completion for Bash, Zsh, and Fish.
Prerequisites
- macOS: Requires Homebrew for installing and managing PHP versions.
- Linux (Debian/Ubuntu): Requires
aptand thesoftware-properties-commonpackage.sudois required for installing and switching versions.
Installation
Homebrew (macOS)
Composer
Install script (macOS & Linux)
After installing, restart your terminal and verify with:
Usage
List installed PHP versions:
Shows all available PHP versions and highlights the one that is currently active.
Install a PHP version:
If you are in a directory containing a composer.json file with a PHP requirement, you can omit the <version> argument to automatically detect and install the required X.Y version.
Uninstall a PHP version:
Remove a PHP version that is no longer needed. The currently active version cannot be uninstalled — switch to a different version first.
Switch active PHP version:
If you are in a directory containing a composer.json file with a PHP requirement (require.php or config.platform.php), you can omit the <version> argument, and phpswitcher will attempt to detect and use the appropriate X.Y version.
Set a global default PHP version:
Set a fallback version that's used when no .php-version file or composer.json is found in the directory tree:
Show status:
Display the current active PHP version, how it was detected, and path information:
Manage PHP extensions:
List installed extensions for a PHP version, or install new ones:
On Linux, extensions are installed via apt (e.g., php8.1-xdebug). On macOS, PECL is used.
Show Version:
Self-Update:
This will fetch and install the latest version of phpswitcher from GitHub.
Check active PHP version (after switching):
Automatic Version Switching
phpswitcher supports automatic version switching when you change directories. This is achieved by hooking into your shell's prompt.
How it Works
- When you
cdinto a new directory,phpswitcherlooks for a.php-versionfile in the current directory or any parent directory. - If no
.php-versionfile is found, it checks for acomposer.jsonin the current directory and reads the PHP version constraint. - If neither is found, it falls back to the global default version (if set via
phpswitcher default). - If a required version is detected and it differs from the currently active version,
phpswitcherautomatically switches to it.
Usage
To use this feature, simply create a file named .php-version in the root of your project and put the desired PHP version number in it.
Now, whenever you cd into this directory (or any subdirectory), phpswitcher will ensure that PHP 8.1 is activated automatically.
This feature is enabled by default during the installation process, which adds a sourcing line to your shell's profile file (.bashrc, .zshrc, or Fish config).
Fish Shell Support
Fish shell is fully supported. The installer automatically detects Fish and creates a config file at ~/.config/fish/conf.d/phpswitcher.fish. Auto-switching works via Fish's --on-variable PWD event.
Tab Completion
Tab completion for commands and PHP versions is enabled automatically during installation for Bash, Zsh, and Fish. Type phpswitcher followed by Tab to see available commands, or phpswitcher use followed by Tab to see installed PHP versions.
Development
- Clone the repository:
git clone https://github.com/rawdreeg/phpswitcher.git - Navigate into the project directory:
cd phpswitcher. -
The main script is
bin/phpswitcher. You can run it directly for testing: -
To create a release artifact, run the build script:
This will create a
phpswitcher.tar.gzin the root directory.
Contributing
Contributions are welcome! Please feel free to open issues or submit pull requests.
License
MIT License