Browse Source

Ch. 4: Overriding parameters auto-wiring.

Frederic G. MARAND 6 years ago
parent
commit
46c336e31d
3 changed files with 24 additions and 0 deletions
  1. 7 0
      config/services.yaml
  2. 4 0
      src/Controller/LuckyController.php
  3. 13 0
      src/Logger.php

+ 7 - 0
config/services.yaml

@@ -25,3 +25,10 @@ services:
 
     # add more service definitions when explicit configuration is needed
     # please note that last definitions always *replace* previous ones
+    App\Controller\LuckyController:
+        public: true
+        bind:
+          $logger: '@app.logger'
+
+    app.logger:
+        class: App\Logger

+ 4 - 0
src/Controller/LuckyController.php

@@ -14,6 +14,10 @@ class LuckyController extends Controller {
    *   name="lucky-number",
    *   path="/lucky/number"
    * )
+   *
+   * @see config/services.yaml
+   *
+   * Notice how we overrode auto-wiring to receive an instance of App\Logger.
    */
   public function number(LoggerInterface $logger) {
     $number = mt_rand(0, 100);

+ 13 - 0
src/Logger.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace App;
+
+
+use Symfony\Component\HttpKernel\Log\Logger as BaseLogger;
+
+class Logger extends BaseLogger {
+
+  public function log($level, $message, array $context = []) {
+    return parent::log($level, "APP: $message", $context);
+  }
+}