Symfony的学习
作者:互联网
最近又抽时间整理PHP的框架,发现Yii2的文档,尤其是中文化比较多,但是Symfony的文档中文化比较落后,不过也是够用的。
Symfony4,Symfony5现在已经用的挺多的了,但是Symfony应该算是现实意义的PHP标准代码库
里面含有很多组件,都是可以学习和使用的,后面有时间陆续分析一下每个组件的基本思路,之前的TP的整体调用逻辑,我如今看来也是非常有感觉和帮助。主要是官网虽然有,但是没有提及到里面具体的实现,状态。说白了,没有直接联系每一行代码,就让人有距离感
我觉得就框架的调用思路而言,之前的TP的调用流程,应该是通用的。
我还是很喜欢Symfony,尤其是symfony5的快速开发,
涉及到web开发的方方面面,包括不限于配置的类型,路由,HTTP请求的流程,Controller的本质,Doctrine的对象映射,几种常见的数据库mysql,PostgreSQL,sqlite,
Docker-compose的服务编配与配置,git的版本控制,分支开发,测试合并,测试,开发,生产环境的git操作与部署,数据库的迁移和更新,PHP常规的PC端常用的模板引擎,单页面应用的webpack,API的开发。
今天聊一下Doctirne
这是一个对象映射的组件。
它可以实现数据的结构化,给业务逻辑提供数据支撑。有了数据结构,程序就能正常运行。数据的持久化是次要的,这一点我很认同。
虽然它没有更加灵活的model,service但是看看Java的发展,JavaBean,Servlet的组合,我觉得这个Symfony的逻辑思路还是可行的。
Doctrine的第一步是创建实体Entity
第二步是创建实体的关系和联系Relation
第三是创建实体的操作和数据逻辑处理Repository
虽然不太同于model的Entity,但是还是有一些相同之处
(不太方便的就是SQL的表设计范例,关系是放在第三张表的)
还又不太相似Service的Repository
相似的是不仅支持model对象的流式sql写法和DB的sql写法
Doctrine提供了更加规范的DQL和Query Builder.这两个对于熟悉SQL的使用者,应该比较熟悉
比较陌生的就是注解。
建立的php普通的类是和Doctrine没有关系的,只有出现了注解,注解有几种形式,xml,yaml,annotation.
注解就是告诉Doctrine,类是如何与数据库映射的,包括关系,联系和操作,字段,字段属性,表结构
这里面就用到了注解的解析器
use Doctrine\ORM\Mapping as ORM;
就是通过PHP反射API获得注解,然后映射出来所有的元数据信息
通过得到的元数据,生成一列的sql语句
持久化有两种方案:
1.doctrine:schame的一系列命令,可以用于开发环境,不可追溯
2.make:migration
通过这两个就可以生成很多sql,将数据持久化到数据库
关于Doctrine更多的相关组件用法,后续继续
标签:Symfony,映射,学习,Doctrine,sql,注解,PHP 来源: https://blog.51cto.com/10725691/2636929