![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/magento-composer-installer/ |
# Magento Composer Installer This is a fork of the [Magento Composer Installer](https://github.com/magento-hackathon/magento-composer-installer) repo that provides support for Magento 2 components (modules, themes, language packages, libraries and components). ## Usage In the component's `composer.json`, specify: * `type`, type of Magento 2 component. * `extra/map`, list of files to move and their paths relative to the Magento root directory. * `extra/chmod`, list of permissions that should be set for files. **Note**: * `extra/map` is required only if your component needs to be moved to a location other than `<Magento root>/vendor`. Otherwise, omit this section. * `extra/chmod` is required only if you need to set specific permissions for files. ## Supported Components The following list explains the use of `type` in `composer.json`. ### Magento Module `"type": "magento2-module"` Installation location: Default vendor directory or as defined in `extra/map` Example: ```json { "name": "magento/module-core", "description": "N/A", "require": { ... }, "type": "magento2-module", "extra": { "map": [ [ "*", "Magento/Core" ] ] } } ``` Final location is `<magento root>/app/code/Magento/Core` ### Magento Theme `"type": "magento2-theme"` Installation location: `app/design` Example: ```json { "name": "magento/theme-frontend-luma", "description": "N/A", "require": { ... }, "type": "magento2-theme", "extra": { "map": [ [ "*", "frontend/Magento/luma" ] ] } } ``` Final location is `<magento_root>/app/design/frontend/Magento/luma` ### Magento Language Package `"type": "magento2-language"` Installation location: `app/i18n` Example: ```json { "name": "magento/language-de_de", "description": "German (Germany) language", "require": { ... }, "type": "magento2-language", "extra": { "map": [ [ "*", "Magento/de_DE" ] ] } } ``` Final location is `<magento_root>/app/i18n/Magento/de_DE` ### Magento Library `"type": "magento2-library"` Support for libraries located in `lib/internal` instead of in the `vendor` directory. Example: ```json { "name": "magento/framework", "description": "N/A", "require": { ... }, "type": "magento2-library", "extra": { "map": [ [ "*", "Magento/Framework" ] ] } } ``` Final location is `<magento_root>/lib/internal/Magento/Framework` ### Magento Component `"type": "magento2-component"` Installation location: Magento root directory Example: ```json { "name": "magento/migration-tool", "description": "N/A", "require": { ... }, "type": "magento2-component", "extra": { "map": [ [ "*", "dev/tools/Magento/Tools/Migration" ] ] } } ``` Final location is `<magento_root>/dev/tools/Magento/Tools/Migration` ## Autoload After handling all Magento components, `<magento_root>/app/etc/vendor_path.php` specifies the path to your `vendor` directory. This information allows the Magento application to utilize the Composer autoloader for any libraries installed in the `vendor` directory. The path to `vendor` varies between particular installations and depends on the `magento_root` setting for the Magento Composer installer. That's why it should be generated for each installation. You must run `composer install` to install dependencies for a new application or `composer update` to update dependencies for an existing application. ## Deployment Strategy The Magneto Composer Installer uses the `copy` deployment strategy. It copies each file or directory from the `vendor` directory to its designated location based on the `extra/map` section in the component's `composer.json`. There are [other deployment strategies](https://github.com/magento/magento-composer-installer/blob/master/doc/Deploy.md) that could be used; however, we don't guarantee that any of them will work. ## Usage `extra/chmod` The following example shows how you can set specific permissions for files. Example: ```json { "name": "magento/module-sample", "description": "N/A", "require": { ... }, "type": "magento2-module", "extra": { "chmod": [ { "mask": "0755", "path": "bin/magento" }, { "mask": "0644", "path": "some_dir/file.jpg" } ] } } ``` `mask` is a bit mask for chmod command `path` is a path to file relative to the Magento root folder # Notes - The extra->magento-root-dir option is no longer supported. It displays only to preseve backward compatibility.