getContainer(); // Create the view renderer /** * ============== * INSTRUCTIEBLOK * ============== * * Hier wordt de 'view renderer' aan de dependency container (zie hierboven) toegevoegd. Dit zorgt dat je in je applicatie deze 'view renderer' kunt gebruiken via `$this->renderer`. * De renderer wordt gebruikt om een PHP template (https://en.wikipedia.org/wiki/Web_template_system) aan je URL te koppelen. * * Dit kun je doen in je 'route' (URL) met de volgende code: * * ``` * return $this->renderer->render($response, 'index.phtml', $args); * ``` * * (index.phtml kan hier vervangen worden door een template adres uit de map templates) */ $container['renderer'] = function ($c) { $settings = $c->get('settings')['renderer']; return new Slim\Views\PhpRenderer($settings['template_path']); }; // Add the database layer /** * ============== * INSTRUCTIEBLOK * ============== * * Je kunt de database gebruiken in je code via $this->db. Vermijd het direct gebruiken van het PDO object via $this->get('db.pdo'). * Je kunt hiervoor beter de ingebouwde functies van NotORM gebruiken. */ $container['db.pdo'] = function ($c) { $settings = $c->get('settings')['db']; $host = $settings['host']; $name = $settings['name']; $user = $settings['user']; $pass = $settings['pass']; $charset = $settings['charset']; return new PDO("mysql:dbname=$name;host=$host;charset=$charset", $user, $pass, array( PDO::ATTR_TIMEOUT => 5, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); }; $container['db'] = function ($c) { $settings = $c->get('settings')['db']; $pdo = $c->get('db.pdo'); return new NotORM($pdo); }; // Add auth object $container['auth'] = function () { return new \Inforbank\Application\Auth\Authorization(); }; // Link static objects Inforbank\Application::set($app); // Inject the application main class /** * ============== * INSTRUCTIEBLOK * ============== * * Hieronder wordt de Main class van onze applicatie aangeroepen. * * In object georiƫnteerd PHP is een applicatie vaak gestructureerd in meerdere 'classes', die ook wel objecten worden genoemd. Een object kan worden gemaakt door het volgende: * */ new Inforbank\Application\Login($app); new Inforbank\Application\Daniel($app); new Inforbank\Application\Main($app); // Added API handler new Inforbank\Application\API\Handler($app); /** * Bij het maken van dit object is in de class de __construct functie aangeroepen met de parameter $app. De functies die daar in staan zullen nu worden uitgevoerd. * * Je kunt de class herkennen uit talen als Java en C(++ of #), omdat ze daar ook worden gebruikt. * * Je kunt voor een beter begrip de volgende sites lezen: * - https://www.sitepoint.com/php-53-namespaces-basics/ (over namespaces (wij gebruiken InfD4p\Application)) * - http://php.net/manual/en/language.oop5.basic.php (over de class) */ // Add the asset Proxy $app->add(new Inforbank\Proxy()); // Run app $app->run();