정확하게 App \ Service에서 src 외부의 서비스를 정의하려고합니다. 나는 Symfony에서의 서비스가 단지 클래스라는 것을 알기 때문에 어디서나 그것을 넣을 수 있어야합니다. 나는 순간에있어 무엇Symfony3 - src/bundle 외부 서비스 정의
:
응용 프로그램 \ 설정 \ services.yml
parameters:
serializer_service_class: App\Service\SerializeService
services:
app.serializer:
class: '%serializer_service_class%'
autowire: true
서비스는 단순한 직렬화 클래스입니다 :
SerializeService.php
<?php
namespace App\Service;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
/**
* Class SerializeService
* @package App\Service
*/
class SerializeService
{
/**
* @var Serializer
*/
private $serializer;
/**
* @var array
*/
private $encoders;
/**
* @var array
*/
private $normalizer;
/**
* SerializeService constructor.
*/
public function __construct()
{
$this->encoders = array(new XmlEncoder(), new JsonEncoder());
$this->normalizer = new ObjectNormalizer();
$this->normalizer->setCircularReferenceHandler(function ($object) {
return $object->getId();
});
$this->serializer = new Serializer($this->normalizer, $this->encoders);
}
public function serialize2Json($item)
{
return $this->serializer->serialize($item, 'json');
}
}
은 그 때 나는이 오류 메시지가 얻을 : 정말 이것에 대한 해결책을 찾기 위해 노력했습니다
Attempted to load class "SerializeService" from namespace "App\Service".
Did you forget a "use" statement for another namespace?
을 나는 다른 옵션을 시도했습니다. 그것이 어딘가에 stackoverflow에 있다면이 게시물을 가르쳐주세요.
미리 감사드립니다.
에게 도움 그것은 당신이 파일'SerializeService.php'이 자동로드에 등록되지 않은 장소 위치 보인다 바랍니다. –
@PigBall 좋은 콜! 고맙습니다. 난 그냥 작곡가 자동로드에 추가했다 - 바보 같은 실수. – Robert