Easy methods to Set up and Use Composer, PHP’s Dependency Supervisor – CloudSavvy IT

Posted on

PHP Logo

Composer is the PHP neighborhood’s go-to dependency supervisor. It simplifies putting in, updating and utilizing third-party packages. Packages will be hosted by private and non-private repositories, with hottest initiatives publishing to Packagist.

Putting in Composer

Composer is a neighborhood effort which isn’t bundled with PHP. It’s distributed as a PHP PHAR archive from getcomposer.org. Some Linux distributions do embody Composer of their software program repositories however putting in on this means normally delivers an outdated model.

Be sure to’ve received PHP put in earlier than persevering with. PHP 5.3 is the oldest supported model on the time of writing. You’ll additionally want git and unzip in your system if you wish to set up packages from supply.

Composer offers an automatic setup script. Start by downloading the installer to your working listing:

curl https://getcomposer.org/installer -o composer-setup.php

You need to now confirm the installer’s hash to verify it’s not been tampered with. Consult with the Composer website to verify the most recent hash and procure pattern verification code.

Subsequent, use the setup script to put in Composer:

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

This can obtain Composer into /usr/native/bin, permitting it to sit down in your path alongside your different executables. Attempt operating composer in your shell to verify that’s all the pieces working. The Composer model ought to be displayed, adopted by an inventory of the out there Composer instructions.

Screenshot of Composer's help output

To replace Composer sooner or later, run composer self-update. This can robotically exchange your Composer binary with the most recent launch. You gained’t want to make use of the composer-setup.php script once more so you possibly can delete it now.

Making ready Your Mission

You’ll have to create a composer.json file in your venture’s working listing earlier than you can begin utilizing Composer. Run composer init to create one interactively. This can get you setup with a primary configuration.

Screenshot of the Composer init command

Observe the command line prompts to provide details about your venture, resembling its title, description and writer particulars. Package deal names use the vendor/package deal syntax to keep away from conflicts between authors in public repositories. You need to use your Packagist username because the vendor element.

Most keys in composer.json are elective except you plan to publish your codebase to Packagist. Yow will discover an entire description of the file’s construction on the Composer documentation website.

Putting in Packages

You’ll be able to add packages to your venture utilizing the composer require command:

composer require vendor/package deal

Seek for packages to put in utilizing the Packagist website. They’ll be added to the require part of your venture’s composer.json file. As soon as put in, the package deal’s supply goes into the vendor folder inside your venture.

Screenshot of a Composer.json file

Composer depends on semantic versioning to deal with package deal updates. The precise model of every package deal you’ve put in is written to composer.lock in your venture’s listing. This allows Composer to determine the particular package deal to put in when composer.json signifies a spread of variations is suitable.

You need to commit each composer.json and composer.lock to your supply management. Different builders working in your venture can then run composer set up to amass all of the dependencies you’ve outlined.

Packages resembling check runners will be marked as improvement dependencies by supplying the --dev flag to the require command. They’ll be separated right into a require-dev part inside composer.json. When putting in your packages, use composer set up --no-dev to exclude improvement dependencies. That is helpful when utilizing Composer inside deployment scripts and CI methods.

Updating Packages

You need to attempt to preserve your packages up to date so that you’re not lacking out on safety and bug fixes. Run the composer outdated command to see an inventory of dependencies in `composer.json` which have new variations out there.

To use the updates, run composer replace. This can respect semantic versioning and pull down the most recent model of every package deal, throughout the model constraints specified by your composer.json. A package deal marked as ^1.2 will replace to 1.2.x or 1.3.x however not 2.0. The Composer docs embody detailed info on how the device resolves completely different types of model constraint.

Updating a package deal will robotically rewrite your composer.lock file to specify the brand new model. Different builders working in your venture can rerun composer set up to acquire the precise packages you’re utilizing.

The Composer Autoloader

Autoloading is the popular mechanism to find supply recordsdata inside PHP. Composer has first-class assist for autoloading; more often than not, its autoloader would be the solely file that you must require_once() inside your venture.

As you put in dependencies, Composer will robotically write an autoloader to vendor/autoload.php. Packages specify how they need to be autoloaded utilizing the autoload subject in composer.json. You need to set this up on your personal venture so Composer can autoload its recordsdata too:

    "autoload": {
        "psr-4": {
            "ExampleProject": "src/"

The above snippet will configure your venture’s autoloading utilizing the PSR-4 standard. Codebase assets throughout the ExampleProject namespace will likely be mapped to recordsdata throughout the src listing – for instance, use ExampleProjectExampleClassesMyClass will robotically require_once("src/ExampleProject/ExampleClasses/MyClass.php").

The one file you’ll have to manually require_once() is the autoloader itself:

require_once(__DIR__ . "/vendor/autoload.php");

You need to add the road as early as potential in your software. This can guarantee autoloading is enabled earlier than you begin consuming lessons and interfaces inside your codebase.

Generally you would possibly have to power regeneration of the autoloader. This can usually be since you’ve up to date your venture’s autoload configuration. You’ll be able to run composer dump-autoload to jot down a brand new autoloader on-demand.


Composer simplifies PHP improvement by offering the dependency supervisor lacking from the core language. Utilizing Composer you possibly can simply incorporate third-party code into your initiatives, with out having to manually obtain supply recordsdata and preserve them updated.

Composer’s built-in autoloader permits you to entry put in packages with none further work in your half. The device additionally includes a script runner which lets you execute duties inside your codebase by including instructions to the scripts block in composer.json. Use composer run my-script to run the script.

Source link

Gravatar Image
I love to share everything with you

Leave a Reply

Your email address will not be published. Required fields are marked *