Browse Source

Ch. 1: Quick tour basic examples. @Route annotations not working.

Frederic G. MARAND 6 years ago
parent
commit
84f36ea788
5 changed files with 54 additions and 0 deletions
  1. 1 0
      .idea/sf4-book.iml
  2. 2 0
      .idea/symfony2.xml
  3. 13 0
      config/routes.yaml
  4. 26 0
      src/Controller/DefaultController.php
  5. 12 0
      src/GreetingGenerator.php

+ 1 - 0
.idea/sf4-book.iml

@@ -29,6 +29,7 @@
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/web-server-bundle" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
     </content>
+    <content url="file://$MODULE_DIR$/var/cache/dev" />
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module-library">

+ 2 - 0
.idea/symfony2.xml

@@ -2,6 +2,8 @@
 <project version="4">
   <component name="Symfony2PluginSettings">
     <option name="pathToTranslation" value="var/cache/dev/translations" />
+    <option name="directoryToWeb" value="public" />
+    <option name="directoryToApp" value="src" />
     <option name="pluginEnabled" value="true" />
   </component>
 </project>

+ 13 - 0
config/routes.yaml

@@ -1,3 +1,16 @@
 #index:
 #    path: /
 #    controller: App\Controller\DefaultController::index
+
+index:
+  path: /
+  controller: App\Controller\DefaultController::index
+
+hello:
+  path: /hello/{name}
+  controller: App\Controller\DefaultController::hello
+
+hello-json:
+  path: /json/{name}
+  controller: App\Controller\DefaultController::helloJson
+

+ 26 - 0
src/Controller/DefaultController.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Controller;
+
+use App\GreetingGenerator;
+use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
+use Symfony\Component\HttpFoundation\Response;
+
+class DefaultController extends AbstractController {
+
+  public function index() {
+    return new Response("Hello");
+  }
+
+  public function hello($name, GreetingGenerator $generator) {
+    $greeting = $generator->getRandomGreeting();
+    return new Response("$greeting $name");
+  }
+
+  public function helloJson($name) {
+    return $this->json([
+      'name' => $name,
+    ]);
+  }
+}
+

+ 12 - 0
src/GreetingGenerator.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App;
+
+class GreetingGenerator {
+
+  public function getRandomGreeting() {
+    $greetings = ['Hey', 'Yo', 'Aloha'];
+    $greeting = $greetings[array_rand($greetings)];
+    return $greeting;
+  }
+}