php – Silex服务 – $app参数或“use($app)”语句?
如果我在Silex应用程序中定义一个服务,我可以期望主容器(Application)作为参数传递,或者可以使用“use($app)”语句从当前作用域中获取它. http://silex.sensiolabs.org/doc/services.html的官方文档有这个片段:
但它可以同样写成
我已经看过很多这样的代码示例.它只是个人品味还是其中一种比其他产品更有优势,例如性能,内存使用或代码隔离? 编辑:
第一个是最慢的,但总体差异小于25%.并且作为任何微优化,只有当你有成千上万的这些时才会引人注意,因为最快和最慢之间的时差约为1 / 10,000,000秒(100万代表为0.05). 因此不应考虑性能差异. 解决方法: 这是一个直接的答案:没有实际的区别.我可以看到使用($app)不起作用的唯一情况是在单独的文件中定义一些条目. 以下是你好奇的事情;) 在参数中再次传递容器的优点是它允许Silex传递另一个容器实例. Silex不这样做,所以它不会影响你.但其他一些容器呢. 容器执行此操作的主要原因是,如果您有一个具有多个容器的复杂设置,这些容器一个接一个地链接:ParentContainer – >子容器.在SubContainer中定义条目时,您希望能够从父容器中获取依赖项(它将自动查看子容器中的依赖项).因此,子容器将在closure参数中传递parentcontainer. 这是一个高级(和罕见)用例,但知道它很有趣;) (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |