사용자 지정 공급자를 작성하는 방법에 대한 공식 설명서에는 example이 있지만 작동하지 않습니다.소나타 미디어 번들 - 맞춤형 제공 업체를 작성하는 방법?
내 질문은 : 사용자 지정 공급자를 작성하는 가장 좋은 방법은 무엇입니까? 특히 새 서비스로 공급자를 작성하고 등록하는 방법은 무엇입니까?
설명서에서 this code을 사용하려고하면 인수 유형에 대한 오류가 발생합니다. 빈 인수 란 무엇입니까?
감사합니다.
사용자 지정 공급자를 작성하는 방법에 대한 공식 설명서에는 example이 있지만 작동하지 않습니다.소나타 미디어 번들 - 맞춤형 제공 업체를 작성하는 방법?
내 질문은 : 사용자 지정 공급자를 작성하는 가장 좋은 방법은 무엇입니까? 특히 새 서비스로 공급자를 작성하고 등록하는 방법은 무엇입니까?
설명서에서 this code을 사용하려고하면 인수 유형에 대한 오류가 발생합니다. 빈 인수 란 무엇입니까?
감사합니다.
일부 조사 후, 다음과 같은 코드가 작동합니다
// src/Application/Sonata/MediaBundle/Resources/config/services.yml
parameters:
application_sonata_media.custom_class: Application\Sonata\MediaBundle\Provider\CustomProvider
services:
sonata.media.provider.custom:
class: %application_sonata_media.custom_class%
tags:
- { name: sonata.media.provider }
arguments:
- sonata.media.provider.custom
- @sonata.media.filesystem.local
- @sonata.media.cdn.server
- @sonata.media.generator.default
- @sonata.media.thumbnail.format
사용자 지정 공급자 코드 :
// src/Application/Sonata/MediaBundle/Provider/CustomProvider.php
<?php
namespace Application\Sonata\MediaBundle\Provider;
use Sonata\MediaBundle\Model\MediaInterface;
use Sonata\MediaBundle\Provider\FileProvider;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\HttpFoundation\File\File;
/**
* Class CustomProvider
* @package Application\Sonata\MediaBundle\Provider
*/
class CustomProvider extends FileProvider
{
/**
* @param MediaInterface $media
*/
protected function doTransform(MediaInterface $media)
{
// ...
}
/**
* {@inheritdoc}
*/
public function generatePublicUrl(MediaInterface $media, $format)
{
// new logic
}
/**
* {@inheritdoc}
*/
public function postPersist(MediaInterface $media)
{
}
/**
* {@inheritdoc}
*/
public function postUpdate(MediaInterface $media)
{
}
}
업데이트 소나타 구성 :
// app/config/sonata/sonata_media.yml
sonata_media:
...
product:
providers:
- sonata.media.provider.image
- sonata.media.provider.custom
formats:
small: { width: 40 , quality: 100}
...
서비스로
등록 업체를
그리고 DI 확장 기능을 자동로드로 설정했습니다. services.yml
나는 PR으로 오래된 문서를 업데이트했습니다.
난 내가 정확히
안녕 @borN_free를 참조하십시오 내가 무시 된 하나 (sonata.media.provider.image)와 같은 서비스 이름까지이 작업을 얻을 수 없었다, 내가 노력하고있어 이 스 니펫은 파일을 업로드하려고 할 때 get, ** "이 값은 null이 아니어야합니다.이 값은 비워 두어서는 안됩니다."** 3 번., 모든 코드에'- [ 'pdf' ] - [ 'application/pdf', 'application/x-pdf'] '를 입력하십시오. 그것을 해결하는 어떤 아이디어? 어쩌면 예제 코드가 불완전할까요? 덕분에 –
해결 [여기] (http://stackoverflow.com/a/35833861/5763965) –