许多框架都提供了自己的数据库抽象层,其中一些是设计在 [PDO](http://php.net/book.pdo) 的上层的。这些抽象层通常将你的请求在 PHP 方法中包装起来,通过模拟的方式来使你的数据库拥有一些之前不支持的功能。这种抽象是真正的数据库抽象,而不单单只是 PDO 提供的数据库连接抽象。这类抽象的确会增加一定程度的性能开销,但如果你正在设计的应用程序需要同时使用 MySQL,PostgreSQL 和 SQLite 时,一点点的额外性能开销对于代码整洁度的提高来说还是很值得的。
有一些抽象层使用的是[PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) 或 [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md) 命名空间标准,所以他们可以安装在任何你需要的应用程序中。
* [Aura SQL](https://github.com/auraphp/Aura.Sql)
* [Doctrine2 DBAL](http://www.doctrine-project.org/projects/dbal.html)
* [Propel](http://propelorm.org/)
* [ZF2 Db](http://packages.zendframework.com/docs/latest/manual/en/index.html#zend-db)
- 欢迎
- 入门指南
- 使用当前稳定版本
- 内置的WEB服务器
- Mac安装
- Windows安装
- 代码风格指南
- 语言亮点
- 编程范式
- 命名空间
- PHP标准库
- 命令行接口
- Xdebug
- 依赖管理
- Composer 与 Packagist
- PEAR
- 开发实践
- 基础知识
- 日期和时间
- 设计模式
- 使用UTF8编码
- 依赖注入
- 基本概念
- 复杂的问题
- 容器
- 延伸阅读
- 数据库
- MYSQL 扩展
- PDO 扩展
- 数据库交互
- 数据库抽象层
- 使用模板
- 好处
- 原生PHP模板
- 编译模板
- 延伸阅读
- 错误与异常
- 错误
- 异常
- 安全
- Web应用程序安全
- 密码哈希
- 数据过滤
- 配置文件
- 注册全局变量
- 错误报告
- 测试
- 测试驱动开发
- 行为驱动开发
- 其他测试工具
- 服务器与部署
- Platform as a Service (PaaS)
- 虚拟或专用服务器
- 共享服务器
- 构建及部署应用
- 虚拟化
- Vagrant
- Docker
- 缓存
- Opcode缓存
- 对象缓存
- 文档撰写
- 资源
- 社区
- Credits