Php Symfony2可重复使用的代码段函数
我最近在使用Symfony2,我一直在想什么时候应该创建服务,什么时候应该创建类 例如,我有一个非常可重用的代码片段函数。因此,我不希望控制器中有这段代码。这意味着我想在包中的任何地方使用它 这很简单,但它基本上会根据slug/path为我生成一个完整的url。现在请注意,这可能是其他任何东西,例如customStringGenerator()或其他任何东西 片段:Php Symfony2可重复使用的代码段函数,php,function,symfony,service,helpers,Php,Function,Symfony,Service,Helpers,我最近在使用Symfony2,我一直在想什么时候应该创建服务,什么时候应该创建类 例如,我有一个非常可重用的代码片段函数。因此,我不希望控制器中有这段代码。这意味着我想在包中的任何地方使用它 这很简单,但它基本上会根据slug/path为我生成一个完整的url。现在请注意,这可能是其他任何东西,例如customStringGenerator()或其他任何东西 片段: public function generateUrlFromPath(Request $request, $path) {
public function generateUrlFromPath(Request $request, $path)
{
return $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath() . $path;
}
现在,我可以创建某种Toolkit或UrlHelper类,并将其定义为服务,这样我就可以轻松地注入请求对象,但为这样一个简单的方法创建服务似乎有些过头了
在这种情况下,有人会提出什么建议?当你们创建了可重用的函数时,你们会怎么做
感谢您迄今为止的帮助。您可以使用可重用代码创建一个实用程序类,甚至是一个实用程序包。 请参阅以下带有说明的链接:
-
-
根据您的情况,您可以将“Helper”子文件夹(另一个命名空间)添加到包中,并从中使用其方法。当然,如果您只计划从该捆绑包中重用该代码,那么就需要这样做 您可以使用可重用代码创建实用程序类,甚至是实用程序包。 请参阅以下带有说明的链接:
-
-
根据您的情况,您可以将“Helper”子文件夹(另一个命名空间)添加到包中,并从中使用其方法。当然,如果您只计划从该捆绑包中重用该代码,那么就需要这样做 对于可重用性,我使用:
- 服务(当我需要通过构造函数注入其他依赖项时),所以您不必每次都手动执行
- 辅助控制器,我的控制器扩展它
- 具有公共静态函数的类
- Traits(PHP>=5.4),当您需要在几个类中共享相同的方法时,可以帮助克服单类继承限制
对于上面的函数,我个人会在Helper控制器中创建一个受保护的函数,但是服务也可以,即使它只是一小段代码。您以后可能会为该服务编写更多代码。为了可重用性,我使用:
- 服务(当我需要通过构造函数注入其他依赖项时),所以您不必每次都手动执行
- 辅助控制器,我的控制器扩展它
- 具有公共静态函数的类
- Traits(PHP>=5.4),当您需要在几个类中共享相同的方法时,可以帮助克服单类继承限制
对于上面的函数,我个人会在Helper控制器中创建一个受保护的函数,但是服务也可以,即使它只是一小段代码。您以后可能会为该服务编写更多代码。对于我来说,在这种情况下,扩展
请求
symfony服务是一个更好的选择,因为它只依赖请求
对象:对于我来说,在这种情况下,扩展Request
symfony服务是一个更好的选择,因为它只依赖Request
对象: