EC-CUBE3やEC-CUBE4で開発を行なっていると必ず耳にするのがドクトリンやエンティティ、レポジトリといったデータベース周りの用語です。

ECサイトはデータベースと密接に関係しているため、これらを用いずにEC-CUBEの開発を行うことは不可能です。

エンティティとレポジトリとは?

エンティティ:データを保持するためのクラス
レポジトリ:データを操作するためのクラス

あまりフレームワークに詳しくない方に対しては、テーブルをPHPのクラスとして抽象化したものと説明すると何となく伝わるように思います。

レポジトリ

Eccube\Repository\CustomerRepository

テーブル

dtb_customer

エンティティ

Eccube\Entity\Customer

レコード

ID: 1の会員データ

本来データベースのデータを操作するにはSQLを書く必要がありますが、DoctrineによってPHPのクラスとしてデータベースを扱うことができ、SQL文を自力で作る必要がなくなります。

エンティティ・レポジトリと実際のテーブルを紐づけているのが、EC-CUBE3であればdcm.ymlに書かれた定義、EC-CUBE4であればエンティティクラスに記述されたAnnotationです。

アノテーションの例:

どんどんEntityやRepositoryを使って開発を行なってみて見てください。

新規テーブルのたびにEntityやRepositoryクラスを作成するのは面倒ですが、dcm.yml等から自動生成する方法をマスターすると高速な開発が行えるようになりますので別の機会にご紹介します。