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

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/vendor/doctrine/dbal/src/Platforms/MySQL/   drwxr-xr-x
Free 13.07 GB of 57.97 GB (22.54%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Comparator.php (2.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Doctrine\DBAL\Platforms\MySQL;

use 
Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
use 
Doctrine\DBAL\Schema\Comparator as BaseComparator;
use 
Doctrine\DBAL\Schema\Table;
use 
Doctrine\DBAL\Schema\TableDiff;

use function 
array_diff_assoc;
use function 
array_intersect_key;

/**
 * Compares schemas in the context of MySQL platform.
 *
 * In MySQL, unless specified explicitly, the column's character set and collation are inherited from its containing
 * table. So during comparison, an omitted value and the value that matches the default value of table in the
 * desired schema must be considered equal.
 */
class Comparator extends BaseComparator
{
    
/** @var CollationMetadataProvider */
    
private $collationMetadataProvider;

    
/** @internal The comparator can be only instantiated by a schema manager. */
    
public function __construct(AbstractMySQLPlatform $platformCollationMetadataProvider $collationMetadataProvider)
    {
        
parent::__construct($platform);

        
$this->collationMetadataProvider $collationMetadataProvider;
    }

    public function 
compareTables(Table $fromTableTable $toTable): TableDiff
    
{
        return 
parent::compareTables(
            
$this->normalizeColumns($fromTable),
            
$this->normalizeColumns($toTable),
        );
    }

    
/**
     * {@inheritDoc}
     */
    
public function diffTable(Table $fromTableTable $toTable)
    {
        return 
parent::diffTable(
            
$this->normalizeColumns($fromTable),
            
$this->normalizeColumns($toTable),
        );
    }

    private function 
normalizeColumns(Table $table): Table
    
{
        
$tableOptions array_intersect_key($table->getOptions(), [
            
'charset'   => null,
            
'collation' => null,
        ]);

        
$table = clone $table;

        foreach (
$table->getColumns() as $column) {
            
$originalOptions   $column->getPlatformOptions();
            
$normalizedOptions $this->normalizeOptions($originalOptions);

            
$overrideOptions array_diff_assoc($normalizedOptions$tableOptions);

            if (
$overrideOptions === $originalOptions) {
                continue;
            }

            
$column->setPlatformOptions($overrideOptions);
        }

        return 
$table;
    }

    
/**
     * @param array<string,string> $options
     *
     * @return array<string,string>
     */
    
private function normalizeOptions(array $options): array
    {
        if (isset(
$options['collation']) && ! isset($options['charset'])) {
            
$charset $this->collationMetadataProvider->getCollationCharset($options['collation']);

            if (
$charset !== null) {
                
$options['charset'] = $charset;
            }
        }

        return 
$options;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

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