您的位置:首页 > 数据库

【Symfony2官方文档翻译】Book04:Doctrine02-数据库抽象层(DBAL)

2014-11-27 00:00 716 查看
原文出处:http://symfony.com/doc/current/book/doctrine.html
原文作者:Symfony.com
翻译人员:FireHare
校对人员:FireHare
适用版本:Symfony 2
文章状态:已校对

Doctrine数据库抽象层(DBAL)是一个构建在PDO之上的抽象层,它为大多数流行的关系性数据库提供直接灵活的API。
你可以从官方文档中读到更多关于Doctrine DBAL 的内容。
首先,配置数据库连接参数:
# app/config/config.yml
doctrine:
    dbal:
        driver:   pdo_mysql
        dbname:   Symfony2
        user:     root
        password: null



DoctrineBundle支持缺省Doctrine驱动所接受的全部参数,Symfony2可以强制转换为XML或YAML的命名标准。更多细节请参见Doctrine DBAL 文档。
你可以通过database_connection服务来访问Doctrine DBAL连接。
class UserController extends Controller
{
    public function indexAction()
    {
        $conn = $this->get('database_connection');
        $users = $conn->fetchAll('SELECT * FROM users');
  
        // ...
    }
}



配置
除了缺省的Doctrine选项外,你还可以配置一些Symfony相关的选项。下面显示所有可能的配置关键词:
doctrine:
    dbal:
        dbname:               database
        host:                 localhost
        port:                 1234
        user:                 user
        password:             secret
        driver:               pdo_mysql
        driver_class:         MyNamespace\MyDriverImpl
        options:
            foo: bar
        path:                 %kernel.data_dir%/data.sqlite
        memory:               true
        unix_socket:          /tmp/mysql.sock
        wrapper_class:        MyDoctrineDbalConnectionWrapper
        charset:              UTF8
        logging:              %kernel.debug%
        platform_service:     MyOwnDatabasePlatformService

如果你想在YAML中配置多个连接,请将它们放置在connections关键词下并赋予它们唯一的名字:
doctrine: 
    dbal: 
        default_connection:       default 
        connections: 
            default: 
                dbname:           Symfony2 
                user:             root 
                password:         null 
                host:             localhost 
            customer: 
                dbname:           customer 
                user:             root 
                password:         null 
                host:             localhost



database_connection服务总是指向缺省连接的,该连接被第一个定义或使用default_connection参数的那个配置。
每个连接也可以通过doctrine.dbal.[name]_connection服务来访问,其中[name]是连接名。
注册自定义映射类型
你可以通过配置注册自定义的映射类型,它们将被添加到所有的配置连接中。
# app/config/config.yml
doctrine:
    dbal:
        types:
            custom_first: Acme\HelloBundle\Type\CustomFirst
            custom_second: Acme\HelloBundle\Type\CustomSecond
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: