6

Symfony2プロジェクトのエンティティで使用するリポジトリを作成していますが、クラスをどこに保存するかわかりません。私はインターネットで調査していますが、リポジトリを保存するためのデフォルトの名前空間またはデフォルトのフォルダに関する情報がありません。

私は2つのアプローチで「考える」ことができました。

  1. エンティティフォルダを使用する:(同じフォルダ内のエンティティとentityRepository)

    / project / bundle / entity;

  2. リポジトリフォルダを使用します:(エンティティフォルダのエンティティとリポジトリ1のリポジトリ)

    / project / bundle / entity; / project / entity / repository;

それについて何か基準はありますか?

4

4 に答える 4

3

どこにでも保存できますが、Symfonyの公式では

Acme / DemoBundle / Repository /

だから私はそれがより標準的な方法だと思います

于 2012-08-13T10:14:16.033 に答える
1

どういうわけかSymfonyがリポジトリを見つけられない場合は、エンティティクラスでアノテーションを使用して、次のように特定のリポジトリ名前空間\クラス(例: "Acme \ DemoBundle \ Entity \ Repository \ MyEntityRepository")を定義できます。

use Doctrine\ORM\Mapping as ORM;

/**
*@ORM\Entity(repositoryClass="Acme\DemoBundle\Entity\Repository\MyEntityRepository")
*/
class MyEntity { ... }

YML、XML、PHPで定義できるかもしれませんが、エンティティでアノテーションを使用しています。

于 2015-01-25T22:48:33.060 に答える
0

私は今、Symfony2でブログを作成する方法についてのチュートリアルを読んでいます。そこには、次のようなすべてのリポジトリクラスを格納するリポジトリディレクトリがあります。src/ Blogger / BlogBu​​ndle / Repository/BlogRepository.phpこれが最善の解決策ですが、それが役立つことを願っています。チュートリアルをご覧になりたい場合は、こちらをご覧ください-http://tutorial.symblog.co.uk/docs/extending-the-model-blog-comments.html

于 2012-08-13T09:57:53.303 に答える
0

サルのスパナを介さずに、DoctrineエンティティジェネレーターはEntityフォルダーにリポジトリクラスを作成します。

php app/console doctrine:generate:entity

実在物:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Test
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="AppBundle\Entity\TestRepository")
 */
class Test
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }
}

リポジトリ:

namespace AppBundle\Entity;

use Doctrine\ORM\EntityRepository;

/**
 * TestRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class TestRepository extends EntityRepository
{
}
于 2015-08-06T15:19:30.430 に答える