ECCUBE4 | Symfony エンティティの基本的な記述 | 【福岡】LP・ランディングページ・ホームページ制作|セルピー

ECCUBE4 | Symfony エンティティの基本的な記述

エンティティの基本的な記述を例を用いて説明します。以下の例では、Userエンティティを作成しています。

// src/Entity/User.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 * @ORM\Table(name="users")
 */
class User
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $username;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $email;

    // GetterとSetterメソッドが省略されている

    // コンストラクターなどのメソッドも追加することができる
}

この例では、Userエンティティが作成されています。以下に各要素の説明を示します。

namespace

namespaceキーワードは、このファイルがApp\Entityの名前空間にあることを示しています。これにより、このクラスが他のクラスと競合しないようになります。

use

useキーワードは、他のクラスやトレイトをインポートします。この例では、ORMというエイリアスをDoctrine\ORM\Mappingに割り当てています。

エンティティのクラス定義

Userクラスは、Userエンティティを表します。UserクラスはApp\Entity名前空間内にあります。

@ORM\Entity()

@ORM\Entity()アノテーションは、このクラスがDoctrineのエンティティであることを示します。

@ORM\Table(name="users")

@ORM\Tableアノテーションは、このエンティティが対応するデータベースのテーブルの名前を指定します。この場合、usersという名前のテーブルにマッピングされます。

プロパティ

エンティティのプロパティは、データベースの列にマッピングされます。例えば、$usernameプロパティは、usersテーブル内のusername列にマッピングされます。

@ORM\Id()

@ORM\Id()アノテーションは、このプロパティがエンティティの主キーであることを示します。

@ORM\GeneratedValue()

@ORM\GeneratedValue()アノテーションは、このプロパティが自動的に生成される主キーであることを示します。

@ORM\Column

@ORM\Columnアノテーションは、プロパティがデータベースの列にマッピングされることを示します。typeパラメータは、列のデータ型を指定します。

これは基本的なUserエンティティの例です。これを使用して、Symfonyアプリケーションでユーザーのデータベースレコードを表現することができます。