我試圖將錯誤記錄責任轉移到我的類/實體。 目前唯一一個獲得記錄器實例的乾淨方式是從我的控制器中獲取,然後將其傳遞給我的實體。在類或實體內部登錄
是否有一種乾淨的方式來獲取我的類或實體內的記錄器的實例?
同去的EntityManager的
編輯:setter注入:
- test.php的
services.yml
services: my_test: class: AppBundle\Entity\Test arguments: ["@logger"] calls: - [setLogger, ["@logger"]]
DefaultController.php
$test = new Test(); $test->doLog();
我得到的錯誤是:
Fatal error: Call to a member function error() on null
,因爲它沒叫的setter
您不應使用記錄器,實體管理器或您實體內的任何其他服務。對於您的自定義服務類,您應該閱讀有關依賴注入的內容:http://symfony.com/doc/current/book/service_container.html –
請參閱我的編輯 – SnelleJelle
您是使用框架還是僅使用部分組件? –