master

laravel/framework

Last updated at: 29/12/2023 09:22

BaseCommand.php

TLDR

This file is a PHP class called BaseCommand that extends the Command class. It contains several protected methods that are used in database migration commands.

Methods

getMigrationPaths

This method retrieves all of the migration paths. If a path option has been defined, it returns an array of paths relative to the root of the installation folder. Otherwise, it returns an array that includes the default migration path and any additional paths defined by the migrator.

usingRealPath

This method determines if the given path(s) are pre-resolved "real" paths. It checks if the realpath option is set to true and returns a boolean value accordingly.

getMigrationPath

This method retrieves the path to the migration directory. It returns a string that represents the path to the migrations directory within the Laravel application's database directory.

Classes

No classes are defined in this file.

<?php

namespace Illuminate\Database\Console\Migrations;

use Illuminate\Console\Command;

class BaseCommand extends Command
{
    /**
     * Get all of the migration paths.
     *
     * @return array
     */
    protected function getMigrationPaths()
    {
        // Here, we will check to see if a path option has been defined. If it has we will
        // use the path relative to the root of the installation folder so our database
        // migrations may be run for any customized path from within the application.
        if ($this->input->hasOption('path') && $this->option('path')) {
            return collect($this->option('path'))->map(function ($path) {
                return ! $this->usingRealPath()
                                ? $this->laravel->basePath().'/'.$path
                                : $path;
            })->all();
        }

        return array_merge(
            $this->migrator->paths(), [$this->getMigrationPath()]
        );
    }

    /**
     * Determine if the given path(s) are pre-resolved "real" paths.
     *
     * @return bool
     */
    protected function usingRealPath()
    {
        return $this->input->hasOption('realpath') && $this->option('realpath');
    }

    /**
     * Get the path to the migration directory.
     *
     * @return string
     */
    protected function getMigrationPath()
    {
        return $this->laravel->databasePath().DIRECTORY_SEPARATOR.'migrations';
    }
}