カテゴリ: Symfony 更新日: 2025/12/11

SymfonyでDoctrineをセットアップする手順を初心者向けに完全解説!

SymfonyでDoctrineをセットアップする手順
SymfonyでDoctrineをセットアップする手順

先生と生徒の会話形式で理解しよう

生徒

「Symfonyでデータベースを使いたいんですが、どうやって準備すればいいですか?」

先生

「SymfonyではDoctrineという仕組みを使って、データベースとやり取りすることができますよ。」

生徒

「Doctrineのセットアップって難しいですか?」

先生

「一つずつ順番にやれば大丈夫です。一緒にセットアップ手順を確認していきましょう!」

1. Doctrine ORMとは?

1. Doctrine ORMとは?
1. Doctrine ORMとは?

Doctrine ORM(ドクトリン・オーアールエム)は、Symfonyでデータベースと簡単につながるようにするためのライブラリです。難しいSQL文を毎回書かなくても、PHPのクラスとオブジェクトでデータを扱える便利な仕組みです。

たとえば「ユーザー情報を保存したい」というとき、フォームからの入力をそのまま保存したり、ユーザー一覧を簡単に取得したりすることができます。

2. DoctrineをSymfonyプロジェクトにインストールする

2. DoctrineをSymfonyプロジェクトにインストールする
2. DoctrineをSymfonyプロジェクトにインストールする

Symfonyのプロジェクトを作成したあと、Doctrineを使えるようにするには、まずパッケージのインストールが必要です。

次のコマンドをターミナルで実行してください。


composer require symfony/orm-pack
composer require --dev symfony/maker-bundle

orm-packはDoctrineの基本機能をまとめたパックで、maker-bundleはコマンドでエンティティ(データの型)などを作るときに使います。

3. データベースの設定を.envファイルに記述する

3. データベースの設定を.envファイルに記述する
3. データベースの設定を.envファイルに記述する

Symfonyでは、.envファイル(環境設定ファイル)でデータベースとの接続情報を設定します。次のように編集しましょう。


DATABASE_URL="mysql://ユーザー名:パスワード@127.0.0.1:3306/データベース名?serverVersion=8&charset=utf8mb4"

ユーザー名・パスワード・データベース名は、自分の環境に合わせて変更してください。

ここで使われている「mysql」は、データベースの種類です。他に「postgresql」などもあります。

4. データベースを作成する

4. データベースを作成する
4. データベースを作成する

設定が完了したら、Symfonyのコマンドでデータベースを作成できます。


php bin/console doctrine:database:create

このコマンドを実行すると、.envに設定した内容にもとづいて、データベースが自動で作成されます。

5. エンティティ(Entity)を作成する

5. エンティティ(Entity)を作成する
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. マイグレーションを実行する

6. マイグレーションを実行する
6. マイグレーションを実行する

エンティティを作っただけでは、まだデータベースに反映されていません。ここで、マイグレーションという手順を行います。

マイグレーションとは、エンティティの内容をもとに、実際のテーブルを作成・変更する作業のことです。

次の2つのコマンドを順に実行します。


php bin/console make:migration
php bin/console doctrine:migrations:migrate

この手順が完了すると、データベースの中にエンティティに対応したテーブルが作成されます。

7. Doctrineのセットアップが完了!

7. Doctrineのセットアップが完了!
7. Doctrineのセットアップが完了!

これで、SymfonyでDoctrineを使うためのセットアップは完了です。ここまでの手順で、データベースとの接続・エンティティの作成・テーブルの準備が整いました。

このあとからは、作ったエンティティを使って、データの保存・検索・更新・削除などを行うことができます。

8. つまずきやすいポイントと対策

8. つまずきやすいポイントと対策
8. つまずきやすいポイントと対策

初心者の方がDoctrineのセットアップでよくつまずくのは、次のような部分です。

  • .envファイルの書き間違い:スペルや記号が違うと接続できません
  • MySQLが起動していない:サーバーが動いているか確認しましょう
  • コマンドの順序ミス:先にマイグレーションしないと反映されません

エラーメッセージが出た場合は、一度設定を見直すことが大切です。

9. Doctrineを使う準備ができたら

9. Doctrineを使う準備ができたら
9. Doctrineを使う準備ができたら

Doctrineのセットアップが終わったら、いよいよ実際にデータベースを使ってみましょう。Symfonyでは、Doctrineを使ってデータを追加・取得・更新・削除ができます。

このように、Doctrineは初心者でも理解しやすく、操作が簡単な仕組みになっているので、安心して使い始めてください。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)