Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
- Installing on Mac and Linux
- Discovering channels and packages with PEAR
- Coding with PEAR packages
- Starting a new application with Composer
- Installing and maintaining packages with Composer
- Finding and installing PECL extensions
Skill Level Intermediate
The PHP community provides several tools for managing extensions and packages. This can be a it confusing, as the correct way to approach them is not always self-evident. Let's take a look at what tools are available and when you would want to use each of them. But first, let's have a history lesson. The first tool to come out was PEAR and it's designed for systemwide packages. Anytime you install a package through PEAR, it's going to install it into a central location. This way you can use that package in any PHP script on your computer.
Using PEAR typically requires root or administrator privileges, many times you'll need to supply your password before using PEAR. In addition to installing packages, PEAR can also install commands that call those packages, these commands are available on the command line. After PEAR was released PECL came along. PECL is designed for compiled extensions to PHP. The PECL tool is based on the PEAR tool. When you compile a PECL extension, it creates a shared object.
This shared object is loaded into PHP at runtime. PECL is often used as a testbed for new core PHP functions. This way you're able to get new functions into the PHP run time without modifying PHP itself. Finally, the PHP community created Composer. Composer is used to list project dependencies. It's similar to NPM in node. And Bundler in Ruby. The Composer tool helps you list out dependencies and install them.
Composer can also be used to load local copies of PEAR packages. These local copies do not interfere with the centrally installed PEAR packages. So where are PEAR, PECL, and Composer today? There are some PHP projects that still depend on PEAR packages. When you go to install a PHP project that needs a PEAR package, it will tell you which one it needs, so you can go and install it. Many software bindings are available through PECL. There are projects such as Varnish and Memcache that use PECL extensions to communicate with PHP. Composer is the best choice for self contained projects. It leaves no traces and no one composer project interferes with another one that's on the same computer.
Knowing a bit about PHP's package and extension managers can help you pick the right tool quickly. Consider using Composer when your starting a new project or adding dependencies to an existing one. Otherwise, PEAR and PECL are available for the projects needing them.