私のサービスからヘルパーに電話したいと思います。サービスからヘルパーに電話する
$notificationService = $this->get('Notification');
symfonyは魔法ではないクラス
私のサービスからヘルパーに電話したいと思います。サービスからヘルパーに電話する
$notificationService = $this->get('Notification');
symfonyは魔法ではないクラス
の "取得" という名前の未定義のメソッドを呼び出そうとしました。 Symfonyは単なるPHPです。それはSymfonyを扱う際に覚えておくべき最も重要なことです。
したがって、クラスにget()
メソッドがない場合は、メソッドを呼び出すことはできません。あなたのコントローラでは、FrameworkBundleのベースController
から拡張します。このクラスにはこのようなメソッドが含まれているので、コントローラではこのメソッドを呼び出すことができます。
今度は、新しいサービスで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