許多框架都提供了自己的數據庫抽象層,其中一些是設計在 [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