Я хотел бы позвонить помощнику из службы.Вызовите помощника из службы
$notificationService = $this->get('Notification');
Пытались вызвать неопределенный метод под названием "получить" класса
Я хотел бы позвонить помощнику из службы.Вызовите помощника из службы
$notificationService = $this->get('Notification');
Пытались вызвать неопределенный метод под названием "получить" класса
Symfony это не волшебство. Symfony - это просто PHP. Это самое главное, что нужно помнить при работе с Symfony.
Так что, если в вашем классе нет метода get()
, вы не можете вызвать метод. В вашем контроллере вы простираетесь от базы Controller
от FrameworkBundle. Этот класс содержит такой метод, поэтому в контроллере вы можете вызвать этот метод.
Теперь вы все еще хотите воспользоваться услугой Notification
в своем новом сервисе. Вместо того, чтобы получать его из контейнера, пусть контейнер вставляет его в вашу службу, когда он его создает. Вы можете сделать это с какой-то службы конфигурации:
# app/config/services.yml
services:
app.your_service:
class: AppBundle\Some\Class
arguments: ['@Notification'] # <<-- this tells to inject the service
А затем адаптировать это в вашем классе:
class SomeClass
{
private $nofication;
public function __construct(NotificationInterface $notification)
{
$this->notification = $notification;
}
}
Существует намного больше, чтобы объяснить об этом. См. http://symfony.com/doc/current/book/service_container
Где вы называете этот метод? Можете ли вы поделиться своим классом? – Federkun
Все в порядке, я объявляю свою службу в голове с помощью 'use App \ Bundle \ Services \ Notification;' и создавал экземпляр '$ notificationService = new Notification();' – Paul