vendor/doctrine/orm/lib/Doctrine/ORM/EntityManagerInterface.php line 33

Open in your IDE?
  1. <?php
  2. /*
  3.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  4.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  5.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  6.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  7.  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  8.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  9.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  10.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  11.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  12.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  13.  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  14.  *
  15.  * This software consists of voluntary contributions made by many individuals
  16.  * and is licensed under the MIT license. For more information, see
  17.  * <http://www.doctrine-project.org>.
  18.  */
  19. namespace Doctrine\ORM;
  20. use Doctrine\Common\Persistence\ObjectManager;
  21. use Doctrine\ORM\Query\ResultSetMapping;
  22. /**
  23.  * EntityManager interface
  24.  *
  25.  * @since   2.4
  26.  * @author  Lars Strojny <lars@strojny.net>
  27.  *
  28.  * @method Mapping\ClassMetadata getClassMetadata($className)
  29.  */
  30. interface EntityManagerInterface extends ObjectManager
  31. {
  32.     /**
  33.      * Returns the cache API for managing the second level cache regions or NULL if the cache is not enabled.
  34.      *
  35.      * @return \Doctrine\ORM\Cache|null
  36.      */
  37.     public function getCache();
  38.     /**
  39.      * Gets the database connection object used by the EntityManager.
  40.      *
  41.      * @return \Doctrine\DBAL\Connection
  42.      */
  43.     public function getConnection();
  44.     /**
  45.      * Gets an ExpressionBuilder used for object-oriented construction of query expressions.
  46.      *
  47.      * Example:
  48.      *
  49.      * <code>
  50.      *     $qb = $em->createQueryBuilder();
  51.      *     $expr = $em->getExpressionBuilder();
  52.      *     $qb->select('u')->from('User', 'u')
  53.      *         ->where($expr->orX($expr->eq('u.id', 1), $expr->eq('u.id', 2)));
  54.      * </code>
  55.      *
  56.      * @return \Doctrine\ORM\Query\Expr
  57.      */
  58.     public function getExpressionBuilder();
  59.     /**
  60.      * Starts a transaction on the underlying database connection.
  61.      *
  62.      * @return void
  63.      */
  64.     public function beginTransaction();
  65.     /**
  66.      * Executes a function in a transaction.
  67.      *
  68.      * The function gets passed this EntityManager instance as an (optional) parameter.
  69.      *
  70.      * {@link flush} is invoked prior to transaction commit.
  71.      *
  72.      * If an exception occurs during execution of the function or flushing or transaction commit,
  73.      * the transaction is rolled back, the EntityManager closed and the exception re-thrown.
  74.      *
  75.      * @param callable $func The function to execute transactionally.
  76.      *
  77.      * @return mixed The non-empty value returned from the closure or true instead.
  78.      */
  79.     public function transactional($func);
  80.     /**
  81.      * Commits a transaction on the underlying database connection.
  82.      *
  83.      * @return void
  84.      */
  85.     public function commit();
  86.     /**
  87.      * Performs a rollback on the underlying database connection.
  88.      *
  89.      * @return void
  90.      */
  91.     public function rollback();
  92.     /**
  93.      * Creates a new Query object.
  94.      *
  95.      * @param string $dql The DQL string.
  96.      *
  97.      * @return Query
  98.      */
  99.     public function createQuery($dql '');
  100.     /**
  101.      * Creates a Query from a named query.
  102.      *
  103.      * @param string $name
  104.      *
  105.      * @return Query
  106.      */
  107.     public function createNamedQuery($name);
  108.     /**
  109.      * Creates a native SQL query.
  110.      *
  111.      * @param string           $sql
  112.      * @param ResultSetMapping $rsm The ResultSetMapping to use.
  113.      *
  114.      * @return NativeQuery
  115.      */
  116.     public function createNativeQuery($sqlResultSetMapping $rsm);
  117.     /**
  118.      * Creates a NativeQuery from a named native query.
  119.      *
  120.      * @param string $name
  121.      *
  122.      * @return NativeQuery
  123.      */
  124.     public function createNamedNativeQuery($name);
  125.     /**
  126.      * Create a QueryBuilder instance
  127.      *
  128.      * @return QueryBuilder
  129.      */
  130.     public function createQueryBuilder();
  131.     /**
  132.      * Gets a reference to the entity identified by the given type and identifier
  133.      * without actually loading it, if the entity is not yet loaded.
  134.      *
  135.      * @param string $entityName The name of the entity type.
  136.      * @param mixed  $id         The entity identifier.
  137.      *
  138.      * @return object|null The entity reference.
  139.      *
  140.      * @throws ORMException
  141.      */
  142.     public function getReference($entityName$id);
  143.     /**
  144.      * Gets a partial reference to the entity identified by the given type and identifier
  145.      * without actually loading it, if the entity is not yet loaded.
  146.      *
  147.      * The returned reference may be a partial object if the entity is not yet loaded/managed.
  148.      * If it is a partial object it will not initialize the rest of the entity state on access.
  149.      * Thus you can only ever safely access the identifier of an entity obtained through
  150.      * this method.
  151.      *
  152.      * The use-cases for partial references involve maintaining bidirectional associations
  153.      * without loading one side of the association or to update an entity without loading it.
  154.      * Note, however, that in the latter case the original (persistent) entity data will
  155.      * never be visible to the application (especially not event listeners) as it will
  156.      * never be loaded in the first place.
  157.      *
  158.      * @param string $entityName The name of the entity type.
  159.      * @param mixed  $identifier The entity identifier.
  160.      *
  161.      * @return object|null The (partial) entity reference.
  162.      */
  163.     public function getPartialReference($entityName$identifier);
  164.     /**
  165.      * Closes the EntityManager. All entities that are currently managed
  166.      * by this EntityManager become detached. The EntityManager may no longer
  167.      * be used after it is closed.
  168.      *
  169.      * @return void
  170.      */
  171.     public function close();
  172.     /**
  173.      * Creates a copy of the given entity. Can create a shallow or a deep copy.
  174.      *
  175.      * @deprecated 2.7 This method is being removed from the ORM and won't have any replacement
  176.      *
  177.      * @param object  $entity The entity to copy.
  178.      * @param boolean $deep   FALSE for a shallow copy, TRUE for a deep copy.
  179.      *
  180.      * @return object The new entity.
  181.      *
  182.      * @throws \BadMethodCallException
  183.      */
  184.     public function copy($entity$deep false);
  185.     /**
  186.      * Acquire a lock on the given entity.
  187.      *
  188.      * @param object   $entity
  189.      * @param int      $lockMode
  190.      * @param int|null $lockVersion
  191.      *
  192.      * @return void
  193.      *
  194.      * @throws OptimisticLockException
  195.      * @throws PessimisticLockException
  196.      */
  197.     public function lock($entity$lockMode$lockVersion null);
  198.     /**
  199.      * Gets the EventManager used by the EntityManager.
  200.      *
  201.      * @return \Doctrine\Common\EventManager
  202.      */
  203.     public function getEventManager();
  204.     /**
  205.      * Gets the Configuration used by the EntityManager.
  206.      *
  207.      * @return Configuration
  208.      */
  209.     public function getConfiguration();
  210.     /**
  211.      * Check if the Entity manager is open or closed.
  212.      *
  213.      * @return bool
  214.      */
  215.     public function isOpen();
  216.     /**
  217.      * Gets the UnitOfWork used by the EntityManager to coordinate operations.
  218.      *
  219.      * @return UnitOfWork
  220.      */
  221.     public function getUnitOfWork();
  222.     /**
  223.     * Gets a hydrator for the given hydration mode.
  224.     *
  225.     * This method caches the hydrator instances which is used for all queries that don't
  226.     * selectively iterate over the result.
  227.     *
  228.     * @deprecated
  229.     *
  230.     * @param string|int $hydrationMode
  231.     *
  232.     * @return \Doctrine\ORM\Internal\Hydration\AbstractHydrator
  233.     */
  234.     public function getHydrator($hydrationMode);
  235.     /**
  236.      * Create a new instance for the given hydration mode.
  237.      *
  238.      * @param string|int $hydrationMode
  239.      *
  240.      * @return \Doctrine\ORM\Internal\Hydration\AbstractHydrator
  241.      *
  242.      * @throws ORMException
  243.      */
  244.     public function newHydrator($hydrationMode);
  245.     /**
  246.      * Gets the proxy factory used by the EntityManager to create entity proxies.
  247.      *
  248.      * @return \Doctrine\ORM\Proxy\ProxyFactory
  249.      */
  250.     public function getProxyFactory();
  251.     /**
  252.      * Gets the enabled filters.
  253.      *
  254.      * @return \Doctrine\ORM\Query\FilterCollection The active filter collection.
  255.      */
  256.     public function getFilters();
  257.     /**
  258.      * Checks whether the state of the filter collection is clean.
  259.      *
  260.      * @return boolean True, if the filter collection is clean.
  261.      */
  262.     public function isFiltersStateClean();
  263.     /**
  264.      * Checks whether the Entity Manager has filters.
  265.      *
  266.      * @return boolean True, if the EM has a filter collection.
  267.      */
  268.     public function hasFilters();
  269. }