LinuxCommandLibrary

composer

TLDR

Install dependencies

$ composer install
copy
Add package
$ composer require [vendor/package]
copy
Update packages
$ composer update
copy
Create project
$ composer create-project [laravel/laravel] [myapp]
copy
Show installed packages
$ composer show
copy
Remove package
$ composer remove [vendor/package]
copy

SYNOPSIS

composer command [options]

DESCRIPTION

composer is the dependency manager for PHP. It manages project dependencies, autoloading, and provides tools for package installation and version management through Packagist and other repositories.
The tool is essential for modern PHP development and used by virtually all PHP frameworks.

PARAMETERS

install

Install dependencies from composer.json
require package
Add package to dependencies
update [packages]
Update dependencies
remove package
Remove package
create-project package dir
Create new project
show [package]
Show packages
search query
Search packages
dump-autoload
Regenerate autoloader
self-update
Update Composer itself

COMPOSER.JSON

$ {
    "name": "vendor/project",
    "require": {
        "php": "^8.1",
        "monolog/monolog": "^3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^10.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}
copy

WORKFLOW

$ # Initialize new project
composer init

# Add dependency
composer require guzzlehttp/guzzle

# Add dev dependency
composer require --dev phpunit/phpunit

# Install all dependencies
composer install

# Update specific package
composer update monolog/monolog

# Update all
composer update

# Show why package is installed
composer why vendor/package

# Check for security issues
composer audit
copy

VERSION CONSTRAINTS

- ^1.2.3 - >=1.2.3 <2.0.0 (recommended)
- ~1.2.3 - >=1.2.3 <1.3.0
- 1.2.* - >=1.2.0 <1.3.0
- >=1.2.3 - 1.2.3 or higher
- dev-master - Latest from master branch

FEATURES

- Dependency resolution
- Autoloading (PSR-4, PSR-0, classmap)
- Scripts and hooks
- Platform requirements
- Private repositories
- Security auditing
- Lock file (composer.lock)

CAVEATS

First install can be slow. Memory-intensive for large projects. Network required for updates. composer.lock should be committed (for applications). Version conflicts can be frustrating. Some packages abandoned or poorly maintained.

HISTORY

Composer was created by Nils Adermann and Jordi Boggiano in 2011, inspired by npm and bundler, becoming PHP's standard dependency manager by 2013.

SEE ALSO

npm(1), pip(1), bundle(1)

Copied to clipboard