DoctrineBundle配置(“主义”)

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.7,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

DoctrineBundle配置(“主义”)

完整的默认配置

  • YAML
  • XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
# app / config / config.yml原则:dbal:default_connection:默认的类型:#定制类型的集合#例子some_custom_type:类:Acme \ HelloBundle \ MyCustomType评论道:真正的连接:#不同命名连接的集合(如违约,conn2,等等)默认值:dbname:~主持人:本地主机端口:~用户:密码:~#数据库的字符集字符集:~#的字符集和校对表。没有继承自数据库default_table_options:字符集:~整理:~路径:~记忆:~# unix socket使用MySQLunix_socket:~#真正使用ibm_db2驱动程序的持久连接持久性:~#的协议使用ibm_db2驱动程序(默认TCPIP如果省略)协议:~#真正使用dbname作为Oracle服务名称而不是席德服务:~#会话模式用于oci8司机sessionMode:~#真正的使用集中服务器oci8司机池:~#配置MultipleActiveResultSets pdo_sqlsrv司机MultipleActiveResultSets:~司机:pdo_mysqlplatform_service:~#你的数据库引擎的版本server_version:~#真时,查询记录到“教义”独白通道日志:“% kernel.debug %”分析:“% kernel.debug %”driver_class:~wrapper_class:~#的DBAL keepSlave选项keep_slave:选项:#一个选项数组关键:[]mapping_types:#映射类型的数组名称:[]#如果定义,只有表的名字匹配正则表达式进行管理模式#的工具(在这个例子中,任何表名不从“wp_”)# schema_filter: ' / ^ (? ! wp_) / '奴隶:#的集合叫奴隶连接(例如slave1、slave2)slave1:dbname:~主持人:本地主机端口:~用户:密码:~字符集:~路径:~记忆:~# unix socket使用MySQLunix_socket:~#真正使用ibm_db2驱动程序的持久连接持久性:~#的协议使用ibm_db2驱动程序(默认TCPIP如果省略)协议:~#真正使用dbname作为Oracle服务名称而不是席德服务:~#会话模式用于oci8司机sessionMode:~#真正的使用集中服务器oci8司机池:~#配置MultipleActiveResultSets pdo_sqlsrv司机MultipleActiveResultSets:~orm:default_entity_manager:~auto_generate_proxy_classes:proxy_dir:' % kernel.cache_dir % /理论/ orm /代理的proxy_namespace:代理#搜索“ResolveTargetEntityListener”类的一篇文章resolve_target_entities:[]entity_managers:#不同命名实体管理器的集合(例如some_em、another_em)some_em:query_cache_driver:类型:数组#需要主持人:~端口:~instance_class:~类:~metadata_cache_driver:类型:数组#需要主持人:~端口:~instance_class:~类:~result_cache_driver:类型:数组#需要主持人:~端口:~instance_class:~类:~连接:~class_metadata_factory_name:学说\ ORM \ \ ClassMetadataFactory映射default_repository_class:学说\ ORM \ EntityRepositoryauto_mapping:加湿器:#水合器数组的名字hydrator_name:[]映射:#数组映射,这可能是一个包的名字或其他东西mapping_name:映射:真正的类型:~dir:~别名:~前缀:~is_bundle:~dql:#字符串函数的集合string_functions:#例子# test_string: Acme \ HelloBundle \ DQL \ StringFunction#数字功能的集合numeric_functions:#例子# test_numeric: Acme \ HelloBundle \ DQL \ NumericFunction# datetime函数的集合datetime_functions:#例子# test_datetime: Acme \ HelloBundle \ DQL \ DatetimeFunction#注册SQL实体管理器的过滤器过滤器:#过滤器的数组some_filter:类:~#需要启用:

教义DBAL配置

DoctrineBundle支持所有参数默认教义司机接受,转化为XML或YAML Symfony实施命名标准。ob娱乐下载看到学说DBAL文欧宝官网下载app档为更多的信息。下面的块显示了所有可能的配置键:

  • YAML
  • XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
原则:dbal:dbname:数据库主持人:本地主机端口:1234年用户:用户密码:秘密司机:pdo_mysql#如果指定url选项,它将覆盖上述配置url:mysql: / / db_user: db_password@127.0.0.1:3306 / db_name#的DBAL driverClass选项driver_class:MyNamespace \ MyDriverImpl#的DBAL driverOptions选项选项:foo:酒吧路径:' % kernel.root_dir % /数据/ data.sqlite '记忆:真正的unix_socket:/ tmp / mysql.sock#的DBAL wrapperClass选项wrapper_class:MyDoctrineDbalConnectionWrapper字符集:use UTF8日志:“% kernel.debug %”platform_service:MyOwnDatabasePlatformServiceserver_version:“5.6”mapping_types:枚举:字符串类型:自定义:Acme \ HelloBundle \ MyCustomType

请注意

server_version选择添加在教义DBAL 2.5中,这是使用DoctrineBundle 1.3。这个选项的值应该匹配您的数据库服务器(使用版本postgres - vpsql - v命令来找到你和PostgreSQL版本mysql - v让你的MySQL版本)。

如果您正在运行一个MariaDB数据库,您必须前缀server_version价值与mariadb -(如。server_version: mariadb-10.2.12)。

总是把服务器版本号引用解析字符串,而不是浮数。否则,浮点表示的问题可以让你的版本被认为是一个不同的数字(例如5.6将圆5.5999999999999996447286321199499070644378662109375)。

如果你不确定这个选项,你还没有创建数据库,你可以得到PDOException错误因为教义会试图猜测数据库服务器版本自动和没有可用的。

如果你想在YAML配置多个连接,把它们放在连接关键,给他们一个唯一的名称:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
原则:dbal:default_connection:默认的连接:默认值:dbname:ob娱乐下载用户:密码:主持人:本地主机server_version:“5.6”顾客:dbname:客户用户:密码:主持人:本地主机server_version:“5.7”

database_connection服务总是指的默认的连接,这是第一个定义或通过一个配置default_connection参数。

每个连接也可以通过访问doctrine.dbal。[名字]_connection服务,(名字)是连接的名称。

教义ORM配置

这配置示例显示了所有默认的配置后,ORM解决:

1 2 3 4 5 6 7 8 9 10 11
原则:orm:auto_mapping:真正的#标准分布覆盖在调试,这是真的假的auto_generate_proxy_classes:proxy_namespace:代理proxy_dir:' % kernel.cache_dir % /理论/ orm /代理的default_entity_manager:默认的metadata_cache_driver:数组query_cache_driver:数组result_cache_driver:数组

还有很多其他的配置选项,您可以使用覆盖某些类,但这些都是非常先进的用例。

缩短配置语法

当你只使用一个实体管理器,可以直接放置在所有配置选项可用doctrine.orm配置水平。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
原则:orm:#……query_cache_driver:#……metadata_cache_driver:#……result_cache_driver:#……连接:~class_metadata_factory_name:学说\ ORM \ \ ClassMetadataFactory映射default_repository_class:学说\ ORM \ EntityRepositoryauto_mapping:加湿器:#……映射:#……dql:#……过滤器:#……

常用的这个较短的版本是在其他文档部分。欧宝官网下载app请记住,你不能同时使用这两种语法。

缓存的司机

内置类型的缓存司机:数组,apc,apcu,memcache,memcached,复述,,wincache,zenddataxcache。有一种特殊类型服务这允许您定义自己的缓存服务的ID。

下面的例子显示了缓存配置的概述:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
原则:orm:auto_mapping:真正的#每个缓存驱动程序类型定义了自己的配置选项metadata_cache_driver:apcresult_cache_driver:类型:memcache主持人:本地主机端口:11211年instance_class:Memcache#“服务”类型需要定义“id”选项query_cache_driver:类型:服务id:my_doctrine_common_cache_service

映射配置

显式定义的映射实体ORM是唯一必要的配置,有几个配置选项,您可以控制。以下配置选项存在映射:

类型

之一注释,xml,yml,phpstaticphp。这指定类型的元数据类型映射使用。

dir

路径映射或实体文件(根据司机)。如果该路径是相对的,他被认为是相对于束根。这只工作如果您的映射的名称是一个包的名字。如果你想使用这个选项来指定绝对路径应该前缀路径与内核参数中存在的迪拜国际资本(例如% kernel.root_dir %)。

前缀

一种常见的名称空间前缀,这种映射的所有实体。这个前缀不应该冲突与前缀定义映射,否则你的一些实体不能发现的教义。该选项默认包名称空间+实体为应用程序,例如包称为AcmeHelloBundle前缀Acme \ HelloBundle \实体

别名

学说提供了别名实体名称空间的简单,短名称用于DQL查询或存储库访问。当使用一个包别名默认包名称。

is_bundle

这个选项是派生值dir和默认设置真正的如果dir是相对的证明file_exists ()检查返回。它是如果存在检查回报真正的。在这种情况下,一个绝对路径指定和元数据文件很可能在一个目录以外的一个包。

自定义映射实体在一个包

教义的auto_mapping功能负荷配置的注释实体/每个包的目录寻找其他格式(例如YAML、XML)资源/ config /学说目录中。

如果你在包存储元数据在其他地方,你可以定义自己的映射,确切地告诉学说在哪里看,还有一些其他配置。

如果你使用auto_mapping配置,您只需要覆盖你想要的配置。在这种情况下重要的是映射配置对应的钥匙包的名称。

例如,假设您决定存储XML配置AppBundle中的实体@AppBundle /外域/ config /教义目录:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
原则:#……orm:#……auto_mapping:真正的映射:#……AppBundle:类型:xmldir:外域/ config /学说

映射实体以外的一个包

您还可以创建新的映射,例如Symfony以外的文件夹。ob娱乐下载

例如,下面是实体类的App \实体名称空间在src /实体目录和给他们一个应用程序别名(这样你就可以这样说应用:文章):

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12
原则:#……orm:#……映射:#……SomeEntityNamespace:类型:注释dir:' % kernel.root_dir % / . . / src /实体is_bundle:前缀:App \实体别名:应用程序

检测一个映射配置格式

如果类型包配置不设置,DoctrineBundle将试图发现正确的映射配置格式包。

DoctrineBundle将寻找匹配的文件* .orm。(格式)(如。Post.orm.yml)配置dir你的映射(如果你映射一个包dir是相对于包的目录)。

(按此顺序)的包看起来XML, YAML和PHP文件。使用auto_mapping功能,每包只能有一个配置格式。包就会停止定位。

如果不是可能确定一捆的配置格式,DoctrineBundle将检查是否有一个实体包的根目录文件夹。如果文件夹存在,学说将会回到使用注解驱动程序。

Dir的默认值

如果dir没有指定,那么它的默认值取决于所使用的是哪个配置驱动程序。驱动程序依赖于PHP文件(注释,staticphp)(包)/实体。驱动程序使用配置文件(XML、YAML…)(包)/资源/ config /教义

如果dir设置和配置is_bundle配置是真正的,DoctrineBundle将前缀dir配置包的路径。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。