Laravel - Является ли команда cache: clear очисткой кеша конфигурации? - PullRequest
1 голос
/ 11 марта 2020

Я использую Laravel 5.8, и, как мы знаем, в Laravel

  • кэш конфигурации (php artisan config:cache)
  • кэш маршрута (*1005* * 1006) php artisan route:cache)
  • Просмотр кэша (php artisan view:cache)

.

Итак, в моем приложении Laravel я использую Cache::remember('mycachetoday', $seconds, function(){}) ...

Чтобы очистить mycachetoday, я должен запустить php artisan cache:clear, верно?

Но мне интересно, если я выполню php artisan cache:clear, будет ли кеш конфигурации, маршрута и представления быть очистили также?

Спасибо

Ответы [ 2 ]

3 голосов
/ 11 марта 2020

Вы можете попробовать

php artisan config:cache

Файл кэша конфигурации будет сохранен в каталоге bootstrap/cache.

При запуске

php artisan cache:clear

Он будет очищен только данные, которые вы храните Cache. Файл кэша конфигурации все еще находится в bootstrap/cache.

После запуска php artisan config:clear файл будет удален из bootstrap/cache.

Проверьте исходный код ClearCommand, в bootstrap/cache отсутствует код, который удаляет любой файл кэша config / route / view, и очищается только кэш приложения.

/**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $this->laravel['events']->dispatch(
            'cache:clearing', [$this->argument('store'), $this->tags()]
        );

        $successful = $this->cache()->flush();

        $this->flushFacades();

        if (! $successful) {
            return $this->error('Failed to clear cache. Make sure you have the appropriate permissions.');
        }

        $this->laravel['events']->dispatch(
            'cache:cleared', [$this->argument('store'), $this->tags()]
        );

        $this->info('Application cache cleared!');
    }

Проверьте исходный код ConfigClearCommand , он будет удалить файл кэша конфигурации.

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

        $this->info('Configuration cache cleared!');
    }
1 голос
/ 11 марта 2020

Чтобы очистить все, вы можете сделать php artisan optimize:clear. Это приведет к:

Compiled views cleared!
Application cache cleared!
Route cache cleared!
Configuration cache cleared!
Compiled services and packages files removed!
Caches cleared successfully!

С уважением!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...