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です。
アノテーションの例:
/** * @ORM\Column(type="string", length=255) */ private $name;
どんどんEntityやRepositoryを使って開発を行なってみて見てください。
新規テーブルのたびにEntityやRepositoryクラスを作成するのは面倒ですが、dcm.yml等から自動生成する方法をマスターすると高速な開発が行えるようになりますので別の機会にご紹介します。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。