Chris@0: . Chris@0: */ Chris@0: Chris@0: namespace Doctrine\Common\Persistence; Chris@0: Chris@0: /** Chris@0: * Contract for a Doctrine persistence layer ObjectRepository class to implement. Chris@0: * Chris@0: * @link www.doctrine-project.org Chris@0: * @since 2.1 Chris@0: * @author Benjamin Eberlei Chris@0: * @author Jonathan Wage Chris@0: */ Chris@0: interface ObjectRepository Chris@0: { Chris@0: /** Chris@0: * Finds an object by its primary key / identifier. Chris@0: * Chris@0: * @param mixed $id The identifier. Chris@0: * Chris@12: * @return object|null The object. Chris@0: */ Chris@0: public function find($id); Chris@0: Chris@0: /** Chris@0: * Finds all objects in the repository. Chris@0: * Chris@0: * @return array The objects. Chris@0: */ Chris@0: public function findAll(); Chris@0: Chris@0: /** Chris@0: * Finds objects by a set of criteria. Chris@0: * Chris@0: * Optionally sorting and limiting details can be passed. An implementation may throw Chris@0: * an UnexpectedValueException if certain values of the sorting or limiting details are Chris@0: * not supported. Chris@0: * Chris@0: * @param array $criteria Chris@0: * @param array|null $orderBy Chris@0: * @param int|null $limit Chris@0: * @param int|null $offset Chris@0: * Chris@0: * @return array The objects. Chris@0: * Chris@0: * @throws \UnexpectedValueException Chris@0: */ Chris@0: public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null); Chris@0: Chris@0: /** Chris@0: * Finds a single object by a set of criteria. Chris@0: * Chris@0: * @param array $criteria The criteria. Chris@0: * Chris@12: * @return object|null The object. Chris@0: */ Chris@0: public function findOneBy(array $criteria); Chris@0: Chris@0: /** Chris@0: * Returns the class name of the object managed by the repository. Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getClassName(); Chris@0: }