Composer#
Installation#
Composer All-in-One is a part of PHP Tools extension. Although it can be installed separatelly from the Composer extension page.
Composer.json Editor & IntelliSense#
The composer.json editor is extended with smart actions, code lenses, tooltips, and IntelliSense to autocomplete packages and versions from packagist.org.
Completion of Package Names#
Code completion searches packages and lists their names with detailed information including downloads, favorites, abandoned information, and description. There are also quick links to the package home page, package source code, and packagist page.

Completion of Package Versions#
Available minor versions are fetched from packagist listed in code completion after the required package name:

Tool-Tips#
Installed package details are displayed in the tooltips.

Code Actions#
Quickly update or remove package right from the editor, using the code actions:

Installed Version Inlay#
Actual installed version is displayed connveniently next to the package required version:

Run-Script CodeLens#
The "scripts" section of composer.json gets a small code-lens allowing to quickly run the corresponding script, right from the editor:

Diagnostics & Abandoned Packages#
The extension watches for installed packages and checks if any of them isn't abandoned. Abandoned packages are listed in VS Code's problems view, strikethrough, and the tooltip shows the corresponding abandoned message:

Commands#
Integrated commands work with the composer.json in the workspace root directory. If necessary, commands ask which workspace folder you're referring to. It allows quickly require, remove, or search for packages from packagist.org, and more.
The following commands are usually executed as a VSCode task, using php executable as configured in the Settings, and composer.phar downloaded automatically when necessary (so it is not necessary to install it by yourself).
composer: install#
Runs the install command.
composer: update#
Runs the update command.
composer: require#
The composer: require command shows quick-pick with online search, and installs the selected package. The search displayed all the important information including packages description, downloads, and favorites.

composer: require-dev#
Requires a dev package; this works the same as composer: require but the packageis installed as a development dependency.
composer: remove#
Removes installed package or more packages from the project. The command shows quick pick with multi-selection allowing to choose the packages to be removed:

composer: create-project ...#
Open an empty folder in VS Code, and create a new project from a composer package. The command shows quick-pick that searches online for available packages and invokes the create-project command for you:

composer: search ...#
Search packages on packagist.org. Quickly browse through packages, read descriptions, open details on packagist.org or require the package right from the quick pick menu.

composer: run-script ...#
Quickly run your composer script from command palette:

composer: check-platform-reqs#
composer: update the internal composer.phar#
The extension automatically downloads the latest composer installation, and uses it for all the tasks and commands. Run composer: update the internal composer to manually re-download the latest snapshot.
composer: about#
Shows the about information.
composer: archive ...#
Runs the archive command, and asks for arguments.
composer: clear-cache#
Clear the internal composer cache.
composer: fund#
Shows your required packages funding options.
composer: licenses#
Shows summary of your required packages licenses.
composer: outdated#
Shows list of outdated packages.
composer: reinstall#
Runs the reinstall command.
Tasks#
VS Code task that executes a composer command is a useful way of configuring and running composer. The composer.phar itself is automatically installed, and php executable is determined from Settings.
Example:
Schema Validation#
The extension provides schema validation for composer.json files, maintained by @composer.
- correctness validation.
- tooltips and code completion for
composer.jsonJSON elements.
Configuration#
If there's an existing installation of composer.phar under the following paths, it's used as it is:
/usr/bin/composer(Linux/OsX)/usr/local/bin/composer(Linux/OsX)${COMPOSER_HOME}/composer.phar.composer/composer.pharunder user's home (Linux, OsX)${APP_DATA}/Composer/composer.phar(Windows)
Otherwise, the extension automatically downloads composer.phar latest snapshot, uses it, and keeps it updated. The location respects the Composer default installation path which can be changed by setting the COMPOSER_HOME environment variable.
Additional Settings#
| Setting | Description |
|---|---|
php.executablePath | The value is used to determine php executable path for running composer commands. If not set, "php" is used by default.In case, there is PHP Tools extension installed, composer commands are executed using php set with PHP Version Picker. |
composer.workingPath | The relative path for the composer.json |
Related links#
- PHP Tools Installation
- Composer Extension (marketplace.visualstudio.com)
- Create PHP Project using Composer in VS Code
- Introducing Composer for VS Code