%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/nunomaduro/larastan/src/Support/ |
Upload File : |
<?php
declare(strict_types=1);
namespace NunoMaduro\Larastan\Support;
use Generator;
use PHPStan\File\FileHelper;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use RegexIterator;
use function count;
use function explode;
use function is_dir;
use function iterator_to_array;
use function str_replace;
final class ViewFileHelper
{
/**
* @param list<non-empty-string> $viewDirectories
*/
public function __construct(private array $viewDirectories, private FileHelper $fileHelper)
{
if (count($viewDirectories) === 0) {
$this->viewDirectories = [resource_path('views')]; // @phpstan-ignore-line
}
}
public function getAllViewFilePaths(): Generator
{
foreach ($this->viewDirectories as $viewDirectory) {
$absolutePath = $this->fileHelper->absolutizePath($viewDirectory);
if (! is_dir($absolutePath)) {
continue;
}
$views = iterator_to_array(
new RegexIterator(
new RecursiveIteratorIterator(new RecursiveDirectoryIterator($absolutePath)),
'/\.blade\.php$/i'
)
);
foreach ($views as $view) {
yield $view->getPathname();
}
}
}
public function getAllViewNames(): Generator
{
foreach ($this->viewDirectories as $viewDirectory) {
$absolutePath = $this->fileHelper->absolutizePath($viewDirectory);
if (! is_dir($absolutePath)) {
continue;
}
$views = iterator_to_array(
new RegexIterator(
new RecursiveIteratorIterator(new RecursiveDirectoryIterator($absolutePath)),
'/\.blade\.php$/i'
)
);
foreach ($views as $view) {
if (str_contains($view->getPathname(), 'views'.DIRECTORY_SEPARATOR.'vendor') || str_contains($view->getPathname(), 'views'.DIRECTORY_SEPARATOR.'errors')) {
continue;
}
$viewName = explode($viewDirectory.DIRECTORY_SEPARATOR, $view->getPathname());
yield str_replace([DIRECTORY_SEPARATOR, '.blade.php'], ['.', ''], $viewName[1]);
}
}
}
}