require_once CONTROLLER_DIR . '/RoutingController.php';
require_once CONTROLLER_DIR . '/DatabaseController.php';
require_once MODEL_DIR . '/ImageModel.php';
require_once MODEL_DIR . '/UserModel.php';
session_start();
$connection = new PDO('mysql:host=127.0.0.1;dbname=imagegallery;charset=utf8mb4', 'root', 'emil0609');
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$container = new Container();
$container->bindArguments('RoutingController', ['connection' => $connection, 'container' => $container]);
$container->bindArguments('ImageModel', ['connection' => $connection]);
$container->bindArguments('UserModel', ['connection' => $connection]);
$router = new Router();
$router->addRoute('GET', '/', ['RoutingController', 'renderLoginView']);
$router->addRoute('POST', '/login', ['LoginController', 'login']);
$router->addRoute('GET', '/gallery', ['RoutingController', 'renderGalleryView']);
$router->addRoute('GET', '/logout', ['LoginController', 'logout']);
$router->addRoute('GET', '/upload', ['RoutingController', 'renderUploadView']);
$router->addRoute('GET', '/users', ['RoutingController', 'renderUsersView']);
$router->addRoute('GET', '/create', ['RoutingController', 'test']);
$router->addRoute('GET', '/delete', ['UserModel', 'deleteUser']);
$router->addRoute('GET', '/getusers', ['UserModel', 'getUsers']);
$router->addRoute('POST', '/createimage', ['ImageModel', 'createImage']);
$router->addRoute('GET', '/getimages', ['ImageModel', 'getImages']);
$uri = rawurldecode(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$route = $router->match($_SERVER['REQUEST_METHOD'], $uri);
if ($route == null) {
    $route = ['handle' => ['ErrorController', 'error404'], 'arguments' => []];
}
$controller = $container->create($route['handle'][0]);
$container->call([$controller, $route['handle'][1]], $route['arguments']);
Пример #2
0
 /**
  * @param mixed $definition
  *
  * @dataProvider providerCall
  */
 public function testCall($definition)
 {
     $di = new Container();
     $this->assertInstanceOf('Lebran\\TestServiceProvider', $di->call($definition));
 }