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等から自動生成する方法をマスターすると高速な開発が行えるようになりますので別の機会にご紹介します。

関連するカスタマイズ

Twig内で文字列の一部分を切り出す方法 Slice使用... twigテンプレート内で文字列の一部を切り出したい時があります。 そんな時はsliceフィルタを使用してtwig内だけで切り出しを実行することが可能です。 2文字目以降を切り出す(1文字目を削除) sliceフィルタの第1引数は開始位置です。 sliceフィルタにはシンタックスシ...
1サイトから複数のデータベースに接続する方法... 複数のEntityManagerを利用し、複数のデータベースからデータを取得したり更新する方法はないのかというご質問をよくお受けします。 既存サイトとの連携やモールショップ化では頻繁に必要となってくる技術かと思います。 なかなか説明するのは難しいのですが、Doctrineの設定上でア...
基本税率を切り捨て、切り上げ、四捨五入に変更... 開発メンバー全員のルールを揃えておくことが重要です。 dtb_tax_ruleテーブルのcalc_ruleの設定値は次の表の通りです。 calc_rule 方式 1 四捨五入 2 切り捨て 3 切り上げ これをマイグレーションで...
データベースの初期化でのインストールエラー ホスト未設定... 今日EC-CUBE4のRC版を再インストールする機会があり、設定値のエラーが起きたため共有いたします。 EC-CUBE4のRC版のインストールページ、データベース初期化で発生したエラーです。 An exception occurred in driver: SQLSTATE php_net...