清除Lumen上的视图缓存

时间:2015-08-30 21:33:16

标签: laravel artisan lumen

几周前,我在Laravel 5.1中遇到了同样的问题,我可以用this solution解决这个问题。

但是,现在我在Lumen面临同样的问题,但我无法调用php artisan view:clear来清除缓存的文件。还有其他方法吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

流明中的视图缓存没有命令,但您可以轻松创建自己的命令或使用我在答案末尾找到的迷你包。

首先,将此文件放在app/Console/Commands文件夹中(如果您的应用与App不同,请务必更改命名空间):

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class ClearViewCache extends Command
{

    /**
     * The name and signature of the console command.
     *
     * @var string
     */

    protected $name = 'view:clear';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Clear all compiled view files.';

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

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $cachedViews = storage_path('/framework/views/');
        $files = glob($cachedViews.'*');
        foreach($files as $file) {
            if(is_file($file)) {
                @unlink($file);
            }
        }
    }
}

然后打开app/Console/Kernel.php并将命令放在$commands数组中(再次注意命名空间):

protected $commands = [
        'App\Console\Commands\ClearViewCache'
];

您可以通过运行

验证一切正常
php artisan

在项目的根目录中。

现在您将看到新创建的命令:

enter image description here

您现在可以像在laravel中一样运行它。

修改

我为此创建了一个小(MIT)package,你可以用作曲家来要求它:

composer require baao/clear-view-cache

然后添加

$app->register('Baao\ClearViewCache\ClearViewCacheServiceProvider');

bootsrap/app.php并使用

运行它
php artisan view:clear