我应该在哪里放置一个ImageManager类在Symfony2中?

时间:2012-08-30 18:54:20

标签: php symfony symfony-2.1

我有这个MongoDB文档:MyBundle/Document/Image

它代表图像,路径,宽度和其他属性。

现在我需要操作图像,我认为除了我选择的图像处理库之外,我应该有一个特定于应用程序的类来处理这个问题。我认为做这样的事情会很好:

$image_manager = new ImageManager;
$image = $image_repository->find($id);
$thumbnail = $image_manager->createThumbnail($image);

现在,我不确定我是否希望我的ImageManager类也处理MongoDB查询,比如自定义存储库,所以我想我不这样做。那我应该在哪里放置我的ImageManager类?

你觉得让它处理这两种任务是不对的吗? (例如:createThumbnailfindAllImagesWithoutThumbnail

2 个答案:

答案 0 :(得分:1)

我的应用中有Service个文件夹,其中包含所有服务,例如:

  • UserService
  • User\AvatarService
  • OrganizationService
  • 等...

当然,您可以使用Manager代替Service,但这个想法是一样的。

大多数情况下,我的服务都有以下方法:

  • find($id)
  • save(Class $class)
  • delete(Class $class)
  • 等...

某些服务还有其他方法。例如,User\AvatarService使用upload()方法处理上传头像文件。

BTW,我keep my services out of bundles

答案 1 :(得分:0)

我在symfony2中使用WideImage。我只是把它放在供应商中并将其添加到AppKernel.php和autoload。它在项目范围内可见。