layout | group | subgroup | title | menu_title | menu_order | github_link | redirect_from | ||
---|---|---|---|---|---|---|---|---|---|
default |
extension-dev-guide |
03_Build |
Register your component |
Register your component |
4 |
extension-dev-guide/build/component-registration.md |
|
##{{page.menu_title}}
- Registration overview
- Register modules
- Register themes
- Register language packages
- Invoke
registration.php
incomposer.json
with autoload - Sample
registration.php
file
Magento components, including modules, themes, and language packages, must be registered in the Magento system through the Magento ComponentRegistrar
class.
Each component must have a file called registration.php
in its root directory. For example, here is the registration.php
file for Magento's [AdminNotification module]({{ site.mage2000url }}app/code/Magento/AdminNotification/registration.php). Depending on the type of component, registration is performed through registration.php
by adding to it as follows:
Register modules with:
ComponentRegistrar::register(ComponentRegistrar::MODULE, '<VendorName_ModuleName>', __DIR__);
where <VendorName> is the name of the company providing the module and <ModuleName> is the name of the module.
###Example use \Magento\Framework\Component\ComponentRegistrar; ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_AdminNotification', DIR);
##Register themes {#register-themes} Register themes with:
ComponentRegistrar::register(ComponentRegistrar::THEME, '<area>/<vendor>/<theme name>', __DIR__);
where <area> is the functional area of the module (frontend, controller, and so on.), <vendor> is the name of the company providing the theme, and <theme name> is the name of the theme.
###Example ComponentRegistrar::register(ComponentRegistrar::THEME, 'frontend/Magento/luma', DIR);
##Register language packages {#register-lagpacks} Register language packages with:
ComponentRegistrar::register(ComponentRegistrar::LANGUAGE, '<VendorName>_<packageName>', __DIR__);
where <VendorName> is the name of the company providing the package and <packageName> is the name of the package.
###Example ComponentRegistrar::register(ComponentRegistrar::LANGUAGE, 'magento_de_de', DIR);
##Invoke registration.php
in composer.json
with autoload {#register-autoload}
After you create your registration.php
file and you are creating [your component's composer.json file]({{ site.gdeurl }}extension-dev-guide/build/composer-integration.html), invoke your registration.php
file in the autoload
section of composer.json
:
{
"name": "Acme-vendor/bar-component",
"autoload": {
"psr-4": { "AcmeVendor\\BarComponent\\": "" },
"files": [ "registration.php" ]
}
}
##Sample registration.php
file {#register-sample}
{% highlight php startinline=true %}
{%endhighlight %}
####Next [URN schema validation]({{ site.gdeurl }}extension-dev-guide/build/XSD-XML-validation.html)