Magento2でページを作成する


今回は任意のURLでページを表示させるようエクステンションを改修していきます。

ファイル準備

今回は以下の2ファイルを作成します。

  • magento/app/code/Vendor/News/etc/frontend/routes.xml
  • magento/app/code/Vendor/News/Controller/News/Index.php

作成後のディレクトリ構成は以下です。

magento/
   └ app/
      └ code/
         └ Vendor/
            └ News/
               ├ Controller/
               │  └ News/
               │     └ Index.php
               ├ etc/
               │  └ frontend/
               │     └ routes.xml
               │  └ module.xml
               └ registration.php

ファイル作成

このファイルでエクステンションにURLを割り当てます。standardはフロントエンドを指し、frontNameにURLを指定します。

routes.xml
<?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 id="vendor" frontName="vendor">
            <module name="Vendor_News"/>
        </route>
    </router>
</config>

コントローラーを記述します。以下はdev.magento.com/vendor/news/indexにアクセスした時excute()が実行されます。

Index.php
<?php

namespace Vendor\News\Controller\News;

use Magento\Framework\App\Action\Action;

class Index extends Action
{
    public function execute()
    {
        echo 'ニュース一覧';
    }
}

ページの表示

それでは確認します。

$ php bin/magento setup:upgrade

このURLにアクセスしてページが表示され「ニュース一覧」と出力されていればページの表示は完了です。
http://dev.magento.com/vendor/news/index