Skip to content
This repository has been archived by the owner on Jul 25, 2023. It is now read-only.

[Convention] Doctrine repository #4

Closed
ghost opened this issue Sep 10, 2013 · 2 comments
Closed

[Convention] Doctrine repository #4

ghost opened this issue Sep 10, 2013 · 2 comments
Labels

Comments

@ghost
Copy link

ghost commented Sep 10, 2013

Il serait bon de définir une convention de nommage pour faire la différence entre les fonctions retournant une requête exécuté et celle retournant un objet QueryBuilder.

Le mieux serait surement d'écrire deux fonctions, une get() qui retourne le QueryBuilder, et une find() qui exécute la fonction get() précédente.

<?php

namespace My\FooBundle\Repository;

use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;

/**
 * FooRepository
 */
class FooRepository extends EntityRepository
{
    /**
     * Return Foo by name.
     *
     * @param string $name
     * @return QueryBuilder $qb
     */
    public function getByName($name)
    {
        $qb->where('mission:name = :mission_name')
            ->setParameter('mission_name', $name);

        return $qb;
    }

    /**
     * Execute function getByName()
     *
     * @see getByName()
     * @return array
     */
    public function findByName($name)
    {
        return $this->getByName($name)
            ->getQuery()
            ->getResult();
    }
}
@juliensnz
Copy link

Ouep, il serait bon de faire une différence. De cette façon, rendu dans un contrôleur on pourra savoir directement si on obtient un qb ou une collection.

Symfony2 utilise find pour retourner des résultats directement alors pourquoi pas utiliser get pour le querybuilder.

@lenybernard
Copy link
Contributor

Yes, je pense que c'est une très bonne idée. 👍

@ghost ghost closed this as completed Sep 30, 2013
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants