在我的Symfony2控制器,這工作得很好:Symfony2中,如何使用訪問的服務從控制器外部
$uploadManager = $this->get('upload.upload_manager');
但是當我移動到一個自定義的監聽器:
use Doctrine\ORM\Event\LifecycleEventArgs;
use Acme\UploadBundle\Upload\UploadManager;
class PersonChange
{
public function postRemove(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$entityManager = $args->getEntityManager();
$uploadManager = $this->get('ep_upload.upload_manager');
echo "the upload dir is " . $uploadManager->getUploadDir();
}
}
我得到一個錯誤:
Fatal error: Call to undefined method Acme\MainBundle\Listener\PersonChange::get() in /home/frank/...
我知道我必須需要一個使用聲明,但不要不知道該用什麼。
這應該提供一個可能的解決方案:[如何獲得自定義類中的服務依賴項](http://stackoverflow.com/questions/8622382/how-do-i-get-services-dependencies-in-a-custom-class) – kufi 2012-01-06 12:54:01