//$view->set('categories', $categories); //$view->set('pages', $pages); // global config /* routes */ // home route $app->get('/(:page)', function ($page = 1) use($tdk, $app) { $app->render("index.html.twig", ['products' => $tdk->makeProducts($page)]); })->name("home"); //category route $app->get('/category/:slug(/:page)', function ($slug, $page = 1) use($tdk, $app) { $products = $tdk->makeProducts($page); $app->render("category.html.twig", ['products' => $products, 'category' => ["name" => $tdk->getFaker()->word, "slug" => $slug]]); })->name("category"); // product detail route $app->get('/product/:slug', function ($slug) use($tdk, $app) { $product = $tdk->makeProduct(); $related = $tdk->makeProducts(1, 3); $app->render("product.html.twig", ['product' => $product, 'relatedProducts' => $related]); })->name("product_detail"); // add to cart route $app->post('/basket/add', function () use($app, $faker) { $productId = $app->request->post('product_id'); $quantity = $app->request->post('product_quantity'); if (!$productId) { throw new \Exception("The route 'add_to_basket' requires 'product_id' to be passed. "); } if (!$quantity) { throw new \Exception("The route 'add_to_basket' requires 'product_quantity' to be passed. "); } $app->response->redirect('/basket', 302); })->name("add_to_basket");