SymfonyでDoctrineをセットアップする手順を初心者向けに完全解説!
生徒
「Symfonyでデータベースを使いたいんですが、どうやって準備すればいいですか?」
先生
「SymfonyではDoctrineという仕組みを使って、データベースとやり取りすることができますよ。」
生徒
「Doctrineのセットアップって難しいですか?」
先生
「一つずつ順番にやれば大丈夫です。一緒にセットアップ手順を確認していきましょう!」
1. Doctrine ORMとは?
Doctrine ORM(ドクトリン・オーアールエム)は、Symfonyでデータベースと簡単につながるようにするためのライブラリです。難しいSQL文を毎回書かなくても、PHPのクラスとオブジェクトでデータを扱える便利な仕組みです。
たとえば「ユーザー情報を保存したい」というとき、フォームからの入力をそのまま保存したり、ユーザー一覧を簡単に取得したりすることができます。
2. DoctrineをSymfonyプロジェクトにインストールする
Symfonyのプロジェクトを作成したあと、Doctrineを使えるようにするには、まずパッケージのインストールが必要です。
次のコマンドをターミナルで実行してください。
composer require symfony/orm-pack
composer require --dev symfony/maker-bundle
orm-packはDoctrineの基本機能をまとめたパックで、maker-bundleはコマンドでエンティティ(データの型)などを作るときに使います。
3. データベースの設定を.envファイルに記述する
Symfonyでは、.envファイル(環境設定ファイル)でデータベースとの接続情報を設定します。次のように編集しましょう。
DATABASE_URL="mysql://ユーザー名:パスワード@127.0.0.1:3306/データベース名?serverVersion=8&charset=utf8mb4"
ユーザー名・パスワード・データベース名は、自分の環境に合わせて変更してください。
ここで使われている「mysql」は、データベースの種類です。他に「postgresql」などもあります。
4. データベースを作成する
設定が完了したら、Symfonyのコマンドでデータベースを作成できます。
php bin/console doctrine:database:create
このコマンドを実行すると、.envに設定した内容にもとづいて、データベースが自動で作成されます。
5. エンティティ(Entity)を作成する
次に、データを扱うためのエンティティを作成します。エンティティとは、データの設計図のようなもので、1つのクラスがデータベースのテーブルに対応します。
以下のコマンドを使うと、対話形式で作成できます。
php bin/console make:entity
このコマンドを実行すると、たとえば次のような質問が出てきます。
Class name of the entity to create or update (e.g. GrumpyChef):
> User
New property name (press <return> to stop adding fields):
> name
Field type (enter ? to see all types) [string]:
> string
Field length [255]:
>
Can this field be null in the database (nullable) (yes/no) [no]:
> no
このように答えていくだけで、自動的にクラスファイルが生成されます。
6. マイグレーションを実行する
エンティティを作っただけでは、まだデータベースに反映されていません。ここで、マイグレーションという手順を行います。
マイグレーションとは、エンティティの内容をもとに、実際のテーブルを作成・変更する作業のことです。
次の2つのコマンドを順に実行します。
php bin/console make:migration
php bin/console doctrine:migrations:migrate
この手順が完了すると、データベースの中にエンティティに対応したテーブルが作成されます。
7. Doctrineのセットアップが完了!
これで、SymfonyでDoctrineを使うためのセットアップは完了です。ここまでの手順で、データベースとの接続・エンティティの作成・テーブルの準備が整いました。
このあとからは、作ったエンティティを使って、データの保存・検索・更新・削除などを行うことができます。
8. つまずきやすいポイントと対策
初心者の方がDoctrineのセットアップでよくつまずくのは、次のような部分です。
- .envファイルの書き間違い:スペルや記号が違うと接続できません
- MySQLが起動していない:サーバーが動いているか確認しましょう
- コマンドの順序ミス:先にマイグレーションしないと反映されません
エラーメッセージが出た場合は、一度設定を見直すことが大切です。
9. Doctrineを使う準備ができたら
Doctrineのセットアップが終わったら、いよいよ実際にデータベースを使ってみましょう。Symfonyでは、Doctrineを使ってデータを追加・取得・更新・削除ができます。
このように、Doctrineは初心者でも理解しやすく、操作が簡単な仕組みになっているので、安心して使い始めてください。