Kdyby\Doctrine\EntityManager::create PHP Method

create() public static method

Factory method to create EntityManager instances.
public static create ( Doctrine\DBAL\Connection | array $conn, Doctrine\ORM\Configuration $config, Doctrine\Common\EventManager $eventManager = NULL ) : EntityManager
$conn Doctrine\DBAL\Connection | array
$config Doctrine\ORM\Configuration
$eventManager Doctrine\Common\EventManager
return EntityManager
    public static function create($conn, Doctrine\ORM\Configuration $config, Doctrine\Common\EventManager $eventManager = NULL)
    {
        if (!$config->getMetadataDriverImpl()) {
            throw ORMException::missingMappingDriverImpl();
        }
        switch (TRUE) {
            case is_array($conn):
                $conn = DriverManager::getConnection($conn, $config, $eventManager ?: new Doctrine\Common\EventManager());
                break;
            case $conn instanceof Doctrine\DBAL\Connection:
                if ($eventManager !== NULL && $conn->getEventManager() !== $eventManager) {
                    throw ORMException::mismatchedEventManager();
                }
                break;
            default:
                throw new \InvalidArgumentException("Invalid connection");
        }
        return new EntityManager($conn, $config, $conn->getEventManager());
    }

Usage Example

示例#1
0
 /**
  * @return Kdyby\Doctrine\EntityManager
  */
 protected function createMemoryManager($classNames = NULL, $createSchema = TRUE)
 {
     $conf = ['driver' => 'pdo_sqlite', 'memory' => TRUE];
     $connection = new Kdyby\Doctrine\Connection($conf, new Driver());
     $config = new Kdyby\Doctrine\Configuration();
     $cache = new ArrayCache();
     $config->setMetadataCacheImpl($cache);
     $config->setQueryCacheImpl($cache);
     $config->setProxyDir(TEMP_DIR);
     $config->setProxyNamespace('TestProxy');
     $config->setDefaultRepositoryClassName('Kdyby\\Doctrine\\EntityRepository');
     $config->setMetadataDriverImpl($config->newDefaultAnnotationDriver([__DIR__ . '/Model/', VENDOR_DIR], FALSE));
     $em = Kdyby\Doctrine\EntityManager::create($connection, $config);
     $em->getEventManager()->addEventSubscriber(new SortableListener());
     if ($createSchema === FALSE) {
         return $em;
     }
     $schemaTool = new SchemaTool($em);
     if ($classNames !== NULL) {
         $meta = [];
         foreach ((array) $classNames as $className) {
             $meta[] = $em->getClassMetadata($className);
         }
     } else {
         $meta = $em->getMetadataFactory()->getAllMetadata();
     }
     $schemaTool->createSchema($meta);
     return $em;
 }
All Usage Examples Of Kdyby\Doctrine\EntityManager::create