Php symfony2.3关于服务、控制器、控制器即服务的性能提示
就服务、控制器作为服务或使用某种辅助对象来完成工作之间的性能而言,主要区别是什么 更准确地说,对于这个场景/用例: 我在mysite/API上有一个API,我的问题是: 将控制器定义为服务、将服务本身或以“经典方式”将控制器作为完成所有工作的辅助对象(作为小型库)来完成大部分工作,这样做更好吗 辅助对象我的意思是使用一个类的距离,我想每次调用api时,都要创建一个新的对象(我认为性能不太好)Php symfony2.3关于服务、控制器、控制器即服务的性能提示,php,performance,symfony,service,Php,Performance,Symfony,Service,就服务、控制器作为服务或使用某种辅助对象来完成工作之间的性能而言,主要区别是什么 更准确地说,对于这个场景/用例: 我在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的现成解决方案