master

laravel/framework

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

EventClearCommand.php

TLDR

This file defines the EventClearCommand class, which is a console command used to clear all cached events and listeners.

Classes

EventClearCommand

The EventClearCommand class extends the Command class and is responsible for clearing all cached events and listeners. It has the following properties and methods:

  • $name: The name of the console command.
  • $description: The description of the console command.
  • $files: An instance of the Filesystem class used for filesystem operations.
  • __construct(Filesystem $files): The constructor method that accepts an instance of the Filesystem class.
  • handle(): The method that is executed when the console command is called. It deletes the cached events and displays a success message.
<?php

namespace Illuminate\Foundation\Console;

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

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

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Clear all cached events and listeners';

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

    /**
     * Create a new config 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
     *
     * @throws \RuntimeException
     */
    public function handle()
    {
        $this->files->delete($this->laravel->getCachedEventsPath());

        $this->components->info('Cached events cleared successfully.');
    }
}