Symfony2Book04:Doctrine02-数据库抽象层(DBAL)

Doctrine数据库抽象层(DBAL)是一个构建在PDO之上的抽象层,它为大多数流行的关系性数据库提供直接灵活的API。

你可以从官方文档中读到更多关于Doctrine DBAL 的内容。

首先,配置数据库连接参数:

 
 
  1. # app/config/config.yml 
  2. doctrine: 
  3.     dbal: 
  4.         driver:   pdo_mysql 
  5.         dbname:   Symfony2 
  6.         user:     root 
  7.         passwordnull 

DoctrineBundle支持缺省Doctrine驱动所接受的全部参数,Symfony2可以强制转换为XML或YAML的命名标准。更多细节请参见Doctrine DBAL 文档。

你可以通过database_connection服务来访问Doctrine DBAL连接。

 
 
  1. class UserController extends Controller 
  2.     public function indexAction() 
  3.     { 
  4.         $conn = $this->get('database_connection'); 
  5.         $users = $conn->fetchAll('SELECT * FROM users'); 
  6.  
  7.         // ... 
  8.     } 

配置

除了缺省的Doctrine选项外,你还可以配置一些Symfony相关的选项。下面显示所有可能的配置关键词:

 
 
  1. doctrine: 
  2.     dbal: 
  3.         dbname:               database 
  4.         host:                 localhost 
  5.         port:                 1234 
  6.         user:                 user 
  7.         password:             secret 
  8.         driver:               pdo_mysql 
  9.         driver_class:         MyNamespace\MyDriverImpl 
  10.         options: 
  11.             foo: bar 
  12.         path:                 %kernel.data_dir%/data.sqlite 
  13.         memory:               true 
  14.         unix_socket:          /tmp/mysql.sock 
  15.         wrapper_class:        MyDoctrineDbalConnectionWrapper 
  16.         charset:              UTF8 
  17.         logging:              %kernel.debug% 
  18.         platform_service:     MyOwnDatabasePlatformService 

如果你想在YAML中配置多个连接,请将它们放置在connections关键词下并赋予它们唯一的名字:

 
 
  1. doctrine:  
  2.     dbal:  
  3.         default_connection:       default  
  4.         connections:  
  5.             default:  
  6.                 dbname:           Symfony2  
  7.                 user:             root  
  8.                 password:         null  
  9.                 host:             localhost  
  10.             customer:  
  11.                 dbname:           customer  
  12.                 user:             root  
  13.                 password:         null  
  14.                 host:             localhost  

database_connection服务总是指向缺省连接的,该连接被第一个定义或使用default_connection参数的那个配置。

每个连接也可以通过doctrine.dbal.[name]_connection服务来访问,其中[name]是连接名。

注册自定义映射类型

你可以通过配置注册自定义的映射类型,它们将被添加到所有的配置连接中。

 
 
  1. # app/config/config.yml 
  2. doctrine: 
  3.     dbal: 
  4.         types: 
  5.             custom_first: Acme\HelloBundle\Type\CustomFirst 
  6.             custom_second: Acme\HelloBundle\Type\CustomSecond
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值