master

laravel/framework

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

RouteClearCommand.php

TLDR

This file defines the RouteClearCommand class, which is a console command that clears the route cache file.

Methods

There are no additional methods in this file.

Classes

RouteClearCommand

This class extends the Command class from the Illuminate\Console package. It represents a console command named "route:clear" and is responsible for removing the route cache file. The route cache file is deleted using the delete() method of the Filesystem class, which is injected into the class through the constructor.

The key properties and methods of the RouteClearCommand class are:

  • protected $name: The name of the console command ("route:clear").
  • protected $description: The description of the console command ("Remove the route cache file").
  • protected $files: An instance of the Filesystem class for file manipulation.
  • public function __construct(Filesystem $files): The constructor method that injects the Filesystem instance.
  • public function handle(): The method that is executed when the console command is run. It deletes the route cache file using the delete() method of the Filesystem class and outputs a success message.
<?php

namespace Illuminate\Foundation\Console;

use Illuminate\Console\Command;
use Illuminate\Filesystem\Filesystem;
use Symfony\Component\Console\Attribute\AsCommand;

#[AsCommand(name: 'route:clear')]
class RouteClearCommand extends Command
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'route:clear';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Remove the route cache file';

    /**
     * The filesystem instance.
     *
     * @var \Illuminate\Filesystem\Filesystem
     */
    protected $files;

    /**
     * Create a new route clear command instance.
     *
     * @param  \Illuminate\Filesystem\Filesystem  $files
     * @return void
     */
    public function __construct(Filesystem $files)
    {
        parent::__construct();

        $this->files = $files;
    }

    /**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $this->files->delete($this->laravel->getCachedRoutesPath());

        $this->components->info('Route cache cleared successfully.');
    }
}