4.2 Extbase Controllers and Actions

Descripción

TYPO3 CD 2020 (zweite Auflage) Test sobre 4.2 Extbase Controllers and Actions, creado por Pascal Bartl el 09/04/2021.
Pascal Bartl
Test por Pascal Bartl, actualizado hace más de 1 año
Pascal Bartl
Creado por Pascal Bartl hace alrededor de 3 años
3
0

Resumen del Recurso

Pregunta 1

Pregunta
Which statements about Extbase controllers are correct? (2)
Respuesta
  • 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

Pregunta 2

Pregunta
What are the characteristics of the methods redirect() and forward() in a controller? (2)
Respuesta
  • 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

Pregunta 3

Pregunta
What are the differences between the controller methods forward() and redirect()? (2)
Respuesta
  • 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

Pregunta 4

Pregunta
How can you generate a HTTP status code 400? (2)
Respuesta
  • 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)

Pregunta 5

Pregunta
What are the characteristics of controllers? (2)
Respuesta
  • 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

Pregunta 6

Pregunta
Which statements about “actions” in Extbase’s controller/action concept are correct? (3)
Respuesta
  • 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)

Pregunta 7

Pregunta
How can a fallback to the default action be achieved, in order to prevent an error if a non-configured action is called? (1)
Respuesta
  • 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

Pregunta 8

Pregunta
How can a “Page Not Found” error message be displayed – HTTP code 404 – if a non-configured action is called? (1)
Respuesta
  • 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

Pregunta 9

Pregunta
Which approach is officially recommended to get an object in a controller? (1)
Respuesta
  • 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);

Pregunta 10

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

Pregunta 11

Pregunta
Which statements about the view in a controller are correct? (2)
Respuesta
  • 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

Pregunta 12

Pregunta
How do you prevent an action from being executed? (2)
Respuesta
  • 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

Pregunta 13

Pregunta
How can an invalid domain object $blog be accessed in an action new? (2)
Respuesta
  • 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

Pregunta 14

Pregunta
What is the purpose of the method errorAction() in a controller? (1)
Respuesta
  • 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

Pregunta 15

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

Pregunta 16

Pregunta
How can a non-persisting object be created from a GET request? (1)
Respuesta
  • 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

Pregunta 17

Pregunta
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 ); }
Respuesta
  • 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

Pregunta 18

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

Pregunta 19

Pregunta
In which file are custom Type Converters registered? (1)
Respuesta
  • File ext_tables.php
  • File ext_localconf.php
  • The controller
  • File Configuration/TCA/table.php
  • File Configuration/TypoScript/setup.typoscript
Mostrar resumen completo Ocultar resumen completo

Similar

Test de Matemáticas
Diego Santos
ANATOMÍA TOPOGRÁFICA DEL ABDÓMEN
Marcela Pazmiño
CIENCIAS NATURALES BLOQUE I QUINTO GRADO EDUCACIÓN PRIMARIA, MÉXICO.
NEMORIO GARCIA GARCES
El Régimen Franquista
maya velasquez
"MAPA CONCEPTUAL"
Bertha Castillo
Mapa mental (Administración de Recursos Humanos).
margreyarenas
ESTRUCTURA DEL ESTADO COLOMBIANO
eduardo cuellar
E-UNAM-2012 HISTORIA DE MEXICO
ROSA MARIA ARRIAGA
Árbol genealógico de Zeus
marvyn.goicochea
Clasificación de las voces humanas
mariajesus camino
USO DE HERRAMIENTAS DE DISEÑO AUTOCAD
mart cruzz