<?php
use Framework\Config\Loader;
use Framework\Config\Environments;
use Framework\Config\Config;
use Framework\Http\Builders\RequestBuilder;
use Framework\Http\Builders\ResponseBuilder;
use Framework\Http\Request;
use Framework\Http\Response;
use Framework\Routing\Router;
use Framework\MySQL\Database;
use Framework\MySQL\Connection;
// require __DIR__ . '/../resources/Smarty/Smarty.class.php';
require __DIR__ . '/../autoloader.php';
$App = new App();
$App->register(Router::CLASS, function (Request $request) {
$router = new Router($request);
$middleware1 = function () {
echo "middleware 1";
};
$middleware2 = function () {
echo "middleware 2";
};
$router->any('/', function () {
echo 'index page';
});
$router->get('/:all', function ($all) {
echo $all;
});
$router->get('/(post|posts)/:slug/:id', function($slug, $id) {
echo "You are seeing the post nš $id, with title: $slug";
});
$router->run();
});
$App->register(Request::CLASS, function () {
$builder = new RequestBuilder();
$builder->addContentParser('application/json', function () {
if(!($data = json_decode(file_get_contents('php://input'), true))) {
$data = [];
}
return $data;
});
return $builder->create(['get' => $_GET, 'files' => $_FILES, 'server' => $_SERVER, 'post' => $_POST, 'cookies' => $_COOKIE]);
});
$App->register(Database::CLASS, function () {
$config = $App->resolve(Config::CLASS, 'mysql');
return Database::getInstance(
new Connection(
$config->get('hostname'),
$config->get('username'),
$config->get('password'),
$config->get('database'),
$config->get('options')
)
);
});
$configDirPath = __DIR__ . '/../bootstrap/config';
$App->register(Config::CLASS, function (
string $environment = 'default',
array $settings = array(
'local' => array(
'ubuntu',
'localhost',
'macbook',
'windows'
)
)
) use ($configDirPath) {
return new Config(
new Loader($configDirPath),
new Environments($settings)
, $environment);
});
?>
|