diff --git a/composer.json b/composer.json index 8b3bc56..fb5a72a 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,8 @@ "require": { "php": ">=5.5.0", "slim/slim": "^3.1", - "slim/php-view": "^2.0" + "slim/php-view": "^2.0", + "vrana/notorm": "dev-master" }, "config": { "process-timeout" : 0 diff --git a/composer.lock b/composer.lock index 2bcfdbd..0f0c531 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "37fe8b36d00a40955cbd52e4949aa8f1", + "content-hash": "ca8f6133814e92e4e70538a15c4b1a32", "packages": [ { "name": "container-interop/container-interop", @@ -343,12 +343,53 @@ "router" ], "time": "2016-12-20T20:30:47+00:00" + }, + { + "name": "vrana/notorm", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/vrana/notorm.git", + "reference": "e49d5d2f1bfe440dc82b61f46172635dfcb6f6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vrana/notorm/zipball/e49d5d2f1bfe440dc82b61f46172635dfcb6f6dd", + "reference": "e49d5d2f1bfe440dc82b61f46172635dfcb6f6dd", + "shasum": "" + }, + "type": "library", + "autoload": { + "files": [ + "NotORM.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0", + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jakub Vrána", + "homepage": "http://www.vrana.cz/" + } + ], + "description": "NotORM is a PHP library for simple working with data in the database.", + "homepage": "http://www.notorm.com/", + "keywords": [ + "database", + "dbal" + ], + "time": "2014-10-30 16:55:08" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "vrana/notorm": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { diff --git a/src/bootstrap.php b/src/bootstrap.php index 3093d6f..98d1082 100644 --- a/src/bootstrap.php +++ b/src/bootstrap.php @@ -60,6 +60,32 @@ $container['renderer'] = function ($c) { 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); +}; + +$container['db'] = function ($c) { + $settings = $c->get('settings')['db']; + $pdo = $c->get('db.pdo'); + return new NotORM($pdo); +}; + // Inject the application main class /** * ============== diff --git a/src/settings.php b/src/settings.php index fe7e7b2..06744a3 100644 --- a/src/settings.php +++ b/src/settings.php @@ -7,6 +7,15 @@ return [ // Renderer settings 'renderer' => [ 'template_path' => __DIR__ . '/../templates/', + ], + + // Database settings + 'db' => [ + 'host' => 'mysql.verictas.nl', + 'user' => 'inforban_db', + 'pass' => 'inforbank', + 'name' => 'inforban_db', + 'charset' => 'utf8' ] ], ];