我試圖在App \ Service中精確定義src之外的服務。我知道Symfony中的服務只是一個類,因此我應該可以將它放在任何地方。Symfony3 - 在src/bundle之外定義服務
這就是我目前得到:
應用程序\ CONFIG \ 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'沒有註冊到自動加載。 –
@PBBALL好呼!非常感謝你。我只是把它添加到作曲家自動加載 - 愚蠢的錯誤。 – Robert