Symfony 2无法解决Construct

时间:2016-11-03 15:46:44

标签: symfony sonata sonata-media-bundle

我收到此错误

sonata.media.provider.cropper:
    class: %cmy_sonata_media.custom_class_cropper%
    tags:
        - { name: sonata.media.provider }
    arguments:
        - sonata.media.provider.cropper
        - @sonata.media.filesystem.local
        - @sonata.media.cdn.server
        - @sonata.media.generator.default
        - @sonata.media.thumbnail.format
        - ['jpg', 'png', 'jpeg']
        - ['image/jpeg', 'image/png']
        - @sonata.media.adapter.image.gd
        - @sonata.media.metadata.proxy
    calls:
        - [ setTemplates, [ { helper_thumbnail: SonataMediaBundle:Provider:thumbnail.html.twig, helper_view: SonataMediaBundle:Provider:view_image.html.twig } ] ]

我的服务:

class ImageCropperProvider extends ImageProvider
{

protected $imagineAdapter;

/**
 * @param string                                                $name
 * @param \Gaufrette\Filesystem                                 $filesystem
 * @param \Sonata\MediaBundle\CDN\CDNInterface                  $cdn
 * @param \Sonata\MediaBundle\Generator\GeneratorInterface      $pathGenerator
 * @param \Sonata\MediaBundle\Thumbnail\ThumbnailInterface      $thumbnail
 * @param array                                                 $allowedExtensions
 * @param array                                                 $allowedMimeTypes
 * @param \Imagine\Image\ImagineInterface                       $adapter
 * @param \Sonata\MediaBundle\Metadata\MetadataBuilderInterface $metadata
 */
public function __construct($name, Filesystem $filesystem, CDNInterface $cdn, GeneratorInterface $pathGenerator, ThumbnailInterface $thumbnail, array $allowedExtensions = array(), array $allowedMimeTypes = array(), ImagineInterface $adapter, MetadataBuilderInterface $metadata = null)
{

    parent::__construct($name, $filesystem, $cdn, $pathGenerator, $thumbnail, $allowedExtensions, $allowedMimeTypes, $metadata);

    $this->imagineAdapter = $adapter;
}

public function getProviderMetadata()
{
    return new Metadata($this->getName(), $this->getName().'.description', false, 'SonataMediaBundle', array('class' => 'fa fa-crop'));
}
}

我的提供者

{{1}}

我想要做的是创建相同的ImageProvider。但我一直收到这个错误: 我几乎尝试了一切。但总是以这个错误结束。 也许我想念一些东西。也许我的服务配置错了。 但它与ImageProvider完全相同。所以它应该没问题

2 个答案:

答案 0 :(得分:1)

你没有在父母的构造调用中忘记一个参数: $ adapter应介于$ allowedMimeTypes和$ metadata

之间

如果你想在之后设置它,则返回null(... allowedMimeTypes,null,$ metadata)

答案 1 :(得分:1)

它看起来像是我的api缓存问题。清除所有缓存后解决。