如何使用DBAL原则

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何使用DBAL原则

请注意

本文是关于DBAL原则的。通常,您将使用更高级别的Doctrine ORM层,该层在幕后使用DBAL实际与数据库通信。要阅读更多关于ORM教义的内容,请参阅“数据库和ORM原则".

学说数据库抽象层(DBAL)是位于其之上的抽象层PDO并为与最流行的关系数据库通信提供了直观而灵活的API。DBAL库允许您独立于ORM模型编写查询,例如用于构建报告或直接数据操作。

提示

阅读官方教义DBAL文欧宝体育电话档以了解Doctrine的DBAL库的所有细节和功能。

首先,安装教义orm欧宝娱乐app下载地址Symfony包

1
作曲家需要symfony/orm-欧宝娱乐app下载地址pack

然后配置DATABASE_URL环境变量.env

1 2 3 4
# .env(或在.env中覆盖DATABASE_URL)。本地以避免提交您的更改)#自定义这一行!DATABASE_URL = " mysql: / / db_user: db_password@127.0.0.1:3306 / db_name ? serverVersion = 5.7 "

进一步的东西可以配置在配置/包/ doctrine.yaml——看教义配置参考(DoctrineBundle).删除orm把那个文件输入想要使用Doctrine ORM。

然后,您可以通过自动装配Doctrine DBAL连接连接对象:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ / src /控制器/ UserController.php名称空间应用程序控制器使用学说DBAL连接使用欧宝娱乐app下载地址FrameworkBundle控制器AbstractController使用欧宝娱乐app下载地址组件HttpFoundation响应用户控件扩展AbstractController公共函数指数(连接连接响应用户连接->fetchAll (SELECT * FROM users);/ /……}}

这会让你database_connection服务。

注册自定义映射类型

您可以通过Symfony的配置注册自定义映射类型。欧宝娱乐app下载地址它们将被添加到所有配置的连接中。有关自定义映射类型的更多信息,请阅读Doctrine自定义映射类型文档的一部分。欧宝体育电话

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
#配置/包/ doctrine.yaml原则:dbal:类型:custom_first:应用\ \ CustomFirst类型custom_second:应用\ \ CustomSecond类型

在SchemaTool中注册自定义映射类型

SchemaTool用于检查数据库以比较模式。要实现此任务,它需要知道每种数据库类型需要使用哪种映射类型。可以通过配置来注册新的。

现在,将ENUM类型(DBAL默认不支持)映射到字符串映射类型:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ doctrine.yaml原则:dbal:mapping_types:枚举:字符串
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode