Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / system / tests / modules / conneg_test / src / Controller / TestController.php
1 <?php
2
3 namespace Drupal\conneg_test\Controller;
4
5 use Symfony\Component\HttpFoundation\JsonResponse;
6 use Symfony\Component\HttpFoundation\Request;
7 use Symfony\Component\HttpFoundation\Response;
8
9 /**
10  * Test controller for content negotiation tests.
11  */
12 class TestController {
13
14   /**
15    * Returns a json response.
16    *
17    * @return \Symfony\Component\HttpFoundation\JsonResponse
18    */
19   public function simple() {
20     return new JsonResponse(['some' => 'data']);
21   }
22
23   /**
24    * Returns a simple render array.
25    *
26    * @return array
27    */
28   public function html() {
29     return [
30       '#markup' => 'here',
31     ];
32   }
33
34   /**
35    * Returns different responses dependening on the request format.
36    *
37    * @param \Symfony\Component\HttpFoundation\Request $request
38    *   The request
39    *
40    * @return \Symfony\Component\HttpFoundation\Response
41    *   The response.
42    */
43   public function format(Request $request) {
44     switch ($request->getRequestFormat()) {
45       case 'json':
46         return new JsonResponse(['some' => 'data']);
47
48       case 'xml':
49         return new Response('<xml></xml>', Response::HTTP_OK, ['Content-Type' => 'application/xml']);
50
51       default:
52         return new Response($request->getRequestFormat());
53     }
54   }
55
56   /**
57    * Returns a render array depending on some passed in value.
58    *
59    * @param string $plugin_id
60    *   The plugin ID.
61    *
62    * @return array
63    *   The render array
64    */
65   public function variable($plugin_id) {
66     return [
67       '#markup' => $plugin_id,
68     ];
69   }
70
71 }