public static function test_get_database_class_returns_database_reflection_class() { $database_class_factory = Database_DatabaseClassFactory::get_instance(); $database_class = $database_class_factory->get_database_class(); $mysql_user_factory = Database_MySQLUserFactory::get_instance(); $mysql_user = $mysql_user_factory->get_for_this_project(); $passwords_file = $mysql_user->get_password_file(); $database_object = $database_class->newInstance($mysql_user, $passwords_file->get_database()); return is_a($database_object, 'Database_Database'); }
public function get_database() { if (!isset($this->database)) { $password_file = $this->get_password_file(); $database_name = $password_file->get_database(); $database_class_factory = Database_DatabaseClassFactory::get_instance(); $database_class = $database_class_factory->get_database_class(); $this->database = $database_class->newInstance($this, $database_name); } return $this->database; }
/** * This class uses the singleton pattern. */ public static function get_instance() { if (self::$instance == NULL) { self::$instance = new Database_DatabaseClassFactory(); } return self::$instance; #if (!isset($_SESSION['database-class-factory'])) { # $_SESSION['database-class-factory'] # = new Database_DatabaseClassFactory(); #} # #return $_SESSION['database-class-factory']; }
/** * What if the row sub class hasn't been * implemented yet? * * This function should just return the Row * class in that case. */ public final function get_row_class() { $table_name = $this->get_name(); $database_class_factory = Database_DatabaseClassFactory::get_instance(); $row_class = $database_class_factory->get_row_class($table_name); return $row_class; }
/** * If a renderer class for this has been implemented * and saved in the row subclass renderers directory, * then that class will be returned. * * Otherwise, the default row renderer (which the * row subclass renderers should extend anyway) * is returned. */ public final function get_renderer() { #$renderer_class = $this->get_renderer_class(); #return $renderer_class->newInstance($this); $table = $this->get_table(); $table_name = $table->get_name(); $database_class_factory = Database_DatabaseClassFactory::get_instance(); $row_renderer_class = $database_class_factory->get_row_renderer_class($table_name); $renderer = $row_renderer_class->newInstance($this); return $renderer; }