バージョン:EC-CUBE4.0
初めて触れるものは、わからない事だらけですね。
何度も探すのはナンセンスなので、メモしておきます。
書籍も買いました!
読んだ感想としては、EC-CUBEってものの6割ぐらいはわかるんじゃないかな٩(•̤̀ᵕ•̤́๑)

EC-CUBE4の設定関連はこちらにまとめています↓↓↓
- デフォルト設定
- クラス構成
- デバック方法
- Docker
- 開発環境構築途中でエラー
- No composer.json present in the current directory, this may be the cause of the following exception.
- PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 6291464 bytes) in /var/www/html/vendor/easycorp/easy-log-handler/src/EasyLogFormatter.php on line 84
- You have requested a non-existent parameter “kernel.secret”. Did you mean this: “kernel.charset”?
- SQLへ初期データの登録
- 途中で初期化したくなったら
- Workbenchで接続
- テーブル構成
デフォルト設定
envファイル見れば良いのですが、一応記載
管理画面URL
http://プロジェクト名/admin
ログインID:admin
パスワード:password
SQL初期設定
mysql, postgresql
ユーザー名:dbuser
パスワード:secret
データベース名:eccubedb
クラス構成
Controller:ルーティング・サービス・モデル・ビューとのやりとり
Entity:SQLのテーブルをPHPにしたクラス
ゲッターセッター
アノテーションでいろいろ出来る
Repository:SQLを組んでリスト取得や表示順変更など行う
Service:注文や消費税など複数箇所で使用したり特定の機能として独立しているクラス
デバック方法
これ知らないと開発できませんね!
var_dump
devモードならdumpだけで、綺麗に整形してくれます。
dump($array);
実行クエリ確認
どんなSQLを投げたのか確認したい事ありますよね!
dump($qb->getQuery()->getSQL()); exit;
こんな感じで確認できます٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
パラメータはないから、dumpで別途確認して下さい。
Docker
今回は初めてDockerで、環境構築
開発環境構築途中でエラー
こちらのコマンド実行後にエラー
docker-compose up -d
エラー内容
Unknown SSL protocol error in connection to XXX
ウィルス対策ソフトのカスペルスキー入れているのですが、、、それ?
macを再起動してすぐにコマンド実行したら解決しました٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
No composer.json present in the current directory, this may be the cause of the following exception.
docker-compose up -d
Composer (version 2.0.6) successfully installed to: /var/www/html/composer.phar
composerのバージョンが対応していないのでエラーみたいです。
Dockerfileファイルへバージョン変更するコードを追加
RUN curl -sS https://getcomposer.org/installer \ | php \ && mv composer.phar /usr/bin/composer \ && composer selfupdate --1 \ ←これ!!! && composer config -g repos.packagist composer https://packagist.jp \ && composer global require hirak/prestissimo \ && chown www-data:www-data /var/www \ && mkdir -p ${APACHE_DOCUMENT_ROOT}/var \ && chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} \ && find ${APACHE_DOCUMENT_ROOT} -type d -print0 \ | xargs -0 chmod g+s \ ;
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 6291464 bytes) in /var/www/html/vendor/easycorp/easy-log-handler/src/EasyLogFormatter.php on line 84
docker-compose exec eccube composer run-script compile
メモリ不足で発生します。
php.iniファイルでメモリを増やせばOK
Dockerはコンテナで設定
cd /usr/local/etc/php/ vi php.ini
memory_limit = 128M ↓ memory_limit = 512M
You have requested a non-existent parameter “kernel.secret”. Did you mean this: “kernel.charset”?
サーバーからプルしたものをローカルで立ち上げようとしたら、発生したエラー
framework_extra.yamlを下記のファイル内容へ入れ替えたらうまくいった!
SQLへ初期データの登録
初期データは、EC-CUBEが用意しているデモ用の最低限のデータ
# スキーマ作成+初期データ投入
docker-compose exec ec-cube composer run-script compile
途中で初期化したくなったら
eccubeのサンプルデータも入ってます。
データベース削除:eccubedb デフォルト
データベース作成:CREATE DATABES eccubedb;
あとはさっきのコマンド流せば完了
# スキーマ作成+初期データ投入
docker-compose exec ec-cube composer run-script compile
Workbenchで接続
情報はenvファイルにあります。
DATABASE_URL=mysql://dbuser:secret@mysql/eccubedb
Hostnameとport番号は、Dockerから確認しました。

パスワードは、「secret」です。

テーブル構成
重要なテーブルのみメモ
dtb_customer:会員ユーザー
dtb_member:管理ユーザー
dtb_cart:カート
dtb_cart_item:カートアイテム
未ログイン, ログイン関係なくカートへ保存
dtb_order:注文
dtb_order_item:注文アイテム
注文時にcartを削除し注文データへ登録
↓ 商品は下記セットでデータないと表示されない
dtb_product:商品
dtb_product_class:商品規格
dtb_product_stock:在庫
dtb_class_name:規格名
dtb_class_category:規格カテゴリ
↓ カテゴリ
dtb_category:カテゴリ
dtb_product_category:商品とカテゴリの紐付け
コメント