Refactor plugin system (part 2)
This commit is contained in:
parent
93183debda
commit
d92e1738dc
@ -94,14 +94,22 @@ class PluginManager
|
||||
]), 5);
|
||||
}
|
||||
|
||||
$plugins->put($name, new Plugin($directory, $manifest));
|
||||
$plugin = new Plugin($directory, $manifest);
|
||||
if ($this->enabled->contains('name', $name)) {
|
||||
$plugin->setEnabled(true);
|
||||
}
|
||||
$plugins->put($name, $plugin);
|
||||
});
|
||||
|
||||
// disable unsatisfied here
|
||||
|
||||
$this->registerAutoload($plugins->mapWithKeys(function ($plugin) {
|
||||
return [$plugin->namespace => $plugin->getPath().'/src'];
|
||||
}));
|
||||
$this->registerAutoload(
|
||||
$plugins->filter(function ($plugin) {
|
||||
return $plugin->isEnabled();
|
||||
})->mapWithKeys(function ($plugin) {
|
||||
return [$plugin->namespace => $plugin->getPath().'/src'];
|
||||
})
|
||||
);
|
||||
|
||||
$this->booted = true;
|
||||
}
|
||||
|
@ -29,6 +29,17 @@ class PluginManagerTest extends TestCase
|
||||
app('plugins')->boot();
|
||||
}
|
||||
|
||||
public function testDoNotLoadDisabled()
|
||||
{
|
||||
$dir = config('plugins.directory');
|
||||
config(['plugins.directory' => storage_path('mocks')]);
|
||||
|
||||
$manager = $this->rebootPluginManager(app('plugins'));
|
||||
$this->assertFalse(class_exists('Fake\Faker'));
|
||||
|
||||
config(['plugins.directory' => $dir]);
|
||||
}
|
||||
|
||||
public function testReportDuplicatedPlugins()
|
||||
{
|
||||
$this->mock(Filesystem::class, function ($mock) {
|
||||
@ -75,11 +86,13 @@ class PluginManagerTest extends TestCase
|
||||
{
|
||||
$dir = config('plugins.directory');
|
||||
config(['plugins.directory' => storage_path('mocks')]);
|
||||
option(['plugins_enabled' => json_encode([['name' => 'fake', 'version' => '0.0.0']])]);
|
||||
|
||||
$this->assertFalse(class_exists('Fake\Faker'));
|
||||
$manager = $this->rebootPluginManager(app('plugins'));
|
||||
$this->assertTrue(class_exists('Fake\Faker'));
|
||||
|
||||
config(['plugins.directory' => $dir]);
|
||||
option(['plugins_enabled' => '[]']);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user