LoginSignup
1
0

More than 5 years have passed since last update.

EC-CUBEのSymfony開発ブランチでカスタマイズディレクトリを使って新規画面を追加してみる

Last updated at Posted at 2018-03-23

概要

EC-CUBEのSymfony開発ブランチではEC-CUBE3.0系にはなかったカスタマイズディレクトリによるカスタマイズ方法が導入されています。
本記事ではカスタマイズ例として新規画面追加までの流れを示します。

ソースコードは以下でも確認いただけます。
https://github.com/okazy/ec-cube/tree/demo

新規画面追加

/demo のURLで新規画面を追加します。

詳しい内容は公式ドキュメントを参照してください。

Step1: /app/Customize/Controller 配下に DemoController クラスを作成します。

/app/Customize/Controller/DemoController.php
<?php
namespace Customize\Controller;

class DemoController
{

}

Step2: demo() ファンクションを追加します。

/app/Customize/Controller/DemoController.php
<?php

namespace Customize\Controller;

class DemoController
{
    public function demo()
    {

    }
}

Step3: @Route アノテーションでルーティングの設定をします。

/app/Customize/Controller/DemoController.php
<?php

namespace Customize\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class DemoController
{
    /**
     * @Route("/demo", name="demo")
     */
    public function demo()
    {

    }
}

Step4: 戻り値でResponseクラスを返します。

この時点で画面が表示できるようになりますので確認して見てください。

/app/Customize/Controller/DemoController.php
<?php

namespace Customize\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class DemoController
{
    /**
     * @Route("/demo", name="demo")
     */
    public function demo()
    {
        return new Response("Hello Demo!");
    }
}

Step5: @Template アノテーションでテンプレートファイルを指定します。

/app/Customize/Controller/DemoController.php
<?php

namespace Customize\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Response;

class DemoController
{
    /**
     * @Route("/demo", name="demo")
     * @Template("demo.twig")
     */
    public function demo()
    {
        return new Response("Hello Demo!");
    }
}

Step6: 戻り値でテンプレートへ変数をわたします。

/app/Customize/Controller/DemoController.php
<?php

namespace Customize\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DemoController
{
    /**
     * @Route("/demo", name="demo")
     * @Template("demo.twig")
     */
    public function demo()
    {
        return [ "name" => "Demo" ];
    }
}

Step7: /app/template 配下にテンプレートファイルを追加します。

/app/template/default/demo.twig
<h1>Hello {{ name }} !!</h1>

画面を更新して見てh1タグで Hello Demo !! と表示されて入れば成功です!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0