swaped to ryans solution

This commit is contained in:
iantasker
2021-03-12 14:17:51 +00:00
parent 356afa73e8
commit 065ad22698
+10 -24
View File
@@ -35,7 +35,16 @@ abstract class PluginServiceProvider extends ServiceProvider
foreach ($this->resources() as $resource) {
Filament::registerResource($resource);
$this->registerWithLivewire($resource);
}
foreach ($this->resources() as $resource) {
foreach ($resource::relations() as $relation) {
Livewire::component($relation::getName(), $relation);
}
foreach ($resource::routes() as $route) {
Livewire::component($route->page::getName(), $route->page);
}
}
foreach ($this->roles() as $role) {
@@ -106,27 +115,4 @@ abstract class PluginServiceProvider extends ServiceProvider
{
return $this->widgets;
}
private function registerWithLivewire($resource)
{
$filesystem = new Filesystem();
$reflector = new \ReflectionClass($resource);
$directory = Str::of($reflector->getFileName())->before('.php');
$namespace = Str::of($resource)->before('.php');
collect($filesystem->allfiles($directory))
->map(function (SplFileInfo $file) use ($namespace) {
return (string) Str::of($namespace)
->append('\\', $file->getRelativePathname())
->replace(['/', '.php'], ['\\', '']);
})
->each(function ($class) use ($namespace) {
$alias = Str::of($class)
->replace(['/', '\\'], '.')
->explode('.')
->map([Str::class, 'kebab'])
->implode('.');
Livewire::component($alias, $class);
});
}
}