There’s been a noticeable wave of popular PHP projects recently announcing that they will no longer support PEAR as an installation method. Because the AWS SDK for PHP provides a PEAR channel, we’ve been very interested in the discussion in the community on PEAR channel support.
PEAR has been one of the many ways to install the AWS SDK for PHP since 2010. While it’s served us well, better alternatives for installing PHP packages are now available (i.e., Composer) and literally all of the PEAR dependencies of the AWS SDK for PHP are no longer providing updates to their PEAR channels.
Symfony and Pirum
Fabien Potencier recently blogged about the "Rise of Composer and the fall of PEAR", stating that he would soon no longer update the PEAR channels for the packages he maintains (e.g., Symfony, Twig, Swiftmailer, etc.):
I've been using PEAR as a package manager since my first PHP project back in 2004. I even wrote a popular PEAR channel server, Pirum (http://pirum.sensiolabs.org/). But today, it's time for me to move on and announce my plan about the PEAR channels I'm managing.
One of the projects that we rely on to build the PEAR channel for the AWS SDK for PHP is Pirum, and it has made building a PEAR channel slightly less cumbersome. That said, we’ve had to make small modifications to Pirum over the years to suit our needs. With the announcement that Pirum is no longer maintained, we now have much less confidence in relying on it as a tool used to power one of our installation methods.
One of the Symfony project’s Fabien published to a PEAR channel was the Symfony EventDispatcher. The AWS SDK for PHP has a PEAR dependency on the EventDispatcher PEAR channel. Because the channel is no longer updated, users of the SDK via PEAR will not receive any bugfix updates to the EventDispatcher.
PHPUnit, the most popular unit testing framework for PHP applications, recently stopped updating their PEAR channels:
We are taking the next step in retiring the PEAR installation method with today's release of PHPUnit 3.7.35 and PHPUnit 4.0.17. These two releases are the last versions of PHPUnit released as PEAR packages. Installing them using the PEAR Installer will trigger a deprecation message on every execution of the commandline test runner.
PHPUnit is the testing framework used to test the AWS SDK for PHP.
Guzzle, another dependency of the AWS SDK for PHP’s PEAR channel, is no longer providing updates to their PEAR channel since the 3.9.0 release.
AWS SDK for PHP PEAR Channel
With all of these contributing factors, we will no longer be providing updates to the AWS SDK for PHP PEAR channel starting on Monday, September 15th, 2014. Our PEAR channel will still be available to download older versions of the SDK, but it will not receive any further updates after this date.
If you are currently using the PEAR channel to install the SDK or build downstream packages (e.g., RPMs), please begin to update your installation mechanism to one of the following alternatives:
- Composer (the recommended method).
- Our zip package that contains all of the dependencies and autoloader. Available at https://github.com/aws/aws-sdk-php/releases/latest.
- Our phar file that contains all of the dependencies and sets up an autoloader. Available at https://github.com/aws/aws-sdk-php/releases/latest.
To stay up to date with important fixes and updates, we strongly recommend migrating to one of the installation methods listed above.
More instructions on installing the AWS SDK for PHP can be found in the user guide.