如何将现有的 PDO 对象注入到学说实体管理器

大卫·范德·埃尔斯特

我想使用学说实体管理器创建一个 PHP 包。

这个包会用在我公司不同的项目中,有的项目不是用的学说,而是一个PDO连接。

我希望能够使用现有的独立 PDO 对象在我的包中实例化一个学说实体管理器,因为我不想(而且我不能)创建另一个数据库连接。我必须使用现有的。

这是一种方法吗?就像是:

$em = EntityManager::createWithPDOInstance($pdoObject);

谢谢

大卫·范德·埃尔斯特

好吧,我自己找到了解决方案。

我发布了代码,将来可能会对某人有所帮助。

<?php

namespace MyProject\Factory;

use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Annotations\AnnotationRegistry;
use Doctrine\DBAL\DriverManager;
use Doctrine\ORM\Configuration;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver;

class EntityManagerFactory
{
    /**
     * @param \PDO $pdo
     * @return EntityManager
     */
    public function create(\PDO $pdo)
    {
        $config = new Configuration();
        $config->setProxyDir(__DIR__ . '/EntityProxy');
        $config->setProxyNamespace('EntityProxy');
        $config->setAutoGenerateProxyClasses(true);

        AnnotationRegistry::registerFile(__DIR__ . '/../../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php');

        $config->setMetadataDriverImpl(new AnnotationDriver(
            new AnnotationReader(),
            array(__DIR__ . '/')
        ));

        return EntityManager::create(
            DriverManager::getConnection(
                [
                    'driver' => 'pdo_' . $pdo->getAttribute(\PDO::ATTR_DRIVER_NAME),
                    'pdo' => $pdo,
                ],
                $config),
            $config
        );
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将学说实体管理器注入服务中-错误的做法?

来自分类Dev

学说的实体管理器flush()方法如何工作?

来自分类Dev

如何将现有的JPA实体映射到PicketLink

来自分类Dev

PDO获取现有对象

来自分类Dev

如何将嵌套对象映射到现有的嵌套对象?

来自分类Dev

Python,如何将现有的父类对象转换为子类对象

来自分类Dev

如何将Octopress博客部署到现有的gh-pages静态站点?

来自分类Dev

如何将现有的Scala库移植到scalajs?

来自分类Dev

如何将clojurescript集成到现有的javascript代码库中?

来自分类Dev

如何将现有的.m文件集成到simulink .mdl文件中

来自分类Dev

如何将现有的本地tatuk形状导入到MS SQL Server

来自分类Dev

如何将React Native集成到现有的iOS项目

来自分类Dev

如何将现有的角度应用移植到电子上?

来自分类Dev

如何将现有的kafka主题分区散布到更多目录中?

来自分类Dev

如何将数据和表插入到现有的表中?

来自分类Dev

如何将现有的本地tatuk形状导入到MS SQL Server

来自分类Dev

如何将现有的angular js应用程序集成到Laravel 5中

来自分类Dev

如何将列重写(复制)到现有的SQLite数据库中

来自分类Dev

如何将承诺重定向到现有的已延期?

来自分类Dev

如何将新的 ionic 主题集成到现有的 ionic 应用程序中?

来自分类Dev

如何将 topshelf 集成到现有的 Windows 服务项目中?

来自分类Dev

如何将现有的 CRA 应用程序发布到 npm(any) 存储库?

来自分类Dev

如何将新的对象存储添加到现有的indexeddb

来自分类Dev

如何将GUI引入现有的面向对象的项目中?

来自分类Dev

使用PHP,如何将JSON Blob附加到现有的多级JSON对象

来自分类Dev

使用PHP,如何将JSON Blob附加到现有的多级JSON对象

来自分类Dev

Python 如何将现有的本机 dict 转换为自定义 dict 对象?

来自分类Dev

如何将 Xcode 项目连接到现有的 MsSql 服务器

来自分类Dev

如何从控制器以编程方式添加学说实体管理器?

Related 相关文章

  1. 1

    将学说实体管理器注入服务中-错误的做法?

  2. 2

    学说的实体管理器flush()方法如何工作?

  3. 3

    如何将现有的JPA实体映射到PicketLink

  4. 4

    PDO获取现有对象

  5. 5

    如何将嵌套对象映射到现有的嵌套对象?

  6. 6

    Python,如何将现有的父类对象转换为子类对象

  7. 7

    如何将Octopress博客部署到现有的gh-pages静态站点?

  8. 8

    如何将现有的Scala库移植到scalajs?

  9. 9

    如何将clojurescript集成到现有的javascript代码库中?

  10. 10

    如何将现有的.m文件集成到simulink .mdl文件中

  11. 11

    如何将现有的本地tatuk形状导入到MS SQL Server

  12. 12

    如何将React Native集成到现有的iOS项目

  13. 13

    如何将现有的角度应用移植到电子上?

  14. 14

    如何将现有的kafka主题分区散布到更多目录中?

  15. 15

    如何将数据和表插入到现有的表中?

  16. 16

    如何将现有的本地tatuk形状导入到MS SQL Server

  17. 17

    如何将现有的angular js应用程序集成到Laravel 5中

  18. 18

    如何将列重写(复制)到现有的SQLite数据库中

  19. 19

    如何将承诺重定向到现有的已延期?

  20. 20

    如何将新的 ionic 主题集成到现有的 ionic 应用程序中?

  21. 21

    如何将 topshelf 集成到现有的 Windows 服务项目中?

  22. 22

    如何将现有的 CRA 应用程序发布到 npm(any) 存储库?

  23. 23

    如何将新的对象存储添加到现有的indexeddb

  24. 24

    如何将GUI引入现有的面向对象的项目中?

  25. 25

    使用PHP,如何将JSON Blob附加到现有的多级JSON对象

  26. 26

    使用PHP,如何将JSON Blob附加到现有的多级JSON对象

  27. 27

    Python 如何将现有的本机 dict 转换为自定义 dict 对象?

  28. 28

    如何将 Xcode 项目连接到现有的 MsSql 服务器

  29. 29

    如何从控制器以编程方式添加学说实体管理器?

热门标签

归档