getMessage()), $e->getCode(), $e); } return $instance; } /** * Gets an instance of the factory object. * * @return F0FDatabaseFactory * * @since 12.1 */ public static function getInstance() { return self::$_instance ? self::$_instance : new F0FDatabaseFactory; } /** * Get the current query object or a new F0FDatabaseQuery object. * * @param string $name Name of the driver you want an query object for. * @param F0FDatabaseDriver $db Optional F0FDatabaseDriver instance * * @return F0FDatabaseQuery The current query object or a new object extending the F0FDatabaseQuery class. * * @since 12.1 * @throws RuntimeException */ public function getQuery($name, F0FDatabaseDriver $db = null) { // Derive the class name from the driver. $class = 'F0FDatabaseQuery' . ucfirst(strtolower($name)); // Make sure we have a query class for this driver. if (!class_exists($class)) { // If it doesn't exist we are at an impasse so throw an exception. throw new RuntimeException('Database Query class not found'); } return new $class($db); } /** * Gets an instance of a factory object to return on subsequent calls of getInstance. * * @param F0FDatabaseFactory $instance A F0FDatabaseFactory object. * * @return void * * @since 12.1 */ public static function setInstance(F0FDatabaseFactory $instance = null) { self::$_instance = $instance; } }