/** * PHP Settings */ date_default_timezone_set('Europe/Paris'); /** * Autoloader Composer */ require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; /** ******************************************************************************************************* **/ use Hoa\Core, Hoa\Dispatcher; $hoa = Core\Core::getInstance(); $hoa->getParameters()->setParameter('root.data', dirname(dirname(dirname(__DIR__))) . DS . 'data'); $hoa->setProtocol(); Core\Core::enableErrorHandler(); Core\Core::enableExceptionHandler(); Hoa\Database\Dal::initializeParameters(array('connection.list.default.dal' => Hoa\Database\Dal::PDO, 'connection.list.default.dsn' => 'sqlite:' . resolve('hoa://Data') . '/comments.sqlite')); $dal = Hoa\Database\Dal::getInstance('default'); $baseUri = '/api/v1/'; $router = new Hoa\Router\Http\Http(); $router->get('p', $baseUri . 'posts', function () use($dal) { $statement = $dal->query('SELECT t.*, (select group_concat(c.id) from comments as c where c.tid = t.id) as comments FROM threads as t'); $posts = []; while ($row = $statement->fetchNext()) { $row['comments'] = explode(',', $row['comments']); foreach ($row['comments'] as &$c) { $c = (int) $c; } $posts[] = $row; } echo json_encode(['posts' => $posts]); })->get('c', $baseUri . 'comments', function () use($dal) {
// Fichier de config require_once 'config.php'; // Le script va afficher du français if (PHP_OS == 'Linux') { setlocale(LC_ALL, 'fr_FR.UTF-8'); } else { setlocale(LC_ALL, 'French'); } // Déclaration des NS utilisés use Hoa\Core; use Hoa\Dispatcher; use Hoa\Router; // Activation des erreurs Core::enableErrorHandler(); Core::enableExceptionHandler(); // Mise en place du dispatcher $dispatcher = new Dispatcher\ClassMethod(['synchronous.call' => 'Application\\Controller\\(:call:U:)', 'asynchronous.able' => '(:%synchronous.able:)']); // Connection à la base de donnée Hoa\Database\Dal::initializeParameters(array('connection.list.default.dal' => Hoa\Database\Dal::PDO, 'connection.list.default.dsn' => SQL_DNS, 'connection.list.default.username' => SQL_USER, 'connection.list.default.password' => SQL_PWD, 'connection.list.default.options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"), 'connection.autoload' => 'default')); // Utilisation d'un Kit personnalisé $dispatcher->setKitName('Application\\Dispatcher\\Kit'); $router = new Router\Http(); // Déclaration des routes $router->get('Home', '/', 'Index', 'Index')->post('Login', '/', 'Index', 'Login')->get('Logout', '/Logout', 'Index', 'Logout'); // Here we go ! try { $dispatcher->dispatch($router); } catch (Hoa\Dispatcher\Exception $e) { echo $e->getMessage(); //echo 'Page Introuvable'; }