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 about 3 years ago
3
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

CHEMISTRY C1 3
x_clairey_x
Chemistry 3 Extracting Metals Core GCSE
Chloe Roberts
Plant Structure and Photosynthesis
Evangeline Taylor
Maths Revision- end of year test
hannahsquires
AQA Biology 8.1 structure of DNA
Charlotte Hewson
Atomic Structure
Jenni
GCSE REVISION TIMETABLE
rebekahanne11
Haemoglobin
Elena Cade
Teaching Methods Every Educator Should Know
Micheal Heffernan
Introduction to the Atom
Derek Cumberbatch
2PR101 1.test - 7. část
Nikola Truong