Практика на контроллеры и представления в MVC

Задание 1

Создайте контроллер Product, в конструкторе которого будет задаваться следующий массив:

php<?php
  $this->products = [
    1 => [
      'name'     => 'product1',
      'price'    => 100,
      'quantity' => 5,
      'category' => 'category1',
    ],
    2 => [
      'name'     => 'product2',
      'price'    => 200,
      'quantity' => 6,
      'category' => 'category2',
    ],
    3 => [
      'name'     => 'product3',
      'price'    => 300,
      'quantity' => 7,
      'category' => 'category2',
    ],
    4 => [
      'name'     => 'product4',
      'price'    => 400,
      'quantity' => 8,
      'category' => 'category3',
    ],
    5 => [
      'name'     => 'product5',
      'price'    => 500,
      'quantity' => 9,
      'category' => 'category3',
    ],
  ]
?>
Задание 2

В контроллере Product сделайте действие show, которое будет показывать информацию об одном продукте. Пусть это действие обрабатывает адреса следующего вида: /product/:n/, где параметром будет номер продукта в массиве. Сделайте так, чтобы обращение по таким адресам выводило через var_dump данные того продукта, который был запрошен через адресную строку.

Задание 3

Добавьте к созданному действию представление. Используйте для этого следующую верстку:

html<h1>Продукт "product1" из категории "category1"</h1>
<p>
  Цена: 100$, количество: 5
</p>
<p>
  Стоимость (цена * количество): 500$
</p>

Данные в этой верстке соответствуют первому продукту. Сделайте так, чтобы представление показывало данные того продукта, который был запрошен через адресную строку.

Задание 4

В контроллере Product сделайте действие all, которое будет выводить список всех продуктов в виде HTML таблицы. Пусть это действие обрабатывает адрес /products/all/.