public function getDbConnection() { $db = new \PicoDb\Database(array('driver' => 'sqlite', 'filename' => ':memory:')); if ($db->schema()->check(\Schema\VERSION)) { return $db; } else { die('Unable to migrate database schema!'); } }
public function getDatabaseInstance() { $db = new \PicoDb\Database(array('driver' => 'sqlite', 'filename' => self::DB_FILENAME)); if ($db->schema()->check(self::DB_VERSION)) { return $db; } else { die('Unable to migrate database schema!'); } }
function create($filename, $username, $password) { $filename = DATA_DIRECTORY . DIRECTORY_SEPARATOR . $filename; if (ENABLE_MULTIPLE_DB && !file_exists($filename)) { $db = new \PicoDb\Database(array('driver' => 'sqlite', 'filename' => $filename)); if ($db->schema()->check(Schema\VERSION)) { $credentials = array('username' => $username, 'password' => password_hash($password, PASSWORD_BCRYPT)); $db->hashtable('settings')->put($credentials); return true; } } return false; }
require __DIR__ . '/Schema/Sqlite.php'; $params = array('driver' => 'sqlite', 'filename' => DB_FILENAME); break; case 'mysql': require __DIR__ . '/Schema/Mysql.php'; $params = array('driver' => 'mysql', 'hostname' => DB_HOSTNAME, 'username' => DB_USERNAME, 'password' => DB_PASSWORD, 'database' => DB_NAME, 'charset' => 'utf8'); break; case 'postgres': require __DIR__ . '/Schema/Postgres.php'; $params = array('driver' => 'postgres', 'hostname' => DB_HOSTNAME, 'username' => DB_USERNAME, 'password' => DB_PASSWORD, 'database' => DB_NAME); break; default: die('Database driver not supported'); } $db = new \PicoDb\Database($params); if ($db->schema()->check(Schema\VERSION)) { return $db; } else { $errors = $db->getLogMessages(); die('Unable to migrate database schema: <br/><br/><strong>' . (isset($errors[0]) ? $errors[0] : 'Unknown error') . '</strong>'); } }; $registry->event = function () use($registry) { return new Event(); }; $registry->mailer = function () use($registry) { require_once 'vendor/swiftmailer/swift_required.php'; switch (MAIL_TRANSPORT) { case 'smtp': $transport = Swift_SmtpTransport::newInstance(MAIL_SMTP_HOSTNAME, MAIL_SMTP_PORT); $transport->setUsername(MAIL_SMTP_USERNAME);
require __DIR__ . '/core/helper.php'; require __DIR__ . '/core/translator.php'; $registry = new Core\Registry(); $registry->db_version = 14; $registry->db = function () use($registry) { require __DIR__ . '/vendor/PicoDb/Database.php'; if (DB_DRIVER === 'sqlite') { require __DIR__ . '/schemas/sqlite.php'; $db = new \PicoDb\Database(array('driver' => 'sqlite', 'filename' => DB_FILENAME)); } elseif (DB_DRIVER === 'mysql') { require __DIR__ . '/schemas/mysql.php'; $db = new \PicoDb\Database(array('driver' => 'mysql', 'hostname' => DB_HOSTNAME, 'username' => DB_USERNAME, 'password' => DB_PASSWORD, 'database' => DB_NAME, 'charset' => 'utf8')); } else { die('Database driver not supported'); } if ($db->schema()->check($registry->db_version)) { return $db; } else { die('Unable to migrate database schema!'); } }; $registry->event = function () use($registry) { require __DIR__ . '/core/event.php'; return new \Core\Event(); }; $registry->action = function () use($registry) { require_once __DIR__ . '/models/action.php'; return new \Model\Action($registry->shared('db'), $registry->shared('event')); }; $registry->config = function () use($registry) { require_once __DIR__ . '/models/config.php';