1- Create a namespace folder inside app/code directory
eg:- app/code/RB
2- Create a Module folder inside that namespace folder
eg:- app/code/RB/Vendor
3- Create a registration.php file
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'RB_Vendor',
__DIR__
);
eg:- app/code/RB/Vendor/registration.php and add the following contents
4- Create etc/module.xml file
eg:- app/code/RB/Vendor/etc/module.xml and add the following contents
<?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="RB_Vendor" setup_version="1.0.0">
</module>
</config>
5-Enable the module using the following command
php bin/magento module:enable RB_Vendor
(or)
6. To add the modules manually directly enter/write in the module in the below file
app/etc/config.php as
'RB_Vendor' => 1,
7. Check the module status using the command:
php bin/magento module:status
8. Execute SUDO chmod -R 777 . , php bin/magento setup:upgrade, php bin/magento setup:static-content:deploy -f in order
-----------------------------------------------------------------------------------------------
Create a Route
---------------------------------------------------------------------------------------------
1)
To add route, it is necessary to create routes.xml file
app/code/RB/Vendor/etc/frontend/routes.xml
2)Inside RB/Vendor/etc folder, there will be two folders
i) frontend
ii) adminhtml
since this is a frontend route, we added it in frontend/ folder else we need to add it to adminhtml/ folder
3)The content would be
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route frontName="rb_vendor" id="rb_vendor">
<module name="RB_Vendor"/>
</route>
</router>
</config>
4)
Route’s in magento are divided into 3 parts: Route frontname, controller and action as following example:
http://magento2.com/index.php/rb_vendor/controller/action
-----------------------------------------------------------------------------
Create Controller
----------------------------------------------------------------------------
1) In the folder
app/code/RB/Vendor/Controller/Index/Test.php
where 'Test'is the class name
<?php
namespace RB\Vendor\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}
http://magento2.com/index.php/rb_vendor/Index/Test