PMA\libraries\RecentFavoriteTable::getInstance PHP Method

getInstance() public static method

Returns class instance.
public static getInstance ( string $type ) : RecentFavoriteTable
$type string the table type
return RecentFavoriteTable
    public static function getInstance($type)
    {
        if (!array_key_exists($type, self::$_instances)) {
            self::$_instances[$type] = new RecentFavoriteTable($type);
        }
        return self::$_instances[$type];
    }

Usage Example

 /**
  * Add or remove favorite tables
  *
  * @return void
  */
 public function addRemoveFavoriteTablesAction()
 {
     $fav_instance = RecentFavoriteTable::getInstance('favorite');
     if (isset($_REQUEST['favorite_tables'])) {
         $favorite_tables = json_decode($_REQUEST['favorite_tables'], true);
     } else {
         $favorite_tables = array();
     }
     // Required to keep each user's preferences separate.
     $user = sha1($GLOBALS['cfg']['Server']['user']);
     // Request for Synchronization of favorite tables.
     if (isset($_REQUEST['sync_favorite_tables'])) {
         $this->synchronizeFavoriteTables($fav_instance, $user, $favorite_tables);
         return;
     }
     $changes = true;
     $titles = Util::buildActionTitles();
     $favorite_table = $_REQUEST['favorite_table'];
     $already_favorite = $this->checkFavoriteTable($favorite_table);
     if (isset($_REQUEST['remove_favorite'])) {
         if ($already_favorite) {
             // If already in favorite list, remove it.
             $fav_instance->remove($this->db, $favorite_table);
             $already_favorite = false;
             // for favorite_anchor template
         }
     } elseif (isset($_REQUEST['add_favorite'])) {
         if (!$already_favorite) {
             $nbTables = count($fav_instance->getTables());
             if ($nbTables == $GLOBALS['cfg']['NumFavoriteTables']) {
                 $changes = false;
             } else {
                 // Otherwise add to favorite list.
                 $fav_instance->add($this->db, $favorite_table);
                 $already_favorite = true;
                 // for favorite_anchor template
             }
         }
     }
     $favorite_tables[$user] = $fav_instance->getTables();
     $this->response->addJSON('changes', $changes);
     if (!$changes) {
         $this->response->addJSON('message', Template::get('components/error_message')->render(array('msg' => __("Favorite List is full!"))));
         return;
     }
     $this->response->addJSON(array('user' => $user, 'favorite_tables' => json_encode($favorite_tables), 'list' => $fav_instance->getHtmlList(), 'anchor' => Template::get('database/structure/favorite_anchor')->render(array('db' => $this->db, 'current_table' => array('TABLE_NAME' => $favorite_table), 'titles' => $titles, 'already_favorite' => $already_favorite))));
 }
All Usage Examples Of PMA\libraries\RecentFavoriteTable::getInstance