· 4 min read · updated
Simplifying PHP Version Management with SWTP
Transitioning between various PHP versions can often pose a significant challenge for developers, particularly when juggling multiple projects that necessitate distinct PHP environments. Nevertheless, the open-source tool SWTP endeavors to streamline this operation, making it considerably more manageable. In this article, we will explore the intricacies of SWTP, elucidate its functionality, and discuss why it serves as a revolutionary asset for PHP developers.

What is SWTP?#
SWTP, or “Switch PHP Version,” is a Bash utility designed to facilitate the switching of PHP versions on macOS systems. Developed by me, the utility is particularly useful for developers who need to test their applications on multiple PHP versions. The utility is tailored for systems where PHP versions are managed via Homebrew, a package manager for macOS. You can find the complete source code and documentation on its GitHub repository.
Prerequisites#
Before you can use SWTP, there are a couple of prerequisites:
- Homebrew must be installed on your macOS system. If you haven’t installed it yet, you can find the instructions here.
- Your system should have the Bash shell installed. However, the utility’s installation script supports various other shells like Bash, Zsh, Fish, Csh, Ksh, and Dash.
Installation#
It’s simply as possible
Since v1.4, installation has been simpler than ever. To install SWTP in a manner similar to Homebrew, you can use the following one-liner. This will download and execute the install.sh script, placing the swtp tool into $HOME/.swtp/bin/swtp.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kisztof/swtp/latest/install.sh)"Usage#
Once installed, switching PHP versions is as simple as running a single command:
swtp 8.0 # Switches to PHP 8.0
swtp 8.2 # Switches to PHP 8.2If you find that the PHP version you need isn’t already installed on your system, don’t worry — SWTP has got you covered. The tool will proactively try to install the required version for you, leveraging the capabilities of Homebrew to do so.
However, the utility goes beyond mere command-line arguments; if you run swtp without specifying a version, the script will intelligently scan for all installed PHP versions on your system and present you with a list, prompting you to select one to switch to. This adds another layer of user-friendly interactivity. Furthermore, if you discover that the PHP version you require is absent from your system, there's no cause for concern.
Currently linked PHP version: 8.2
Available PHP versions:
* [1] 7.4.33_4
* [2] 8.0.30
* [3] 8.1.22
* [4] 8.2.9
Please choose a PHP version to switch to (enter the number):For a comprehensive walkthrough on how to make the most out of SWTP, you can head over to the ‘Usage’ section on its GitHub page for all the nitty-gritty details.
Auto Update Feature#
The inclusion of an auto-update feature in SWTP further elevates its utility, imbuing it with a dynamic capability to remain current. Each time you invoke the swtp script, it inherently queries for the latest available version. Should a newer iteration be discovered, the script will prompt you with an option to proceed with the update, ensuring you're always harnessing the most advanced functionalities. For those who prefer a more proactive approach, manual updates can be easily initiated by executing the swtp --update command, offering users an additional layer of control and customization over their development environment.
Why SWTP is a Game-Changer#
Simplified Version Management#
Managing multiple PHP versions becomes a breeze with SWTP. You no longer have to manually unlink and link PHP versions using Homebrew; SWTP does it all for you.
User-Friendly#
The utility is designed to be as user-friendly as possible. It provides a clear help message and even prompts you to choose a version if you don’t specify one.
Extensibility#
The utility is open-source and hosted on GitHub, making it easy for other developers to contribute and extend its functionality.
Conclusion#
SWTP is an invaluable tool for PHP developers who need to switch between different PHP versions frequently. Its ease of use and the convenience it offers make it a must-have utility for your development toolkit. If you’re interested in contributing to the project or want to learn more, head over to the SWTP GitHub repository.
Happy coding!
$ related posts
15 min readNEW
The Read Side Does Not Go Through the Aggregate
CQRS read models in Symfony 8: a read port the domain does not own, a query bus that returns a value, and when a projection table earns its place. Part 3.
DDD, CQRS and Hexagonal Architecture in Symfony 8 · part 3#cqrs#ddd#hexagonal-architecture#symfony#php#postgresql#doctrine18 min readNEW
The Application Layer, the Transaction, and a Working API
Application layer in Symfony 8: use cases on a Messenger command bus, the transaction boundary in config, optimistic locking and RFC 9457 errors. Part 2.
DDD, CQRS and Hexagonal Architecture in Symfony 8 · part 2#ddd#hexagonal-architecture#symfony#php#cqrs#messenger#software-architecture15 min readNEW
The Domain Model, and the Only Rule That Matters
DDD domain model in PHP 8.5 and Symfony 8: keep the container out of the domain, and choose Doctrine ORM or DBAL with the costs on the table. Series part 1.
DDD, CQRS and Hexagonal Architecture in Symfony 8 · part 1#ddd#hexagonal-architecture#symfony#php#doctrine#software-architecture