diff --git a/typo3/sysext/core/Classes/Controller/ErrorPageController.php b/typo3/sysext/core/Classes/Controller/ErrorPageController.php index 9e3a5125cec9192a4888199d26984b372d8e9f96..6333e15bf66e35b91f3f95db31d1b1cf97a61493 100644 --- a/typo3/sysext/core/Classes/Controller/ErrorPageController.php +++ b/typo3/sysext/core/Classes/Controller/ErrorPageController.php @@ -47,6 +47,7 @@ class ErrorPageController */ public function __construct() { + // @todo: Change to StandaloneView when StandaloneView has less dependencies. $this->view = GeneralUtility::makeInstance(TemplateView::class); $this->view->getRenderingContext() ->getTemplatePaths() diff --git a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php index 81516b2406d0b27d948c80543e0c595176637f16..458e53945148987289de21f8e789ad23b1a6ea55 100644 --- a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php +++ b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php @@ -56,7 +56,8 @@ use TYPO3\CMS\Extbase\SignalSlot\Dispatcher; use TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator; use TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface; use TYPO3\CMS\Extbase\Validation\ValidatorResolver; -use TYPO3Fluid\Fluid\View\TemplateView; +use TYPO3\CMS\Fluid\View\TemplateView; +use TYPO3Fluid\Fluid\View\AbstractTemplateView; /** * A multi action controller. This is by far the most common base class for Controllers. @@ -99,7 +100,7 @@ abstract class ActionController implements ControllerInterface * * @var string */ - protected $defaultViewObjectName = \TYPO3\CMS\Fluid\View\TemplateView::class; + protected $defaultViewObjectName = TemplateView::class; /** * Name of the action method @@ -497,8 +498,8 @@ abstract class ActionController implements ControllerInterface */ protected function renderAssetsForRequest($request) { - if (!$this->view instanceof TemplateView) { - // Only TemplateView (from Fluid engine, so this includes all TYPO3 Views based + if (!$this->view instanceof AbstractTemplateView) { + // Only AbstractTemplateView (from Fluid engine, so this includes all TYPO3 Views based // on TYPO3's AbstractTemplateView) supports renderSection(). The method is not // declared on ViewInterface - so we must assert a specific class. We silently skip // asset processing if the View doesn't match, so we don't risk breaking custom Views. diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ActionControllerTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ActionControllerTest.php index b1cc18ba8f863ad732313eaae1ea72718ce225fc..fc155eaa0a407e4d1c6aa066898ad1a98ce8c5dd 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ActionControllerTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ActionControllerTest.php @@ -37,7 +37,7 @@ use TYPO3\CMS\Extbase\Reflection\ClassSchema\Method; use TYPO3\CMS\Extbase\Reflection\ReflectionService; use TYPO3\CMS\Extbase\Service\ExtensionService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; -use TYPO3Fluid\Fluid\View\AbstractTemplateView; +use TYPO3Fluid\Fluid\View\AbstractView; use TYPO3Fluid\Fluid\View\TemplateView as FluidTemplateView; /** @@ -588,7 +588,7 @@ class ActionControllerTest extends UnitTestCase ['FooterAssets', self::anything(), true] ) ->willReturnOnConsecutiveCalls('custom-header-data', 'custom-footer-data'); - $invalidView = $this->getMockBuilder(AbstractTemplateView::class)->disableOriginalConstructor()->getMockForAbstractClass(); + $invalidView = $this->getMockBuilder(AbstractView::class)->disableOriginalConstructor()->getMockForAbstractClass(); return [ [$viewWithHeaderData, 'custom-header-data', null], [$viewWithFooterData, null, 'custom-footer-data'], diff --git a/typo3/sysext/fluid/Classes/View/AbstractTemplateView.php b/typo3/sysext/fluid/Classes/View/AbstractTemplateView.php index bee7b7db3d019e00494e5b6bf523d19075171af6..b34451946b110d7f4013e96bcb4b42d40d878fb2 100644 --- a/typo3/sysext/fluid/Classes/View/AbstractTemplateView.php +++ b/typo3/sysext/fluid/Classes/View/AbstractTemplateView.php @@ -21,15 +21,15 @@ use TYPO3\CMS\Extbase\Mvc\View\ViewInterface; use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext; use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextFactory; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; +use TYPO3Fluid\Fluid\View\AbstractTemplateView as Typo3FluidAbstractTemplateView; use TYPO3Fluid\Fluid\View\Exception\InvalidTemplateResourceException; -use TYPO3Fluid\Fluid\View\TemplateView; /** * Abstract Fluid Template View. * * Contains the fundamental methods which any Fluid based template view needs. */ -abstract class AbstractTemplateView extends TemplateView implements ViewInterface +abstract class AbstractTemplateView extends Typo3FluidAbstractTemplateView implements ViewInterface { /** * @var \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/FluidTemplateContentObjectTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/FluidTemplateContentObjectTest.php index 459e880cbb7f6952cb12f0fca6ef5ce195a58f9a..4558bfd60cce597875ff470232d806bdc52fc1ab 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/FluidTemplateContentObjectTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/FluidTemplateContentObjectTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\TypoScript\TemplateService; @@ -29,14 +30,15 @@ use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3\CMS\Frontend\ContentObject\FluidTemplateContentObject; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; -use TYPO3Fluid\Fluid\View\TemplateView; +use TYPO3Fluid\Fluid\View\AbstractTemplateView; /** * Testcase */ class FluidTemplateContentObjectTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; + use ProphecyTrait; + /** * @var bool Reset singletons created by subject */ @@ -942,7 +944,7 @@ class FluidTemplateContentObjectTest extends UnitTestCase } /** - * @param TemplateView $viewMock + * @param AbstractTemplateView $viewMock * @param string|null $expectedHeader * @param string|null $expectedFooter * @test @@ -983,7 +985,7 @@ class FluidTemplateContentObjectTest extends UnitTestCase */ public function headerAssetDataProvider(): array { - $viewWithHeaderData = $this->getMockBuilder(TemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); + $viewWithHeaderData = $this->getMockBuilder(AbstractTemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); $viewWithHeaderData->expects(self::exactly(2))->method('renderSection') ->withConsecutive( [ @@ -997,7 +999,7 @@ class FluidTemplateContentObjectTest extends UnitTestCase true ] )->willReturnOnConsecutiveCalls('custom-header-data', null); - $viewWithFooterData = $this->getMockBuilder(TemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); + $viewWithFooterData = $this->getMockBuilder(AbstractTemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); $viewWithFooterData->expects(self::exactly(2))->method('renderSection') ->withConsecutive( [ @@ -1009,7 +1011,7 @@ class FluidTemplateContentObjectTest extends UnitTestCase self::anything(), true] )->willReturn(null, 'custom-footer-data'); - $viewWithBothData = $this->getMockBuilder(TemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); + $viewWithBothData = $this->getMockBuilder(AbstractTemplateView::class)->onlyMethods(['renderSection'])->disableOriginalConstructor()->getMock(); $viewWithBothData->expects(self::exactly(2))->method('renderSection') ->withConsecutive( [