Skip to content

Instantly share code, notes, and snippets.

@umefarooq
Last active November 18, 2022 03:35
Show Gist options
  • Save umefarooq/ebc617dbf88260db1448 to your computer and use it in GitHub Desktop.
Save umefarooq/ebc617dbf88260db1448 to your computer and use it in GitHub Desktop.

Revisions

  1. umefarooq revised this gist Mar 16, 2016. No changes.
  2. umefarooq created this gist Mar 16, 2016.
    89 changes: 89 additions & 0 deletions Laravel 5.2 MakeViewCommad
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,89 @@
    <?php

    namespace App\Console\Commands;

    use Illuminate\Console\Command;
    use File;

    class MakeViewCommand extends Command
    {
    /**
    * The name and signature of the console command.
    *
    * @var string
    */
    protected $signature = 'make:view {view}';

    /**
    * The console command description.
    *
    * @var string
    */
    protected $description = 'Create a new blade template.';

    /**
    * Create a new command instance.
    *
    * @return void
    */
    public function __construct()
    {
    parent::__construct();
    }

    /**
    * Execute the console command.
    *
    * @return mixed
    */
    public function handle()
    {
    $view = $this->argument('view');

    $path = $this->viewPath($view);

    $this->createDir($path);

    if (File::exists($path))
    {
    $this->error("File {$path} already exists!");
    return;
    }

    File::put($path, $path);

    $this->info("File {$path} created.");
    }

    /**
    * Get the view full path.
    *
    * @param string $view
    *
    * @return string
    */
    public function viewPath($view)
    {
    $view = str_replace('.', '/', $view) . '.blade.php';

    $path = "resources/views/{$view}";

    return $path;
    }

    /**
    * Create view directory if not exists.
    *
    * @param $path
    */
    public function createDir($path)
    {
    $dir = dirname($path);

    if (!file_exists($dir))
    {
    mkdir($dir, 0777, true);
    }
    }

    }