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.json
JSON 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.phar
under 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