見出し画像

symfony , EC-Cube とMAMP 設定

MAMPを使った時のSymfony、EC-Cube のデータベースの拡張、作成

1)EC-Cubeでのデータベース拡張

EC-Cubeでは
1)App/Customize にEntityディレクトリを作成
2)拡張、もしくは新規作成するDBの内容を xxxTrait.phpに記述し、作成
3)データベースへ反映
という手順を踏みます。

2)Symfonyでのデータベース作成

Symfonyでは、
1)Entity ファイルを作成 (src ディレクトリに作成される)
2)データベースへ反映
ここではEntityファイルの作成とマイグレーションについては詳しい事は書きません。

3)データベースへの反映

次に、Entity fileデータベースの定義を書いた後、Doctrineでデータベースに反映させます。
方法は
1) proxyファイルを作成
2)キャシャを削除、
3) マイグレーション fileを作る
4) データベースに反映
と言う手順を踏みます
それぞれは以下の様にターミナルからコマンドで進めます

まず、EC−Cubeのルートディレクトリに移動して
1) proxy fileを作成
> php bin/console eccube:generate:proxies
2) casheのクリア
> php bin/console cache:clear --no-warmup
3) マイグレーションファイルを作ります
> bin/console doctrine:schema:update --dump-sql
4) データベースへ反映
> bin/console doctrine:schema:update --dump-sql --force

ここまでで、
[OK] Database schema updated successfully!
とでればOKです。

4)エラーが出る場合


3)のところで以下のエラーが発生する事があります

An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory

このエラーメッセージはfileまたはディレクトリが見つからないと言うメッセージなので、そのファイル、ディレクトリが良くわからない、見つからないと言うことになりがちです。

5) 原因と対応

原因1) データベースサーバーが起動していない
 実際はこのエラーメッセージはサーバに接続出来ない時にも表示されます
 データベースサーバーが起動しているかを確認する。
MAMPであれば、以下の確認

MAMP PROでサーバーが起動しているかを確認する

原因2)サーバーのphp、設定とターミナルのphp 設定が異なっている
このエラーメッセージはMAMPのphpの設定とターミナルのphpの設定が異なっていても表示されます

MAMPのphpの設定 以下で確認

MAMP PROでPHPのバージョン確認

ターミナルでのphpの確認は、以下をターミナルで打って
> which php
 結果が/Applications/MAMP/bin/php/php8.1.13/bin/phpのように MAMPのbin内のphp を指していてMAMPのバージョンと合っていればOKです

異なっている場合はターミナルのphpをターミナル設定、例えばmacでzshであれば、.zshrcにアプリケーションのPathを追加します
export PATH=/Applications/MAMP/bin/php/php8.1.13/bin:PATH

書き込んだ後、ターミナルを再起動して確認します
先ほどの様に
> which php 
と打って確認

【参考資料】Symfony




よろしければサポートをお願いします。 今後の活動の励みになります。