Composer Support
Plesk extensions can use Composer to install and manage dependencies. Detailed information on Composer is available at the web site: https://getcomposer.org/.
This section explains how to properly configure your extension in case it uses the Composer dependencies manager.
To illustrate the subject, the following sample project is provided by Plesk: https://github.com/plesk/ext-composer-example.
Setting Up
The basics of configuring your project to use Composer are described in section composer.json: Project Setup of the Composer documentation. The following configuration options are necessary to ensure integration with Plesk.
Sample composer.json file.
‘vendors’ directory location
It is recommended that the vendor/
directory be placed as follows:
"config": {
"vendor-dir": "src/plib/vendor"
},
Using Namespaces
By default, we require using Class Naming Conventions when developing extensions to ensure that they work correctly with Plesk. Using Composer allows to use namespaces instead of long names required by the Class Naming Convention.
Just make sure the used namespaces are correctly loaded in
composer.json
.
"autoload": {
"psr-0": {
"Composer_": [
"modules/composer-example/library/",
"src/plib/library/"
]
},
"psr-4": {
"PleskExt\\Composer\\": [
"modules/composer-example/library/Composer/",
"src/plib/library/Composer/"
]
}
},
More information about namespaces is available in the section Autoloading of the Composer documentation.
Packing the Extension
The process of packing the extension using Composer requires one additional step, compared to the usual process.
Installing Dependencies
First, all the required dependencies must be downloaded and installed. To do that, run the following command:
composer --no-dev install
Note: --no-dev
option is used to install only the libraries required
for the production version, all other dependencies and rules used for
development and testing purposes are omitted.
More information on installing dependencies is available in the section Installing Dependencies of the Composer documentation.
Creating the package
Once the dependencies are installed, you may proceed to create the extension ZIP archive.