概要
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 !!
と表示されて入れば成功です!