php-version

stupid simple PHP version management

Github stars Tracking Chart

simple PHP version switching

php-version exposes a php-version command allowing developers to switch between versions of PHP.

This IS for you if

  • You are not satisifed with heavy handed *AMP or PPA-based installers.
  • You use multiple versions of PHP on Linux or Mac.
  • You download pre-compiled PHP binaries for Windows (NOTE: this is a bash script so you'll need WSL).
  • You want to run your automated tests against multiple PHP versions.
  • You are a developer that works on a variety of PHP projects each requiring different versions of PHP.
  • You want to work on the latest PHP, but expect to support prior work that was done on older PHP versions.

This is NOT for you if

  • You are content with heavy handed *AMP installers.
  • You are provisioning a production server so you only need a single PHP install.
  • You NEVER work on more than one PHP project at a time.
  • You don't plan on supporting prior work that was done on other PHP versions.

Rationale

php-version attempts to stick to the classic UNIX notion that tools should do one thing well.

While there are smart alternative
tools that attempt to solve
this problem, none of the tools I've found were simple enough for me.

Features

  • Homebrew installed PHP versions are picked up automatically.
  • PHP versions installed into ~/.phps are picked up automatically.
  • PHP versions listed in the $PHP_VERSIONS shell variable are picked up automatically.
  • snap versioning: Use a partial version number (i.e. php-version 5) to automatically use the latest 5.x version.
  • per version php.ini: we export PHPRC if a version-specific php.ini exists.
  • configurable: php-version --help for details.
  • bash, zsh, and fish shells actively supported; though care has been taken such that other shells are likely to work as well.
  • tiny: less than 200 LOC; a single function sourced via your shell's initialization file.

Non-Features

  • no shims, sub-shells, symlinks or cd hooks.
  • we won't leave files and symlinks all over the place.
  • does not attempt to manage Apache, MySQL, etc.
  • does not attempt to compile, build, or install PHP.
  • does not attempt to support OS package manager installed (i.e. ppa, etc.) PHP versions.

Usage Examples

Switch to a specific PHP version

% php-version <version>

List installed and active (*) PHP version(s)

% php-version
  5.3.9
  5.3.10
  5.4.0RC8
  5.4.0RC6
  5.4.0
* 5.4.8

Install

homebrew (recommended for OSX users)

% brew tap wilmoore/formulae
% brew install php-version

cURL (for non-OSX users or those that prefer not to use homebrew):

% mkdir -p $HOME/local/php-version # or your place of choice
% cd !$
% curl -# -L https://github.com/wilmoore/php-version/tarball/master, tar -xz --strip 1

Alternative (i.e. non-Homebrew) installation methods are documented on the wiki.

Setup

Add one of the following to your shell's initialization file:

# Homebrew (recommended)
source $(brew --prefix php-version)/php-version.sh
php-version 5

# non-Homebrew
source $HOME/local/php-version/php-version.sh # or your place of choice
php-version 5

Type php-version --help for more configuration options such as how to add extra PHP installation paths or php-config --version to find out which php version is active.

If you have PHP versions in multiple directories, you can list them in the environment variable PHP_VERSIONS separated by spaces as depicted below:

export PHP_VERSIONS="$HOME/local/php $HOME/php/versions"

NOTE: do this before you source php-version.sh:

Deactivate / Uninstall

  1. Remove setup configuration.

  2. Enter one of the following commands listed below to remove associated files.

     # Homebrew (recommended)
     % brew remove --force php-version
    
     # non-Homebrew
     % rm -rf $HOME/local/php-version
    

Having Issues?

  1. Copy the bug report output to your clipboard (pbcopy works on Mac OSX; use your OS equivalent)

     % cd /tmp
     % git clone https://github.com/wilmoore/php-version.git
     % source php-version/bug-report.sh, pbcopy
    
  2. File an issue.

More Info

Contributors

https://github.com/wilmoore/php-version/graphs/contributors

Alternatives

Inspiration

LICENSE

MIT

Main metrics

Overview
Name With Ownerwilmoore/php-version
Primary LanguageShell
Program languageShell (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2012-01-30 06:29:10
Pushed At2020-11-13 05:32:31
Last Commit At2019-03-11 09:29:04
Release Count15
Last Release Name0.13.0 (Posted on )
First Release Name0.9.0 (Posted on )
用户参与
Stargazers Count676
Watchers Count20
Fork Count50
Commits Count187
Has Issues Enabled
Issues Count41
Issue Open Count2
Pull Requests Count28
Pull Requests Open Count2
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private