/** * Generic Kickstart method. * This is the generic kickstarter. It will establish a database connection * using the $dsn, the $username and the $password you provide. * If $frozen is boolean TRUE it will start RedBean in frozen mode, meaning * that the database cannot be altered. If RedBean is started in fluid mode * it will adjust the schema of the database if it detects an * incompatible bean. * This method returns a RedBean_Toolbox $toolbox filled with a * RedBean_Adapter, a RedBean_QueryWriter and most importantly a * RedBean_OODB; the object database. To start storing beans in the database * simply say: $redbean = $toolbox->getRedBean(); Now you have a reference * to the RedBean object. * Optionally instead of using $dsn you may use an existing PDO connection. * Example: RedBean_Setup::kickstart($existingConnection, true); * * @param string|PDO $dsn Database Connection String * @param string $username Username for database * @param string $password Password for database * @param boolean $frozen Start in frozen mode? * * @return RedBean_ToolBox $toolbox */ public static function kickstart($dsn, $username = NULL, $password = NULL, $frozen = false) { if ($dsn instanceof PDO) { $pdo = new RedBean_Driver_PDO($dsn); $dsn = $pdo->getDatabaseType(); } else { self::checkDSN($dsn); $pdo = new RedBean_Driver_PDO($dsn, $username, $password); } $adapter = new RedBean_Adapter_DBAdapter($pdo); if (strpos($dsn, "pgsql") === 0) { $writer = new RedBean_QueryWriter_PostgreSQL($adapter); } else { if (strpos($dsn, "sqlite") === 0) { $writer = new RedBean_QueryWriter_SQLiteT($adapter); } else { $writer = new RedBean_QueryWriter_MySQL($adapter); } } $redbean = new RedBean_OODB($writer); if ($frozen) { $redbean->freeze(true); } $toolbox = new RedBean_ToolBox($redbean, $adapter, $writer); //deliver everything back in a neat toolbox self::$toolbox = $toolbox; return self::$toolbox; }
/** * Initializes the database and prepares a toolbox. * The kickstart method assembles a toolbox based on your DSN and * credentials and returns it. * The toolbox contains all the necessary core components for * RedBeanPHP to start working with your database. Most RedBeanPHP * components are stand-alone and require a toolbox to work. * * @param string|PDO $dsn Database Connection String (or PDO instance) * @param string $username Username for database * @param string $password Password for database * @param boolean $frozen Start in frozen mode? * * @return RedBean_ToolBox */ public static function kickstart($dsn, $username = NULL, $password = NULL, $frozen = FALSE, $autoSetEncoding = TRUE) { if ($dsn instanceof PDO) { $db = new RedBean_Driver_PDO($dsn); $dsn = $db->getDatabaseType(); } else { self::checkDSN($dsn); if (strpos($dsn, 'oracle') === 0) { $db = new RedBean_Driver_OCI($dsn, $username, $password); } else { $db = new RedBean_Driver_PDO($dsn, $username, $password, $autoSetEncoding); } } $adapter = new RedBean_Adapter_DBAdapter($db); if (strpos($dsn, 'pgsql') === 0) { $writer = new RedBean_QueryWriter_PostgreSQL($adapter); } else { if (strpos($dsn, 'sqlite') === 0) { $writer = new RedBean_QueryWriter_SQLiteT($adapter); } else { if (strpos($dsn, 'cubrid') === 0) { $writer = new RedBean_QueryWriter_CUBRID($adapter); } else { if (strpos($dsn, 'oracle') === 0) { $writer = new RedBean_QueryWriter_Oracle($adapter); } else { $writer = new RedBean_QueryWriter_MySQL($adapter); } } } } $redbean = new RedBean_OODB($writer); if ($frozen) { $redbean->freeze(TRUE); } $toolbox = new RedBean_ToolBox($redbean, $adapter, $writer); return $toolbox; }
/** * Generic Kickstart method. * This is the generic kickstarter. It will prepare a database connection * using the $dsn, the $username and the $password you provide. * If $frozen is boolean TRUE it will start RedBean in frozen mode, meaning * that the database cannot be altered. If RedBean is started in fluid mode * it will adjust the schema of the database if it detects an * incompatible bean. * This method returns a RedBean_Toolbox $toolbox filled with a * RedBean_Adapter, a RedBean_QueryWriter and most importantly a * RedBean_OODB; the object database. To start storing beans in the database * simply say: $redbean = $toolbox->getRedBean(); Now you have a reference * to the RedBean object. * Optionally instead of using $dsn you may use an existing PDO connection. * Example: RedBean_Setup::kickstart($existingConnection, true); * * @param string|PDO $dsn Database Connection String (or PDO instance) * @param string $username Username for database * @param string $password Password for database * @param boolean $frozen Start in frozen mode? * * @return RedBean_ToolBox $toolbox */ public static function kickstart($dsn, $username = NULL, $password = NULL, $frozen = false) { if ($dsn instanceof PDO) { $pdo = new RedBean_Driver_PDO($dsn); $dsn = $pdo->getDatabaseType(); } else { static::checkDSN($dsn); $pdo = new RedBean_Driver_PDO($dsn, $username, $password); } $adapter = new RedBean_Adapter_DBAdapter($pdo); $writerClassName = static::resolveQueryWriterTypeByDsn($dsn); $writer = new $writerClassName($adapter); $redbean = new RedBean_OODB($writer); if ($frozen) { $redbean->freeze(true); } $toolbox = new RedBean_ToolBox($redbean, $adapter, $writer); //deliver everything back in a neat toolbox return $toolbox; }
/** * Initializes the database and prepares a toolbox. * * @param string|PDO $dsn Database Connection String (or PDO instance) * @param string $username Username for database * @param string $password Password for database * @param boolean $frozen Start in frozen mode? * * @return RedBean_ToolBox $toolbox */ public static function kickstart($dsn, $username = null, $password = null, $frozen = false ) { if ($dsn instanceof PDO) { $db = new RedBean_Driver_PDO($dsn); $dsn = $db->getDatabaseType(); } else { self::checkDSN($dsn); if (strpos($dsn, 'oracle') === 0) $db = new RedBean_Driver_OCI($dsn, $username, $password); else $db = new RedBean_Driver_PDO($dsn, $username, $password); } $adapter = new RedBean_Adapter_DBAdapter($db); if (strpos($dsn, 'pgsql') === 0) $writer = new RedBean_QueryWriter_PostgreSQL($adapter); else if (strpos($dsn, 'sqlite') === 0) $writer = new RedBean_QueryWriter_SQLiteT($adapter); else if (strpos($dsn, 'cubrid') === 0) $writer = new RedBean_QueryWriter_CUBRID($adapter); else if (strpos($dsn, 'oracle') === 0) $writer = new RedBean_QueryWriter_Oracle($adapter); else $writer = new RedBean_QueryWriter_MySQL($adapter); $redbean = new RedBean_OODB($writer); if ($frozen) $redbean->freeze(true); $toolbox = new RedBean_ToolBox($redbean, $adapter, $writer); return $toolbox; }