Awesome Open Source
Awesome Open Source

🔀 switch-php

Easily switch between PHP versions on your Mac. Requires Homebrew and works with Laravel Valet.

switch-php screencast

⬇️️️ Installation:

Installing switch-php is as easy as running:

npm install --global switch-php

If you use Yarn, you can do this:

yarn global add switch-php

Alternatively you can move the file from this repo into your home directory and add this line in your .bashrc/.zshrc/etc.:

source ~/

⚙ Usage:

You must have PHP installed via Homebrew in order for switch-php to work. switch-php also works really well with Laravel Valet, but Valet is not a requirement in order to use switch-php.

Here's an example of how you would use switch-php:

$ switch-php 7.1 -v -m 512M
  1. switch-php -> The main command. (Required)
  2. 7.1 -> Specify the version of PHP you want to switch too, in this case php71. (Required)
  3. -v -> Request verbose output (Optional)
  4. -m 512M -> Request a custom PHP memory setting. If you don't pass an additional arugment, the memory will be reset to the Valet default. (Optional)

Here's the full list of versions/options:

  version [options] [arguments]

  -h, --help      Display the help message
  -v, --verbose   Display more info during the process
  -m, --memory    Customize the PHP memory setting (Valet only)

Available Versions:
  5.6              Switch to [email protected]
  7.0              Switch to [email protected]
  7.1              Switch to [email protected]
  7.2              Switch to [email protected]
  7.3              Switch to [email protected]
  7.4              Switch to [email protected]

ğŸŽ› Customizing the PHP Memory Settings:

  • If you don't pass an argument to -m or --memory, it will reset any previously set custom memory settings to the default Valet config.
  • Alternatively, you can pass an argument to -m or --memory if you want to override the default Valet memory settings. For example, you can do:
switch-php 7.1 -m 512M       # [email protected] with 512MB of memory
switch-php 7.3 -m 2G -v      # [email protected] with 2GB of memory; verbose output
switch-php 5.6 --memory=1G   # [email protected] with 1GB of memory
  • Note: customizing PHP memory settings currently only works for Laravel Valet users. If you don't use Valet, we hope to get this working for you as well in an upcoming release.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
php (16,544) 
shell (10,301) 
cli (1,771) 
terminal (720) 
php7 (260) 
shell-script (103) 
shell-scripts (35) 
php71 (21) 
php72 (18) 
php5 (15)