Symfony 2 无法解决 Construct
Posted
技术标签:
【中文标题】Symfony 2 无法解决 Construct【英文标题】:Symfony 2 Can't solve Construct 【发布时间】:2017-03-17 07:04:44 【问题描述】:我收到了这个错误
php Fatal error: Uncaught exception 'Symfony\\Component\\Debug\\Exception\\ContextErrorException' with message 'Catchable Fatal Error: Argument 8 passed to Sonata\\MediaBundle\\Provider\\ImageProvider::__construct() must implement interface Imagine\\Image\\ImagineInterface, none given, called in
我的服务:
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'));
我想要做的是创建相同的 ImageProvider。但我不断收到该错误: 我几乎尝试了一切。但总是以这个错误结束。 也许我错过了什么。也许我的服务配置是错误的。 但它与 ImageProvider 相同。所以应该没问题
【问题讨论】:
【参考方案1】:你没有忘记你父母的构造调用中的一个参数: $adapter 应该在 $allowedMimeTypes 和 $metadata 之间
如果您想在之后设置它,则为 null (...allowedMimeTypes, null, $metadata)
【讨论】:
这没有帮助。函数 __construct 发生错误【参考方案2】:看起来是我的 api 缓存问题。清除所有缓存后解决。
【讨论】:
以上是关于Symfony 2 无法解决 Construct的主要内容,如果未能解决你的问题,请参考以下文章
Symfony Apache 2:无法创建缓存目录 /var/cache
无法读取Dotenv.php中的“../.dev.env”环境文件:symfony
如何解决 Symfony2 中的“无法创建“%kernel.root_dir%/../web/uploads”目录”错误