Symfony学习-01
来源:互联网 发布:c语言浮点数精度控制 编辑:程序博客网 时间:2024/05/22 04:49
昨天学习了Symfony,照着文档把CRUD做了遍,趁今天有空闲,写下自己的感受。
1、组件化
似乎所有的功能都是已组件的形式引入到框架里面,之前用的CakePHP也是这种思路。
HttpFoundation : Request Response其中就包括session、cookie、$_GET、$_POST的操作
http://symfony.com/doc/current/components/http_foundation.html
2、面向对象
Cookie创建
$response = new Response();
$response->headers->setCookie(new Cookie('username', 'zhangsan',3600));
$response->send();
将相应头对象,cookie本身分离开, 虽然有点麻烦, 但是很清晰的描述了cookie的创建过程。
In PHP, the request is represented by some global variables ($_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, ...)
and the response is generated by some functions (echo, header(), setcookie(), ...).
谈到面向对象,就想起了ThinkPHP,感觉虽然标榜自己是面向对象,但是看过源码和在使用过程中,个人感觉更多的还是在面向过程。
3、文档排版不习惯
之前的MVC框架都是按照文档都是分布在对应的架构层里面,symfony的文档是按照组件划分的, 要查看文档,首先得知道要查找的类容属于一个组件。如果一点不了解框架的设计思路,还真找不到文档在哪里。就拿Cookie 和 Session来说,在CakePHP是单独的两个组件, 而Symfony把他们都加入到了HttpFoundation组件中,找了很久才找到,刚开始还以为是文档不全。
4、数据库操作显得繁琐
从service容器中获取doctrine服务,--》获取对象管理器--》根据类名从对象容器中获取Entity实例--》获取数据对象
5、类似Java框架
感觉Symfony就是Java Spring和Struts的翻版,之前一直在用PHP eclipse开发,但是突然发现,Entity类没有get set 自动生成,手动输入很麻烦。要是有Hibernate反向自动生成就更好了。也是了解了Symfony才知道有doctrine 这样一个ORM框架。在操作Doctrine 时候,工具没有提示功能。
自动生成get、set方法:
参考:https://stackoverflow.com/questions/41044462/symfony-3-auto-generate-boolean-getters-and-setters-isactive-vs-getactive
[root@localhost symfony_test]# php bin/console doctrine:generate:entities AppBundle:Book
Generating entity "AppBundle\Entity\Book"
> backing up Book.php to Book.php~
> generating AppBundle\Entity\Book
[root@localhost symfony_test]#
- Symfony学习-01
- symfony 学习
- Symfony 学习
- symfony学习笔记--第一步,安装symfony
- symfony学习笔记20170405 新建symfony项目
- Symfony中文学习资源
- Symfony学习文档
- symfony 学习 1 命令
- 今天继续学习symfony
- symfony学习笔记20170117
- Symfony 01:简介
- symfony
- symfony
- Symfony
- symfony
- symfony
- symfony
- symfony
- 基于jquery中children()与find()的区别介绍
- 使用宏实现两个数中求较大值(C语言)
- BZOJ 3343 教主的魔法 分块
- 文科生细谈学习Linux系统的重要性
- 经验分享:C/C++做cifar-10转换成图片
- Symfony学习-01
- JDK/JAVA 1.5到1.9版本特性对比
- 41:判断元素是否存在(编程基础之综合应用)
- 关于静态内部类结合WeakReference避免内存泄露,同时可访问外部类的成员
- Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用
- Spring配置Mybatis执行原生SQL语句
- Android正式和开发环境下切换操作,BuildConfig帮你一步到位
- JAVAAPI学习之Calendar类
- 数据延时理论