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

Symfonyでエンティティを作成する方法を初心者向けに徹底解説!make:entityコマンドの使い方ガイド

Symfonyでエンティティを作成する方法(make\:entityコマンド)
Symfonyでエンティティを作成する方法(make\:entityコマンド)

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

生徒

「Symfonyでデータベースのテーブルを作りたいんですけど、どうすればいいですか?」

先生

「Symfonyではエンティティというクラスを作って、データベースの設計をするんですよ。」

生徒

「それって難しい作業なんですか?」

先生

「いいえ、Symfonyのmake:entityコマンドを使えば、初心者でも簡単にエンティティを作成できますよ。一緒にやってみましょう!」

1. エンティティとは何か?

1. エンティティとは何か?
1. エンティティとは何か?

エンティティ(Entity)とは、データベースに保存する情報の型や構造を定義するPHPのクラスのことです。たとえば「ユーザー情報」「商品情報」「注文履歴」などを扱いたいとき、それぞれに対応したエンティティを作ります。

このエンティティが、データベースのテーブルという表に対応し、各クラスのプロパティがカラム(列)になります。

難しそうに感じるかもしれませんが、Symfonyにはmake:entityという便利なコマンドがあり、対話式でエンティティを簡単に作ることができます。

2. make:entityコマンドの準備

2. make:entityコマンドの準備
2. make:entityコマンドの準備

まず、Symfonyプロジェクトが準備できていて、DoctrineMakerBundleがインストールされている必要があります。以下のコマンドでインストールできます。


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

これで、Doctrine ORMが有効になり、エンティティ作成用のコマンドも使えるようになります。

3. 実際にエンティティを作成してみよう

3. 実際にエンティティを作成してみよう
3. 実際にエンティティを作成してみよう

Symfonyでエンティティを作るには、ターミナルで次のコマンドを実行します。


php bin/console make:entity

このコマンドを実行すると、画面上に次のような質問が順番に出てきます。


Class name of the entity to create or update (e.g. GrumpyChef):
 > User

ここでは「User(ユーザー)」という名前のエンティティを作ることにします。

4. プロパティ(カラム)を追加する

4. プロパティ(カラム)を追加する
4. プロパティ(カラム)を追加する

エンティティ名を入力すると、次に「どんな情報を扱うか?」を決めるステップに進みます。たとえば次のように答えます。


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

このように入力すると、「name」という文字列のカラムが作成されます。必要なだけ、同じようにプロパティを追加していきます。最後にエンターキーを押すと完了します。

5. エンティティの中身を確認してみよう

5. エンティティの中身を確認してみよう
5. エンティティの中身を確認してみよう

エンティティを作成すると、src/Entityディレクトリにファイルが自動生成されます。先ほどのUserエンティティは次のようになります。


use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
class User
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column]
    private int $id;

    #[ORM\Column(length: 255)]
    private string $name;

    public function getId(): int
    {
        return $this->id;
    }

    public function getName(): string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;
        return $this;
    }
}

このように、idnameという2つのプロパティ(フィールド)があり、それぞれ自動的にアノテーション(属性)とメソッドが生成されます。

6. エンティティ作成時の型(type)一覧

6. エンティティ作成時の型(type)一覧
6. エンティティ作成時の型(type)一覧

make:entityコマンドでは、プロパティの型(type)を聞かれます。以下は代表的な型の一部です。

  • string:文字列。名前やタイトルなどに使う。
  • text:長文。説明や内容などに使う。
  • integer:整数。年齢や数量などに。
  • boolean:真偽値。ON/OFFや有効/無効など。
  • datetime:日付と時間。登録日時などに。

使いたい内容に応じて、適切な型を選びましょう。

7. よくある失敗と注意点

7. よくある失敗と注意点
7. よくある失敗と注意点

エンティティ作成で初心者がつまずきやすいポイントもあります。たとえば:

  • プロパティ名に記号や日本語を使ってしまう(英語の小文字を使いましょう)
  • 型を間違える(数字なのにstringなど)
  • nullableの意味がわからない(null可とは、空欄でもOKという意味です)

間違えてもやり直しは可能なので、気軽に試してみましょう。

8. エンティティ作成後に行うこと

8. エンティティ作成後に行うこと
8. エンティティ作成後に行うこと

エンティティを作成したら、次はその内容を実際のデータベースに反映させる必要があります。そのためにマイグレーションという操作を行います。

マイグレーションについては別の記事で詳しく紹介しますが、簡単に言えば、「設計図をもとにデータベースのテーブルを作る」という作業です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.2
Java&Spring記事人気No2
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.3
Java&Spring記事人気No3
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.4
Java&Spring記事人気No4
Laravel
Laravelのresponse()関数の使い方を完全ガイド!初心者でもわかるレスポンス制御とHTTPレスポンスの基本
No.5
Java&Spring記事人気No5
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniterルーティングを完全攻略!正規表現でURLを自由自在に操る方法
No.8
Java&Spring記事人気No8
Laravel
LaravelでRemember Me(ログイン状態保持)機能を実装する方法を完全解説!初心者でも安心の認証入門