ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Symfony的学习

2021-02-25 12:51:28  阅读:270  来源: 互联网

标签:Symfony 映射 学习 Doctrine sql 注解 PHP


最近又抽时间整理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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有