Skip to content

Commit

Permalink
fix route cache
Browse files Browse the repository at this point in the history
  • Loading branch information
summerblue committed Jun 16, 2019
1 parent c3e28f9 commit 2b8d504
Showing 1 changed file with 27 additions and 12 deletions.
39 changes: 27 additions & 12 deletions src/Frozennode/Administrator/AdministratorServiceProvider.php
@@ -1,5 +1,7 @@
<?php

namespace Frozennode\Administrator;

use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
Expand All @@ -9,6 +11,7 @@
use Frozennode\Administrator\Config\Factory as ConfigFactory;
use Frozennode\Administrator\Actions\Factory as ActionFactory;
use Frozennode\Administrator\DataTable\Columns\Factory as ColumnFactory;

class AdministratorServiceProvider extends ServiceProvider
{
/**
Expand All @@ -24,12 +27,7 @@ public function boot()
{
$this->loadViewsFrom(__DIR__.'/../../views', 'administrator');

// Hack for laravel config cache
if (app()->runningInConsole()) {
\Config::set('administrator', []);
} else {
$this->mergeConfigFrom(config_path('administrator.php'), 'administrator');
}
$this->fixConfigAndRouteCacheIfNeeded();

$this->loadTranslationsFrom(__DIR__.'/../../lang', 'administrator');
$this->publishes([
Expand All @@ -51,12 +49,7 @@ public function register()
include __DIR__.'/../../viewComposers.php';
include __DIR__.'/../../helpers.php';

// Hack for laravel config cache
if (app()->runningInConsole()) {
\Config::set('administrator', []);
} else {
$this->mergeConfigFrom(config_path('administrator.php'), 'administrator');
}
$this->fixConfigAndRouteCacheIfNeeded();

// Load route with web middleware
Route::group([
Expand Down Expand Up @@ -125,4 +118,26 @@ public function setLocale()
$this->app->setLocale($locale);
}
}

public function fixConfigAndRouteCacheIfNeeded()
{
// Hack for laravel config cache
$this->mergeConfigFrom(config_path('administrator.php'), 'administrator');
if (app()->runningInConsole()) {
$configs = \Config::get('administrator');
$configs = $this->filter_recursive($configs);
\Config::set('administrator', $configs);
}
}

public function filter_recursive(&$array)
{
foreach ( $array as $key => $item) {
is_array($item) && $array[$key] = $this->filter_recursive($item);
if (is_callable($array[$key])) {
unset($array[$key]);
}
}
return $array;
}
}

0 comments on commit 2b8d504

Please sign in to comment.