Symfony 一些介绍
Symfony 一些介绍:
- 路由:能限制 hostname,这就让有大量公共功能的网站可以共用一套代码;URI 识别支持 Reg 检测,让 url 能定义的随心所欲;支持前缀,import,便于模块化。
- Twig模板:这是我最喜欢的一个组件。它提供了一套不同于 php,但非常适合处理复杂网站结构,页面结构的语法。extension 很方便也很强大,通用的操作通过 extension 能很好的表达,比如需要缓存页面的某个模块到 redis ,写一个 ViewExtension,就能在模板里面用一个方法来缓存特定模块了,非常方便,代码也很容易管理。
- composer包管理:让代码的依赖关系变得很清晰。而且现在第三方有很多不错的 bundle,比如抽象 redis 的 snc/redis-bundle,处理图片的 liip/imagine-bundle,第三方登录的 hwi/oauth-bundle 等等等等。随着自己项目的逐渐成熟,也可以把项目对 Symfony 的定制独立出来用 composer 来管理,感觉挺不错的。
- Event,Listener 和 Services:非常方便的全局功能处理。惹人讨厌的是配置起来很麻烦,我用的是 yml 配置文件,为了找对路的语法真是掉了一层皮。
- Doctrine ORM:一个好处是不用去纠结于数据库的细节,而只需仔细的设计需要持久化的对象。对象之间的关系可以自由设计,从生成数据库结构到生成查询语句的过程都不用再操心了。另一个好处是查询的时候,可以不用 sql,dql 这种依赖字符串来表达的查询,而采用对象式,sql 因为是单纯的字符串,整个查询逻辑的控制用代码表达起来很麻烦。
- Form组件:Symfony 提供了 form 生成,提交以及验证的功能。组件抽象了三个方面的东西:formType 来维护需要填写保存的值,formTheme 来定义表单的 html 结构,以及 validation 提供数据验证的功能。这个组件的缺点也很明显,概念太复杂了,如果遇到要自己定义一个 field,简直就是自找麻烦。
- 性能:Symfony 提供了一个极好的组件叫 profile,能以图形化的形式显示各个部分代码执行的时间,消耗的内存,还有数据库查询的语句,查询的行数,用到的索引的。配合这个工具来优化代码,可以让网站跑得飞快。
性能不是问题,优化的空间非常大,但你至少的是常读源代码的这个级别才能让它的性能上得了台面。学习成本高也是个问题,类似于学习 vim 的感觉,熟悉起来非常美好,不然的话...
Symfony 一些介绍的更多相关文章
- 《Symfony 5全面开发》教程01、Symfony介绍
大家好,我是伟伟权,你正在观看的是<Symfony5全面开发>视频教程. Symfony是一款优秀的PHP框架,我们到Symfony官网来查看一下Symfony的介绍.Symfony是一组 ...
- php设计模式笔记--总结篇
一.引入 设计模式的一般定义不再说,只大概说一下我理解的设计模式,我理解的设计模式的主要目的是利用面向对象(类.接口等)特点,让代码更加易于扩展,易于重用,易于维护.这三个特点也就要求我们不要将太多 ...
- Windows Azure 上的 Symfony,适用于 PHP 开发者的强大组合
发布于 2014-06-13 作者 陈 忠岳 Symfony 是针对 PHP 开发者的流行开源 Web 应用框架.现在,您可以更轻松地在 Windows Azure 上使用它,这都归功于 Ben ...
- symfony2 登录验证(转自http://www.newlifeclan.com/symfony/archives/300)
注意:如果你需要为存储在某种数据库中的用户做一个登录表单,那么你应该考虑使用FOSUserBundle,这有助于你建立你的User对象,还为您提供了常见的登录.注册.忘记密码的路由和控制器. 在此文章 ...
- 跑github上的Symfony项目遇到的问题2
最近学习symfony框架,下载了大量的github上的别人的项目,要想跑起别人的项目,总结了以下几个步骤: 第一, 克隆一份代码; 第二,安装依赖,前提是安装了composer, 1:在你下载的项目 ...
- PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony
这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...
- 安装和配置Symfony
为了简化创建新项目的过程,Symfony提供一个安装程序. 安装Symfony Installer 使用Symfony Installer是创建新的Symfony项目的唯一推荐方式,这个install ...
- 主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgniter,Symfony,ThinkPHP,FleaPHP)
Zend Framework 优点: Zend Framework大量应用了PHP5中面向对象的新特征:接口.异常.抽象类.SPL等等.这些东西的应用让Zend Framework具有高度的模块化和灵 ...
- windows 下 Symfony的下载与安装
初始化项目 本篇教程我尽量按照Windows/*nix都可以运行的方式来讲解. 得益于Symfony installer,我们目前可以很方便的初始化一个Symfony2项目.不过首先,你得有一个Sym ...
随机推荐
- unity, get Canvas Scaler referenceResolution
需要using UnityEngine.UI; 然后就可以访问到CanvasScaler组件. float width=GetComponent<CanvasScaler> ().refe ...
- Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结
Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结 1.1. 要兼容的重要语言api1 1.2. 常用基础api分类 core api1 1.3. 比较常用的扩展库 ...
- 使用 ObjectDataSource 缓存数据
简介 就计算机科学而言 , 缓存 过程包括成本昂贵的数据或信息的获取 , 以及将备份存储在可快速访问的位置.对于数据驱动的应用程序,大型.复杂的查询通常会消耗大量应用程序执行时间.要提升这类应用程序的 ...
- UML类图详解_泛化关系
泛化其实就是继承关系,还是比较简单的,那么我们就把之前有些问题的博客UML类图重新来实现一次. 依旧是这个图 下面我们来看一个例子 Account.h #include <cstdlib> ...
- linux学习之vimrc配置推荐
,gb2312,gbk,gb18030,big5 "去掉vi一致性 set nocompatible ""设置行号 set number "打开文件类型自动检测 ...
- javascript中实现sleep函数
function sleep(d){ for(var t = Date.now();Date.now() - t <= d;);}
- pdfBox 读取pdf文件
1.引入maven依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pd ...
- 设计模式中类的关系之依赖关系(Dependence)
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的. ...
- webpack 3.x loader
css-loader webpack配置 module:{ rules:[ { test:/\.css$/, use:['style-loader',css-loader] //顺序不能变 } ] } ...
- linux oracle error解决记录
1.sqlplus / as sysdba后使用select instance_name,status from v$instance后出错: ERROR:ORA-01034: ORACLE not ...