4.2 Extbase Controllers and Actions

Description

TYPO3 CD 2020 (zweite Auflage) Quiz on 4.2 Extbase Controllers and Actions, created by Pascal Bartl on 09/04/2021.
Pascal Bartl
Quiz by Pascal Bartl, updated more than 1 year ago
Pascal Bartl
Created by Pascal Bartl over 3 years ago
4
0

Resource summary

Question 1

Question
Which statements about Extbase controllers are correct? (2)
Answer
  • Extbase controllers are always interfaces
  • Every controller must directly extend the basis controller TYPO3\CMS\Extbase\Mvc\Controller\ActionController
  • The visibility of all properties should be protected
  • All method names in a controller must end in Action()
  • The logic implemented in controllers should be kept to a minimum

Question 2

Question
What are the characteristics of the methods redirect() and forward() in a controller? (2)
Answer
  • The redirect() method requires the controller name of the target as an argument
  • The redirect() method initiates a new HTTP request
  • The forward() method transfers the request to the target action automatically
  • The forward() method changes the URL in the way that the action name appears
  • The redirect() and forward() methods both clear the cache

Question 3

Question
What are the differences between the controller methods forward() and redirect()? (2)
Answer
  • There are no differences
  • Method $this->forward() is set as $this->request->setDispatched(false)
  • Method $this->redirect() initiates a new HTTP request; method $this->forward() does not
  • Method $this->forward() does not accept any arguments, $this->redirect() does
  • Method $this->redirect() renders a template by default; method $this->forward() does not

Question 4

Question
How can you generate a HTTP status code 400? (2)
Answer
  • die(400, null, 'Bad Request.')
  • $this->addError(400, null, 'Bad Request.')
  • new \TYPO3\CMS\Extbase\Error\Error(400, null, 'Bad Request.')
  • $this->throwStatus(400, null, 'Bad Request.')
  • Instantiate a response object and set the status code as \GuzzleHttp\Psr7\Response(400)

Question 5

Question
What are the characteristics of controllers? (2)
Answer
  • Controllers are the control and central processing unit in the MVC stack
  • Controllers are responsible for initialising domain models
  • The logic implemented in controllers should be kept to a minimum
  • All business logic should be implemented in controllers
  • Controllers validate all objects

Question 6

Question
Which statements about “actions” in Extbase’s controller/action concept are correct? (3)
Answer
  • Action methods are always static functions
  • Actions are public methods of a controller class
  • Names of action methods always end in Action, for example listAction()
  • Each action must be stored in a separate PHP file under Classes/Actions/
  • To be able to request an action of a plugin, the action has to be registered by using configurePlugin()
  • Action methods must always return a string (this is the content shown in the frontend)

Question 7

Question
How can a fallback to the default action be achieved, in order to prevent an error if a non-configured action is called? (1)
Answer
  • This is the default behaviour of Extbase
  • An appropriate configuration in file ext_localconf.php is required
  • The TypoScript setting callDefaultActionIfActionCantBeResolved can be configured
  • An errorAction() method can be implemented in the controller
  • The key routing can be used in TypoScript

Question 8

Question
How can a “Page Not Found” error message be displayed – HTTP code 404 – if a non-configured action is called? (1)
Answer
  • This is the default behaviour of Extbase
  • An appropriate configuration in the ext_localconf.php file is required
  • The TypoScript setting exceptionHandler can be configured
  • An errorAction() method can be implemented in the controller
  • The TypoScript setting throwPageNotFoundExceptionIfActionCantBeResolved can be configured

Question 9

Question
Which approach is officially recommended to get an object in a controller? (1)
Answer
  • use \Vendor\MyExtension\Domain\Repository\TagRepository; ... $this->objectManager->get(TagRepository::class)
  • use \Vendor\MyExtension\Domain\Repository\TagRepository; ... $this->objectManager->create(TagRepository::class)
  • new \Vendor\MyExtension\Domain\Repository\TagRepository
  • use \Vendor\MyExtension\Domain\Repository\TagRepository; ... $this->instanceManager->make(TagRepository::class)
  • use \TYPO3\CMS\Core\Utility\GeneralUtility; use \Vendor\MyExtension\Domain\Repository\TagRepository; ... GeneralUtility::makeInstance(TagRepository::class);

Question 10

Question
Where is the Object Manager available as $this->objectManager by default? (2)
Answer
  • In repositories
  • In ViewHelpers
  • In Fluid templates
  • In controllers
  • In domain models

Question 11

Question
Which statements about the view in a controller are correct? (2)
Answer
  • You can access the output of a view by using the method render()
  • The view can only be rendered at the end of an action method
  • The view is available in the action as $this->view
  • To prevent rendering the view, the action must return false
  • It is not possible to render a different view than the default one

Question 12

Question
How do you prevent an action from being executed? (2)
Answer
  • The action can be omitted from the TypoScript key switchableControllerActions
  • The action can be omitted from the first array of the plugin configuration in file ext_localconf.php
  • The action can be omitted from the second array of the plugin configuration in file ext_localconf.php
  • By setting the attribute deactivate in file tables.php
  • By configuring the action in the page TS key deniedActions

Question 13

Question
How can an invalid domain object $blog be accessed in an action new? (2)
Answer
  • This is always possible
  • Via the initializeNewAction() method
  • Via the errorNewAction() method
  • Via the newAction() method if the annotation @ignorevalidation $blog is set
  • Via the __destruct() method

Question 14

Question
What is the purpose of the method errorAction() in a controller? (1)
Answer
  • This method is executed if an error in the controller occurs
  • This method is executed if an error in the view occurs
  • This method is executed before the primary action
  • This method is always executed after the primary action
  • This method is executed if a validation error in the controller occurs

Question 15

Question
How can validation errors of an object $blog be accessed in a controller? (1)
Answer
  • This is not possible
  • By $blog->getErrors()
  • By $this->getErrors()
  • By $this->controllerContext->getRequest()->getErrors()
  • By $this->errors

Question 16

Question
How can a non-persisting object be created from a GET request? (1)
Answer
  • This happens automatically if the object is passed to the method as a parameter in the action
  • By using the “Object Type Converter”
  • By manually executing convertArrayToObject() in the Property Mapper
  • By setting the property mapping in TypoScript

Question 17

Question
What is the purpose of the following method in a controller? (2) use \TYPO3\CMS\Core\Utility\ArrayUtility; ... public function initializeAction() { $settings = [ ... ]; ArrayUtility::mergeRecursiveWithOverrule( $this->settings, $settings ); }
Answer
  • FlexForm settings are merged with TypoScript settings
  • Custom settings are merged with TypoScript settings
  • All empty values in the arrays, both $settings and $this->settings, are removed
  • Keys with a value __UNSET in the array $settings unset array keys with the same name in the array $this->settings

Question 18

Question
How do you retrieve the data of the current content object in Extbase? (1)
Answer
  • By accessing getContentObject()->data of the ConfigurationManager
  • By accessing $this->request->getContentObjectData()
  • By accessing $this->cObj->data
  • By accessing $this->cObj->cObjGetSingle()

Question 19

Question
In which file are custom Type Converters registered? (1)
Answer
  • File ext_tables.php
  • File ext_localconf.php
  • The controller
  • File Configuration/TCA/table.php
  • File Configuration/TypoScript/setup.typoscript
Show full summary Hide full summary

Similar

French Beginner
PatrickNoonan
Key Paintings
Julia Lee
Conceptos Generales De Robótica
fede ramos
How Parliament Makes Laws
harryloftus505
Unit 1: Business Studies GCSE
Libby Rose
Unit 2 flashcards
C R
GCSE Chemistry C1 (OCR)
Usman Rauf
GCSE REVISION TIMETABLE
Sonia Christopher
Using GoConqr to study Maths
Sarah Egan
Specific topic 7.6 Timber (processes)
T Andrews
Cuadro sinóptico de la función de la planeación
Elliot Anderson