magento2插件开发(1):magento2 Hello World

这一章节我们主要讲述magento2 Hello World 模块的创建。
magento2的插件即module都放在 app/code 下面,magento1中的local/ community/ core/ 已经移除了,现在我们开始创建我们的Hello World。
第一步:
创建以下目录到你的magento2根目录下:
app/code/Jike/Hello
第二步:
创建app/code/Jike/Hello/etc/module.xml
内容如下:





复制代码

第三步:
创建 app/code/Jike/Hello/registration.php
内容如下:
  1. \Magento\Framework\Component\ComponentRegistrar::register(
  2.     \Magento\Framework\Component\ComponentRegistrar::MODULE,
  3.     'Jike_Hello',
  4.     __DIR__
  5. );

复制代码

第四步:

在你的magento2根目录下执行以下命令:php bin/magento module:status,这个命令是显示所有的模块的状态,正常情况下在未激活列表将显示我们新建的模块,如下图:
magento2插件开发(1):magento2 Hello World_第1张图片
然后执行以下命令 激活我们新建的模块:php bin/magento module:enable Jike_Hello。
这个时候你去看下:app/etc/config.php,将看到我们的模块已经激活了,这个文件管理所有的模块的激活,当然你也可以手动增加一行,激活模块,不用我们之前的命令。
app/etc/config.php
magento2插件开发(1):magento2 Hello World_第2张图片
然后你就可以去前台看下我们成果啦,打开前台你会发现有一个报错信息:
magento2插件开发(1):magento2 Hello World_第3张图片
不用担心,只要执行:php bin/magento setup:upgrade 更新一下就好了。
这个时候一个新的模块就创建好了,你可以在后台 System Configuration -> Advanced -> Disable Modules Output 看到你新建的模块。

接下来我们创建一个控制器,让他显示 Hello 09jike!;
首先我们配置一个路由,和magento1路由在config.xml里面配置不一样,magento2的路由配置是一个独立的routes.xml,让我们新建以下文件:
Jike/Hello/etc/frontend/routes.xml
内容如下:


  1.    
  2.         
  3.             
  4.         
  5.    
  6.   

复制代码
注意route id 和 frontName 尽量保持一致,这个也是我们的路由的名字 显示的效果应该是 web.magento2.com/jike/hello/world
接着我们创建controller和action:
Jike/Hello/Controller/Hello/World.php
内容如下:
  1. namespace Jike\Hello\Controller\Hello;


  2. class World extends \Magento\Framework\App\Action\Action
  3. {
  4.     public function __construct(
  5.         \Magento\Framework\App\Action\Context $context)
  6.     {
  7.         return parent::__construct($context);
  8.     }
  9.      
  10.     public function execute()
  11.     {
  12.         echo 'Hello 09jike!';
  13.         exit;
  14.     }
  15. }

复制代码

如果没有出错的话 将会如下图的一个结果:
magento2插件开发(1):magento2 Hello World_第4张图片
下一节将讲述用layout和phtml显示“Hello 09jike!”。

你可能感兴趣的:(magento2插件开发(1):magento2 Hello World)