With the advent of composer and packagist, there has been an increase in the amount of people creating generic, framework independent libraries for use in almost all PHP projects.
This has resulted in the widespread availability of packages for many of the common problems a developer many face.
A large increase in packages, whilst generally a good thing, has resulted in a lot of sub-par and inactively maintained packages being created. To help solve this problem, groups of community members have banded together to help create and maintain libraries under one vendor prefix, helping to increase quality, standards and the lifespan of a library.
In no particular order, here are some component vendors that are worth keeping in mind when choosing what package to choose to help solve your next problem.
Headed by Paul M. Jones, a well respected member of the PHP community, the Aura project aims for high quality, well-tested and independent components which can be used in any PHP project. Whilst previous versions of the aura project focused on libraries having no dependencies at all, the latest and upcoming version of the project, version 3, allows for projects to depend on interfaces such as the PSR-7 interfaces.
The Aura components are a good choice for anybody who needs components for a small project, but doesn’t necessarily want to deal with large dependency chains, a problem commonly found in other vendor's components.
The PHP League
Photo: The PHP League
Possibly one of the most talked about and controversial component vendors on our list, the League are responsible for some of the most popular and most useful packages used by the PHP community. Some of these include Omnipay and Flysystem which we use here at Made By Magnitude.
The PHP League has fewer generic packages like dependency injection and routing, and instead focuses more on things like image manipulation and file uploads.
Possibly the most well-known component vendor, the Symfony team have a track record for producing secure, flexible and battle-tested components. As well as being part of the Symfony full-stack framework, there are many large projects and companies utilising these components for everything from routing to internationalisation.
These components have a track record for being stable, well-tested and carry with them a low risk of backwards compatibility breaks between minor and even major revisions.
Main Website: http://symfony.com/
Components Website: http://symfony.com/components
If you wanted to use a Zend Component in previous versions of the Zend Framework, you were in for a tedious and painful process. Doing so required downloading the whole Zend Framework and then manually extracting the components you wished to use, all of their dependencies and then manually include them into your project.
As of version 3, the Zend Framework team has extracted each component into its own separate git repository, making it easy to utilise any components that you wish to use through a simple composer require.