protected function buildBlockViews($rootId)
    {
        /** @var BlockView[] $views */
        $views = [];

        // build the root view
        $rootView       = $this->buildBlockView($rootId);
        $views[$rootId] = $rootView;
        // build child views
        $iterator = $this->rawLayout->getHierarchyIterator($rootId);
        foreach ($iterator as $id) {
            $parentView = $views[$iterator->getParent()];

            // build child view
            $view                      = $this->buildBlockView($id, $parentView);
            $parentView->children[$id] = $view;
            $views[$id]                = $view;
        }

        $viewsCollection = new BlockViewCollection($views);
        foreach ($views as $view) {
            $view->blocks = $viewsCollection;
        }

        // finish the root view
        $this->finishBlockView($rootView, $rootId);
        // finish child views
        foreach ($iterator as $id) {
            $this->finishBlockView($views[$id], $id);
        }

        return $rootView;
    }
protected function buildBlockViews($rootId)
    {
        /** @var BlockView[] $views */
        $views = [];

        // build the root view
        $rootView       = $this->buildBlockView($rootId);
        $views[$rootId] = $rootView;
        // build child views
        $iterator = $this->rawLayout->getHierarchyIterator($rootId);
        foreach ($iterator as $id) {
            $parentView = $views[$iterator->getParent()];

            // build child view
            $view                      = $this->buildBlockView($id, $parentView);
            $parentView->children[$id] = $view;
            $views[$id]                = $view;
        }

        $viewsCollection = new BlockViewCollection($views);
        foreach ($views as $view) {
            $view->blocks = $viewsCollection;
        }

        // finish the root view
        $this->finishBlockView($rootView, $rootId);
        // finish child views
        foreach ($iterator as $id) {
            $this->finishBlockView($views[$id], $id);
        }

        return $rootView;
    }
protected function buildBlockViews ( $ rootId ) { /** @var BlockView[] $views */ $ views = [ ] ; // build the root view $ rootView = $ this -> buildBlockView ( $ rootId ) ; $ views [ $ rootId ] = $ rootView ; // build child views $ iterator = $ this -> rawLayout -> getHierarchyIterator ( $ rootId ) ; foreach ( $ iterator as $ id ) { $ parentView = $ views [ $ iterator -> getParent ( ) ] ; // build child view $ view = $ this -> buildBlockView ( $ id , $ parentView ) ; $ parentView -> children [ $ id ] = $ view ; $ views [ $ id ] = $ view ; } $ viewsCollection = new BlockViewCollection ( $ views ) ; foreach ( $ views as $ view ) { $ view -> blocks = $ viewsCollection ; } // finish the root view $ this -> finishBlockView ( $ rootView , $ rootId ) ; // finish child views foreach ( $ iterator as $ id ) { $ this -> finishBlockView ( $ views [ $ id ] , $ id ) ; } return $ rootView ; }
Builds views for all blocks starting with and including the given root block

@param string $rootId

@return BlockView The root block view
Builds views for all blocks starting with and including the given root block