-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
31 lines (24 loc) · 966 Bytes
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require 'vendor/autoload.php';
require 'app/bootstrap.php';
use vladzur\miniapi\Controller\BooksController;
//Dependency injector
$container = new League\Container\Container;
//Share injections of Request and Response
$container->share('response', Zend\Diactoros\Response::class);
$container->share('request', function () {
return Zend\Diactoros\ServerRequestFactory::fromGlobals(
$_SERVER, $_GET, $_POST, $_COOKIE, $_FILES
);
});
//Share output class dependency
$container->share('emitter', Zend\Diactoros\Response\SapiEmitter::class);
//New Router object with dependencies
$router = new League\Route\RouteCollection($container);
//Setup Routes
$router->get('/api/books', [new BooksController, 'index']);
$router->post('/api/books', [new BooksController, 'store']);
//Dispatcher
$router->dispatch($container->get('request'), $container->get('response'));
//Output response
$container->get('emitter')->emit($container->get('response'));