Chris@0: . Chris@0: */ Chris@0: Chris@0: namespace Doctrine\Common\Persistence; Chris@0: Chris@0: /** Chris@0: * Contract covering object managers for a Doctrine persistence layer ManagerRegistry class to implement. Chris@0: * Chris@0: * @link www.doctrine-project.org Chris@0: * @since 2.2 Chris@0: * @author Fabien Potencier Chris@0: * @author Benjamin Eberlei Chris@0: * @author Lukas Kahwe Smith Chris@0: */ Chris@0: interface ManagerRegistry extends ConnectionRegistry Chris@0: { Chris@0: /** Chris@0: * Gets the default object manager name. Chris@0: * Chris@0: * @return string The default object manager name. Chris@0: */ Chris@0: public function getDefaultManagerName(); Chris@0: Chris@0: /** Chris@0: * Gets a named object manager. Chris@0: * Chris@0: * @param string $name The object manager name (null for the default one). Chris@0: * Chris@0: * @return \Doctrine\Common\Persistence\ObjectManager Chris@0: */ Chris@0: public function getManager($name = null); Chris@0: Chris@0: /** Chris@0: * Gets an array of all registered object managers. Chris@0: * Chris@0: * @return \Doctrine\Common\Persistence\ObjectManager[] An array of ObjectManager instances Chris@0: */ Chris@0: public function getManagers(); Chris@0: Chris@0: /** Chris@0: * Resets a named object manager. Chris@0: * Chris@0: * This method is useful when an object manager has been closed Chris@0: * because of a rollbacked transaction AND when you think that Chris@0: * it makes sense to get a new one to replace the closed one. Chris@0: * Chris@0: * Be warned that you will get a brand new object manager as Chris@0: * the existing one is not useable anymore. This means that any Chris@0: * other object with a dependency on this object manager will Chris@0: * hold an obsolete reference. You can inject the registry instead Chris@0: * to avoid this problem. Chris@0: * Chris@0: * @param string|null $name The object manager name (null for the default one). Chris@0: * Chris@0: * @return \Doctrine\Common\Persistence\ObjectManager Chris@0: */ Chris@0: public function resetManager($name = null); Chris@0: Chris@0: /** Chris@0: * Resolves a registered namespace alias to the full namespace. Chris@0: * Chris@0: * This method looks for the alias in all registered object managers. Chris@0: * Chris@0: * @param string $alias The alias. Chris@0: * Chris@0: * @return string The full namespace. Chris@0: */ Chris@0: public function getAliasNamespace($alias); Chris@0: Chris@0: /** Chris@0: * Gets all connection names. Chris@0: * Chris@0: * @return array An array of connection names. Chris@0: */ Chris@0: public function getManagerNames(); Chris@0: Chris@0: /** Chris@0: * Gets the ObjectRepository for an persistent object. Chris@0: * Chris@0: * @param string $persistentObject The name of the persistent object. Chris@0: * @param string $persistentManagerName The object manager name (null for the default one). Chris@0: * Chris@0: * @return \Doctrine\Common\Persistence\ObjectRepository Chris@0: */ Chris@0: public function getRepository($persistentObject, $persistentManagerName = null); Chris@0: Chris@0: /** Chris@0: * Gets the object manager associated with a given class. Chris@0: * Chris@0: * @param string $class A persistent object class name. Chris@0: * Chris@0: * @return \Doctrine\Common\Persistence\ObjectManager|null Chris@0: */ Chris@0: public function getManagerForClass($class); Chris@0: }