LoginSignup
2
0

More than 5 years have passed since last update.

EC-CUBE 3.1-αの拡張機構を試してみる

Last updated at Posted at 2017-03-24

3/15、16に、EC-CUBE 3.1-αの方針説明会が開催されました。

資料は以下で公開されていますが、当日ライブコーディングでデモした内容は含まれていないので、こちらでも紹介したいと思います。

EC-CUBE3.1開発方針説明会資料

大きな方針としては、学習コストの低減とカスタマイズ性の向上の2点。
3.0での課題やフィードバックに対応していく予定です。

GitHubの、主要なissueやpull requestには、milestone:3.1、label:experimentalが振られていますので参考にしてください。

3.1-αのインストール

3.1-αは、experimental/3.1というブランチで開発が進められています。
パッケージ版は公開されていないため、GitHubからcloneしてくる必要があります。

// githubからclone
git clone --branch=experimental/3.1 https://github.com/EC-CUBE/ec-cube.git

// コマンドラインインストーラからインストール
cd ec-cube
php eccube_install.php sqlite

アノテーションでのルーティング制御

ここから、当日デモした内容です。
phpのビルトインサーバを立ち上げてれば簡単に動作確認を行うことができます。

// ビルトインサーバを立ち上げる
php -S localhost:8081 -t ./

3.1からルーティングの制御をアノテーションという仕組みで行うことができるようになりました。
試してみるには、app/Acme/Controllerディレクトリに、コントローラのクラスを配置します。

app/Acme/Controller/HogeController.php
<?php

namespace Acme\Controller;

use Eccube\Application;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class HogeController
{
    /**
     * @Route("/hoge")
     */
    public function index(Application $app)
    {
        return "hoge";
    }
}

http://localhost:8081/index_dev.php/hoge にアクセスし、hogeという文字列が表示されていれば成功です。

図1.png

既存のルーティングを上書きすることもできます。

    /**
     * @Route("/")
     */
    public function index(Application $app)
    {
        return "hoge";
    }

http://localhost:8081/index_dev.php/ にアクセスすると、トップページから、hogeという文字列が表示されるように変わっているはずです。

図2.png

どう変わったか

3.0では、コントローラを新たに追加する際には

  • コントローラのクラスを追加する
  • src/Eccube/ControllerProvider/Front(Admin)ControllerProvider.phpにルーティングの定義を追加する

を行う必要がありました。

また、コアコードに手を入れずに拡張するには、プラグイン機構を利用し、プラグイン関連のファイルを設置する必要があり、非常に手間のかかるものでした。

3.1ではアノテーションを利用できるようになり、だいぶ簡略化されているのがわかるかと思います。

また、購入フローのコントローラを参照いただければわかりますが、コントローラ内のメソッドが、細かな粒度に分割されています。これにより、処理の一部の振る舞いを変更する、といったことも可能になります。

利用できるアノテーション

@Routeアノテーション以外にも、以下のアノテーションが利用できます。

  • @Route
  • @Method
  • @Template
  • @Security

それぞれのアノテーションの利用方法は、app/Acme/Controller以下にサンプルを作成していますので、参考にしてみてください。

2
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
2
0