新在Symfo欧宝娱乐app下载地址ny 2.3:还有什么?
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
2.3欧宝娱乐app下载地址 Symfony将是今天发布,让我们回顾一些改进,我还没有来得及写。
懒惰的服务
Symf欧宝娱乐app下载地址ony的依赖注入容器已经稳定了很长时间了,和懒惰的引入服务可能是最重要的功能,添加了自2.0。
它是什么呢?当你得到一个从容器服务,有一个成本。这个成本是直接关系到依赖服务的数量和所花费的时间创建它们。但是一些依赖关系可能会花费很长的时间来初始化:认为web服务端点,数据库连接,梅勒初始化,…
减少创建服务的成本,你可能代理服务能够尽可能晚地执行缓慢的代码。2.3,使用懒惰的服务是一个内置的特性Symfony的依赖注入容器。欧宝娱乐app下载地址使用它是一个微风;宣布你的服务为懒惰:
1 2 3 4
服务:foo:类:Acme Foo \懒惰:真正的
那么,为什么不将所有服务声明为懒惰呢?你可以想象,有一些缺点。阅读关于新篇章懒惰的服务要学习更多的知识。
同步服务
当开发人员与依赖注入容器有问题,这往往是因为他们的服务取决于请求。为什么?因为这个请求有点特殊:它只能在一个HTTP请求的处理,和实例修改如果有一些子请求;考虑到这些特异性,请求在不同的范围请求范围。打开了很多潜在的问题。我不会让他们在这里,他们中的大多数已经被“固定”在2.3。
2.3,如果你通过setter注入的请求,您的服务请求中不需要范围了,和Symfony会自动叫它只要请求更改:欧宝娱乐app下载地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
/ / src / Acme / HelloBundle /邮件/ Mailer.php名称空间Acme\HelloBundle\邮件;使用欧宝娱乐app下载地址\组件\HttpFoundation\请求;类梅勒{受保护的美元请求;公共函数setRequest(请求美元请求= null){美元这- >请求=美元请求;}公共函数sendEmail(){如果(零= = =美元这- >请求){/ /抛出一个错误?}/ /……使用请求做某事吗}}
每当一个请求
输入或叶的,服务容器会自动调用吗setRequest ()
方法与当前请求
实例。
您可能已经注意到,setRequest ()
方法接受零
作为一个有效的值请求
论点。这是因为当离开请求
范围,请求
实例可以零
(例如主请求)。
的食谱作用域已经更新,它解释了一切你应该知道范围和要求。
CSS选择器
CSS选择器组件有一些限制2.3之前不容易可以解决的。所以,我们决定从头重写它但我们一直完全相同的API。你现在可以享受一个更好的支持先进的CSS选择器,你仍然可以使用相同的API。
国际化
intl PHP扩展和ICU库是伟大的工具,但他们也安装一个噩梦。为了缓解一些,Bernhard创建了两个新组件:Icu和Intl。
Intl组件是一个简单的替代C Intl扩展层。安装它通过作曲家和它可以自动如果intl扩展是不可用的。
如果安装intl扩展,作曲家将安装ICU重症监护病房数据版本intl扩展。如果没有安装,intl扩展作曲家将使用存根ICU重症监护病房数据最新版本。
一如既往地,官方的欧宝体育电话是最好的起点。
比较验证器
这个花了很长时间被合并(公关是一个最古老的一个仍然打开:790号)。你知道可以用比较约束和验证:
等于
;NotEqualTo
;IdenticalTo
;NotIdenticalTo
;不超过
;LessThanOrEqual
;GreaterThan
;GreaterThanOrEqual
。
我可曾说文档团队做一个很棒的工作吗?欧宝体育电话是的,所有这些新约束已经记录。
提供的
康斯坦丁·Myakshin
在# 6474。
致命错误日志
没人喜欢白页,或蓝色的。每当发生致命错误,您需要理解发生了什么……甚至在生产环境中。这就是为什么致命错误日志的Symfony 2.3是一个小但是很好的补充。欧宝娱乐app下载地址最棒的是,你不需要做任何事情,它出来的盒子。
结束
这是最后一篇博文约Symfony 2.3新特性。欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony 2.3附带更善良表单处理器,一个一致的客户端实现或自定义模板逃离猜测;但这可能是一次做一个版本现在…很快回来庆祝2.3的释放。
评论
谢谢你的一切,像往常一样,-)
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
顺便说一句,我爱这些帖子总结关于即将到来的2.3特性和变化。保持良好的工作。
Daniel Richter is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now