Devise\Pages\Interpreter\ViewOpener::findAllIncludedViews PHP Method

findAllIncludedViews() public method

Recursively finds every view that is included inside this view
public findAllIncludedViews ( $viewPath, $ignore = [] ) : [type]
return [type]
    public function findAllIncludedViews($viewPath, $ignore = [])
    {
        $content = $this->openViewPath($viewPath);
        $includes = $this->includeStatements($content);
        $ignore[] = $viewPath;
        foreach ($includes as $include) {
            if (!in_array($include, $ignore)) {
                $ignore[] = $include;
                $includes = array_merge($includes, $this->findAllIncludedViews($include, $ignore));
            }
        }
        return array_unique($includes);
    }

Usage Example

Beispiel #1
0
 public function test_it_finds_all_included_views()
 {
     $finder = m::mock('Illuminate\\View\\FileViewFinder');
     $finder->shouldReceive('find')->times(4)->andReturn(__DIR__ . '/../../../fixtures/devise-views/view7.blade.php', __DIR__ . '/../../../fixtures/devise-views/view8.blade.php', __DIR__ . '/../../../fixtures/devise-views/view9.blade.php', __DIR__ . '/../../../fixtures/devise-views/view9.blade.php');
     $obj = new ViewOpener($finder);
     $views = $obj->findAllIncludedViews('view7');
     assertEquals(["devise::admin.pages.page-versions._cards", "devise::view10", "view9", "view7"], $views);
 }