EC-CUBE4では、ページの作成が3系と比べて非常に簡単になりました。
今回は管理画面に新規ページを作成する方法をご紹介します。実際にhttp://管理画面/new_menuというURLでアクセスできるページを作っていきます。
コントローラークラスの作成
app/Customize/Controller/Admin/Product/NewController.php
上記の位置にコントローラーファイルを作成します。クラスファイルの内容は下の通りにしてください。
<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Customize\Controller\Admin\Product;
use Eccube\Controller\AbstractController;
use Eccube\Util\CacheUtil;
use Knp\Component\Pager\Paginator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class NewController extends AbstractController
{
/**
* @Route("/%eccube_admin_route%/new_menu", name="admin_new_menu")
* @Template("@admin/Product/new_menu.twig")
*/
public function index(Request $request)
{
}
}
indexというメソッドにRouteとTemplateというアノテーションが付いており、これだけで/new_menuというURLとProduct/new_menu.twigを使用するということが指定されています。
今回はメソッドの中身は空で大丈夫です。
余談ですが新規のコントローラーは基本的にapp/Customize/Controllerに設置すると良いです。
Twigテンプレートの作成
app/template/admin/Product/new_menu.twig
上記の位置に新規ページのテンプレートファイルを作成します。
内容は下の通りにしてください。
{% extends '@admin/default_frame.twig' %}
{% set menus = ['product', 'product_new_menu'] %}
{% block title %}タイトル{% endblock %}
{% block sub_title %}サブタイトル{% endblock %}
{% block main %}
テストです。
{% endblock %}
動作検証
表示できました!

ここまでの2ステップでhttp://管理画面/new_menuというURLで新規ページにアクセスできます。
3系でURLを指定するために必要だったControllerProviderがなくなりコントローラーのアノテーションを使用するスタイルになっています。
EC-CUBE4では管理画面の開発が捗りそうですね!
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。
EC-CUBEゴールドパートナー