、サービスは[重点鉱山]のように定義される:Symfony2サービスは常にバンドルで宣言する必要がありますか? Symfony2ので
サービス 特定のタスクを実行する任意のPHPオブジェクトの総称です。サービスは通常、 データベース接続オブジェクトや電子メールメッセージを配信するオブジェクトなど、「グローバルに」と使用されます。 Symfony2では、サービスは多くの場合、サービスコンテナ から設定および取得されます。デカップリングされたサービスの数が多いアプリケーションは、サービス指向アーキテクチャに従うと言われている です。
「グローバルに」をキーワードとすると、サービスを定義する方法の例はすべて、既存のバンドル内で宣言されていますか?彼の例のサービスは、「サービス」というフォルダにHelloBundleバンドルの内部で宣言されているか
<?php
// Bundle/HelloBundle/Controller/HelloController.php
namespace Bundle\HelloBundle\Controller;
class HelloController extends Controller {
public function indexAction() {
$number = $this->get('my_service')->sum(12, 37);
// this returns 49
/*
...
*/
}
}
?>
注意:ここで彼はその後、こんにちはコントローラ内からそれを使用していますMartinSikora.com
<?php
// Bundle/HelloBundle/Services/MyService.php
namespace Bundle\HelloBundle\Services;
class MyService {
public function sum($n1, $n2) {
return $n1 + $n2;
}
}
?>
からの例です。サービスがアプリケーション全体で使用されるため、特定のバンドルの外に1つ以上のレベルの「サービス」フォルダが格納されている方が良いでしょうか?
- ここでベストプラクティスは何ですか?
- サービスはHelloBundle Bundle内のコントローラでのみ利用できますか?
- なぜこのように通常行われますか?