This project is a collection of samples to demonstrate technologies introduced in Magento 2. You will find the most simple extension along with samples that incrementally add features to lead you through a exploration and education of the Magento 2 platform.
The intent is to learn by example, following our best practices for developing a modular site using Magento 2.
Each sample is packaged and available individually at repo.magento.com
. For convenience and demonstration of our bundling of modules, we have included the sample-bundle-all composer metapackage. Including this dependency in your Magento project is the more convenient way to integrate the full set of examples. Refer to that sample for more detailed installation instructions.
To install any of these samples, you'll need to be sure that your root composer.json
file contains a reference to the repository that contains them. To do so, add the following to composer.json
:
"repositories": [
{
"type": "composer",
"url": "http://repo.magento.com/"
}
]
The above can also be added using the Composer command line with the command:
composer config repositories.magento composer http://repo.magento.com/
New in Magento 2 is the ability to register modules to install anywhere under the Magento root directory; typically, under the vendor
subdirectory.
All sample modules have a registration.php
in their root directory with contents similar to the following:
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magento_CommandExample',
__DIR__
);
The preceding example registers the Magento_CommandExample
component to install under Magento's vendor
directory. For more information about component registration, see the PHP Developer's Guide.
In addition, each module's composer.json
references registration.php
in its autoload
section as follows:
{
"name": "magento/sample-module-command",
"description": "Command example",
"type":"magento2-module",
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0"
},
"version": "1.0.0",
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
"Magento\\CommandExample\\": ""
}
}
}
Each module's composer.json
has a psr-4
section except for sample-module-theme
. Themes don't require it because they do not reference
Magento Core team