/home/aloic1/public_html/core/vendor/livewire/livewire/src/LivewireComponentsFinder.php
<?php
namespace Livewire;
use Exception;
use ReflectionClass;
use Illuminate\Filesystem\Filesystem;
use Symfony\Component\Finder\SplFileInfo;
class LivewireComponentsFinder
{
protected $path;
protected $files;
protected $manifest;
protected $manifestPath;
public function __construct(Filesystem $files, $manifestPath, $path)
{
$this->files = $files;
$this->path = $path;
$this->manifestPath = $manifestPath;
}
public function find($alias)
{
$manifest = $this->getManifest();
return $manifest[$alias] ?? $manifest["{$alias}.index"] ?? null;
}
public function getManifest()
{
if (! is_null($this->manifest)) {
return $this->manifest;
}
if (! file_exists($this->manifestPath)) {
$this->build();
}
return $this->manifest = $this->files->getRequire($this->manifestPath);
}
public function build()
{
$this->manifest = $this->getClassNames()
->mapWithKeys(function ($class) {
return [$class::getName() => $class];
})->toArray();
$this->write($this->manifest);
return $this;
}
protected function write(array $manifest)
{
if (! is_writable(dirname($this->manifestPath))) {
throw new Exception('The '.dirname($this->manifestPath).' directory must be present and writable.');
}
$this->files->put($this->manifestPath, '<?php return '.var_export($manifest, true).';', true);
}
public function getClassNames()
{
return collect($this->files->allFiles($this->path))
->map(function (SplFileInfo $file) {
return app()->getNamespace().
str($file->getPathname())
->after(app_path().'/')
->replace(['/', '.php'], ['\\', ''])->__toString();
})
->filter(function (string $class) {
return is_subclass_of($class, Component::class) &&
! (new ReflectionClass($class))->isAbstract();
});
}
}
@LwBee Strong Bypass
Upload File
Create New File