Introduction

PHP Composer is an application that tracks dependencies for a project. It does not replace system package managers like apt or yum.

Composer allows you to specify a set of libraries for a specific project then identifies the versions and dependencies and installs them.

This guide will show you how to install and get started with PHP Composer in Ubuntu 18.04.

tutorial on installing and using php composer on ubuntu

Prerequisites

Steps For Installing PHP Composer on Ubuntu

Step 1: Update Local Repository

Start by updating the local repository lists by enter the following in a command line:

sudo apt-get update

Step 2: Download the Composer Installer

To download the Composer installer, use the command:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Step 3: Verify Integrity of the Download

1. Visit the Composer Public Keys page. Copy the Installer Signature (SHA-384).

2. Set the code shell variable:

COMPOSER=48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5

3. Run the script below to compare the official hash against the one you downloaded:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$COMPOSER) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

The script will either tell you the download is verified, or that it has been corrupted. If it’s corrupted, re-download the file.

Step 4: Install PHP Composer

1. Installing PHP Composer requires curl, unzip, and a few other utilities. Install them by entering the following:

sudo apt-get install curl php-cli php-mbstring git unzip

install supporting software for composer

Install Composer as a command accessible from the whole system.

2. To install to /usr/local/bin. enter:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

The installer should output:

All settings correct for using Composer
Downloading...

Composer (version 1.6.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

3. Once the installer finishes, verify the installation:

composer ––version

The system should output the version number installed, for example:

Composer version 1.8.6 2019-6-11 15:03:05

4. To remove the installer:

php –r “unlink(‘composer-setup.php’);”

Basic Composer Usage

Composer is designed to track dependencies on a per-project basis. This makes it easier for other users to create the same environment. Composer uses a composer.json file to keep track of required software and allowed versions.

It also uses a composer.lock file to maintain consistency if someone copies the directory. These files are automatically generated using the require command.

1. Open a terminal, and enter the following:

mkdir c_sample
cd c_sample

2. Next, you’ll need to choose a package to load. The website packagist.org has a broad range of different PHP packages for download. In this example, let’s use the monolog/monolog package. You can follow the instructions, or search the website for monolog.

3. In the terminal window, enter:

composer require monolog/monolog

The system will download the software and create the composer.json and composer.lock files.


Note: Monolog is a package for managing logfiles. The name before the slash is the vendor, and the name after the slash is the package name.


4. Once the process completes, list the contents of the directory:

ls -l

You should see the composer.json and composer.lock files, along with a vendor directory.

5. To view the contents of the composer.json file:

cat composer.json

The system will show you that it has added the monolog software. The carat ^ sign beside the version number indicates the minimum version of the software.

Setting Up Autoloading

PHP doesn’t automatically load classes. However, you can configure Composer to autoload classes for you. This makes working with dependencies much easier.

1. Create a new file using your favorite text editor:

sudo nano composer_sample.php

2. Enter the following into the file:

<?php

require __DIR__ . '/vendor/autoload.php';

use Monolog\Logger;

use Monolog\Handler\StreamHandler;

 

// create a log channel

$log = new Logger('name');

$log->pushHandler(new StreamHandler('/~/c_sample/text.log', Logger::WARNING));

 

// add records to the log

$log->warning('Foo');

$log->error('Bar');

example of autoloading classes

3. Write the file (Ctrl+O), and exit (Ctrl+X).

4. Now you can run the command to autoload monolog:

php composer_sample.php

Updating Dependencies

To update all the dependencies in your composer.json file enter the command:

composer update

This will update all dependencies according to the version specified in the file.

To update one (or more) dependencies individually:

composer update vendor/package vendor_b/package_b

Conclusion

Now you have a good understanding of how to install and start using PHP Composer. We also covered setting up autoloading and updating dependencies.