Magento 2 Training : Unit 2 – Lesson A

Files creation

Go on file folder “app/code”, you will see a “Magento” folder. You mustn’t modifiy the content inside. All the magento core module are here, and only Magento can update its. In this “app/code” folder, let’s create a new “namespace” (I will name it “Maxime” on this example).

On this “namespace”, we will add our “modules”. The goal of this lesson is to create a new one. Create a “Helloworld” folder inside the “Maxime” folder.

In order to give Magento all our module instruction, we need to communicate it some informations. Create an “etc” folder, and create the following file :

app/code/Maxime/Helloworld/etc/module.xml

Put this XML inside :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Maxime_Helloworld" setup_version="1.0.0.0" active="true" />
</config>

The “module” tag contains :
– The module name (name)
– The module version (setup_version)

Module registration

Create a “registration.php” file on the root folder of your module with this content :

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Maxime_Helloworld',
    __DIR__
);

Module Activation

If you open the app/etc/config.php file, you will not see your module :

<?php
return array (
  'modules' => 
  array (
    'Magento_Store' => 1,
    'Magento_AdvancedPricingImportExport' => 1,
    'Magento_Directory' => 1,
    'Magento_Theme' => 1,
    'Magento_Backend' => 1,
    'Magento_Backup' => 1,
    'Magento_Eav' => 1,
    'Magento_Customer' => 1,
    'Magento_BundleImportExport' => 1,
    'Magento_CacheInvalidate' => 1,
    'Magento_Indexer' => 1,
    'Magento_Cms' => 1,
    'Magento_CatalogImportExport' => 1,
    'Magento_Catalog' => 1,
    'Magento_Rule' => 1,
    'Magento_Search' => 1,
    'Magento_CatalogUrlRewrite' => 1,
    'Magento_Widget' => 1,
    'Magento_Payment' => 1,
    'Magento_CheckoutAgreements' => 1,
    'Magento_Quote' => 1,
    'Magento_CmsUrlRewrite' => 1,
    'Magento_Config' => 1,
    'Magento_ConfigurableImportExport' => 1,
    'Magento_Msrp' => 1,
    'Magento_Contact' => 1,
    'Magento_Cookie' => 1,
    'Magento_Cron' => 1,
    'Magento_CurrencySymbol' => 1,
    'Magento_Bundle' => 1,
    'Magento_CustomerImportExport' => 1,
    'Magento_DesignEditor' => 1,
    'Magento_Developer' => 1,
    'Magento_Dhl' => 1,
    'Magento_Authorization' => 1,
    'Magento_Downloadable' => 1,
    'Magento_SalesSequence' => 1,
    'Magento_Email' => 1,
    'Magento_Fedex' => 1,
    'Magento_Sales' => 1,
    'Magento_CatalogInventory' => 1,
    'Magento_GoogleAnalytics' => 1,
    'Magento_GoogleOptimizer' => 1,
    'Magento_GroupedImportExport' => 1,
    'Magento_GroupedProduct' => 1,
    'Magento_ImportExport' => 1,
    'Magento_Checkout' => 1,
    'Magento_User' => 1,
    'Magento_LayeredNavigation' => 1,
    'Magento_Log' => 1,
    'Magento_MediaStorage' => 1,
    'Magento_ConfigurableProduct' => 1,
    'Magento_Multishipping' => 1,
    'Magento_Newsletter' => 1,
    'Magento_OfflinePayments' => 1,
    'Magento_SalesRule' => 1,
    'Magento_PageCache' => 1,
    'Magento_Authorizenet' => 1,
    'Magento_Paypal' => 1,
    'Magento_Persistent' => 1,
    'Magento_ProductAlert' => 1,
    'Magento_Braintree' => 1,
    'Magento_Reports' => 1,
    'Magento_RequireJs' => 1,
    'Magento_Review' => 1,
    'Magento_Rss' => 1,
    'Magento_CatalogRule' => 1,
    'Magento_GoogleAdwords' => 1,
    'Magento_OfflineShipping' => 1,
    'Magento_GiftMessage' => 1,
    'Magento_SampleData' => 1,
    'Magento_CatalogSearch' => 1,
    'Magento_SendFriend' => 1,
    'Magento_Shipping' => 1,
    'Magento_Sitemap' => 1,
    'Magento_AdminNotification' => 1,
    'Magento_Tax' => 1,
    'Magento_TaxImportExport' => 1,
    'Magento_Captcha' => 1,
    'Magento_Translation' => 1,
    'Magento_Ui' => 1,
    'Magento_Ups' => 1,
    'Magento_UrlRewrite' => 1,
    'Magento_Integration' => 1,
    'Magento_Usps' => 1,
    'Magento_Variable' => 1,
    'Magento_Version' => 1,
    'Magento_Webapi' => 1,
    'Magento_Weee' => 1,
    'Magento_CatalogWidget' => 1,
    'Magento_Wishlist' => 1,
  ),
);

To finish, launch this command on your Magento root folder :

./bin/magento setup:upgrade

Your module is now visible on the config.php file

Else, you will have this error :
Please upgrade your database: Run "bin/magento setup:upgrade" from the Magento root directory.
Your first module is declared and enabled. Next lesson, we will create a controller in order to call our module by a store URL.

Continue training
Return to previous lesson
Declare a new Magento 2 module
Tagged on:     

Leave a Reply

Your email address will not be published. Required fields are marked *

We use cookies to ensure that we give you the best experience on our website.
Ok