Php symfony2.3关于服务、控制器、控制器即服务的性能提示

Php symfony2.3关于服务、控制器、控制器即服务的性能提示,php,performance,symfony,service,Php,Performance,Symfony,Service,就服务、控制器作为服务或使用某种辅助对象来完成工作之间的性能而言,主要区别是什么 更准确地说,对于这个场景/用例: 我在mysite/API上有一个API,我的问题是: 将控制器定义为服务、将服务本身或以“经典方式”将控制器作为完成所有工作的辅助对象(作为小型库)来完成大部分工作,这样做更好吗 辅助对象我的意思是使用一个类的距离,我想每次调用api时,都要创建一个新的对象(我认为性能不太好) 感谢您的回答。不会有任何显著的性能差异,而且这三种方法都是绝对有效的,它只影响您的用例 需要注意的是:控

就服务、控制器作为服务或使用某种辅助对象来完成工作之间的性能而言,主要区别是什么

更准确地说,对于这个场景/用例:

我在mysite/API上有一个API,我的问题是:

控制器定义为服务、将服务本身或以“经典方式”将控制器作为完成所有工作的辅助对象(作为小型库)来完成大部分工作,这样做更好吗

辅助对象我的意思是使用一个类的距离,我想每次调用api时,都要创建一个新的对象(我认为性能不太好)


感谢您的回答。

不会有任何显著的性能差异,而且这三种方法都是绝对有效的,它只影响您的用例

需要注意的是:控制器基本上是服务,在Symfony中默认情况下它们只是容器感知的(使它们成为服务定位器)。不管控制器是一个服务、一个ContainerWareInterface对象还是您创建的某个对象,都必须以任何方式进行实例化

也就是说,控制器只是在每个请求上创建的数百(如果不是数千)个对象中的一个,实例化它所需的时间实际上可以忽略不计

使用任何最适合你的方法

编辑 见鬼,默认情况下,symfony控制器甚至不是containerware,它们只是在示例中这样做的,因为它们总是扩展
symfony\Bundle\FrameworkBundle\Controller\Controller
。您可以尝试创建一个
控制器
类,如下所示:

<?php

namespace MyVendor\MyBundle\Controller;

class MyCustomController
{
    public function myAction()
    {
        // do your thing here
    }
}

使用哪种方法没有区别。但是还有很多其他问题——RESTAPI路由、格式、文档等等。 使用RESTAPI的现成解决方案