Doctrine是一个先进的PHP库,用于面向对象的数据库工作。Doctrine的主要目的和目标是使用数据实体描述数据库模式,并以完全面向对象的方式操作数据。
这种范式被称为ORM(Object-relational mapping),它是[设计模式](/design-pattern),用于将存储在关系数据库中的数据转换(包装)为可用于面向对象语言的对象。因此,要理解和使用Doctrine,你至少要知道面向对象编程的基础知识。
有很多原因。
本文作者(Jan Barasek)长期坚持的观点是,Doctrine是与PHP数据库合作的最佳方式。它根本没有竞争对手。
在你开始全面使用Doctrine之前,你需要准备一个合适的环境。如果你刚开始接触PHP或者没有高级知识,最好的选择是用Baraja Doctrine扩展包安装Nette框架,它自动集成了全面支持。首先通过Composer下载软件包,然后设置DI扩展,Doctrine将自动开始工作。
为了让Doctrine正常工作,你需要准备一个空的数据库(Doctrine也可以在现有的项目中工作,但这对第一步来说是不合适的,因为它有覆盖现有数据的风险)并配置连接。由于Doctrine不仅仅是一个数据库库,而是提供了一个先进的数据库框架,你需要解决其他配置。大多数设置在该软件包中被自动覆盖,然而在最低配置中,你的服务器必须支持APCu Cache
或SQLite3
扩展。
如果一切配置正确,一个新的DI服务Baraja\Doctrine\EntityManager
将在Nette中被创建,你可以把它注入到Presenter。
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
如果你设法注入基本的EntityManager服务,你就可以开始学习和使用Doctrine。
以下各章结合了Doctrine技术参考指南、多年的经验、设计模式和现成的解决方案。我们将一起探讨Doctrine的所有基本要素,从定义你自己的实体,到生成物理数据库模式,再到使用版本工具和生产部署。
我使用Doctrine已经很长时间了,并在其中解决了成千上万的案件。我们将展示如何使用Doctrine来优化数据库速度以及如何合理设计数据库的技巧和窍门。你也可以对现有项目使用Doctrine(如果你满足某些条件),我们将向你展示如何做到这一点。
这一系列的文章是为了帮助我的培训和咨询学生。如果你需要更详细地讨论或解释某些主题,你可以给我发电子邮件,jan@barasek.com。由于这是一项要求相对较高的技术,所有的问题都将被视为付费咨询。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | zh