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; }
case 'sqlite': 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);
<?php require __DIR__ . '/common.php'; if (php_sapi_name() === 'cli') { $options = getopt('', array('limit::', 'call-interval::', 'update-interval::', 'database::')); } else { $options = $_GET; } if (!empty($options['database'])) { if (!Model\Database\select($options['database'])) { die("Database " . $options['database'] . " not found\r\n"); } } $limit = !empty($options['limit']) && ctype_digit($options['limit']) ? (int) $options['limit'] : Model\Feed\LIMIT_ALL; $update_interval = !empty($options['update-interval']) && ctype_digit($options['update-interval']) ? (int) $options['update-interval'] : null; $call_interval = !empty($options['call-interval']) && ctype_digit($options['call-interval']) ? (int) $options['call-interval'] : null; if ($update_interval !== null && $call_interval !== null && $limit === Model\Feed\LIMIT_ALL && $update_interval >= $call_interval) { $feeds_count = PicoDb\Database::getInstance('db')->table('feeds')->count(); $limit = ceil($feeds_count / ($update_interval / $call_interval)); } Model\Feed\refresh_all($limit); Model\Item\autoflush_read(); Model\Item\autoflush_unread(); Model\Config\write_debug();
<?php require __DIR__ . '/core/registry.php'; 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'));