最近又抽时间整理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更多的相关组件用法,后续继续

©著作权归作者所有:来自51CTO博客作者jackdongting的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. 全息电力行业解决方案
  2. Druid源码分析与架构介绍
  3. 【Nest教程】数据验证class-validator
  4. 讲一讲ES6新增的两种数据结构Map和Set
  5. 【Nest教程】自定义拦截器处理处理响应数据
  6. 【Nest教程】连接MySQL数据库
  7. 数据库CURD常用操作-select查询-预处理
  8. Sql Server之旅——第三站 解惑那些背了多年聚集索引的人
  9. Sql Server之旅——第二站 理解讨厌的表扫描

随机推荐

  1. 安装nginx并配置php环境
  2. 在Yii中获取当前控制器和操作ID
  3. 基于PHP聊天室的编程思想
  4. 检查PHP是否启用了JavaScript
  5. php计算几分钟前、几小时前、几天前的几
  6. jQuery ajax调用不会调用我的php页面
  7. 复制到剪贴板没有瑞士法郎。只使用javasc
  8. 使用codeigniter发布到wordpress.com博客
  9. 用简单的馅饼从原子进料中拉出
  10. php curl模拟登陆抓取数据