4.3 Models, Repositories and Relations

Descrição

TYPO3 CD 2020 (zweite Auflage) Quiz sobre 4.3 Models, Repositories and Relations, criado por Pascal Bartl em 09-04-2021.
Pascal Bartl
Quiz por Pascal Bartl, atualizado more than 1 year ago
Pascal Bartl
Criado por Pascal Bartl mais de 3 anos atrás
5
0

Resumo de Recurso

Questão 1

Questão
Which of the following statements about domain models in Extbase is correct? (1)
Responda
  • Three different basis objects exist: entity, value object and factory
  • Properties of models should be accessed and modified directly
  • A “getter” method should be used to access a property
  • The visibility of domain model properties in Extbase should be public
  • All options listed above are wrong

Questão 2

Questão
What is required in an Extbase repository to prevent it from returning deleted records? (1)
Responda
  • The TypoScript setting setup.tx_extbase.view.hidden = 0 must be set
  • The query setting setIncludeDeleted(false) must be set
  • The parameter true must be passed to the repository method findAll()
  • The parameter true must be passed to the repository method execute()
  • Nothing: the repository does not return deleted records by default

Questão 3

Questão
What needs to be done in an Extbase repository to include hidden and deleted records in the result set? (1)
Responda
  • This is not possible. Deleted records are removed from the database
  • Both query settings setIncludeHidden() and setIncludeDeleted() need to be set to true
  • Both query settings setIgnoreEnableFields() and setEnableFieldsToBeIgnored() need to be set appropriately
  • The TCA configuration ['ctrl']['ignoreEnableFields'] of the table need to be set to true

Questão 4

Questão
Which type of relation is not possible with TCA’s inline field type (IRRE)? (1)
Responda
  • 1:n
  • n:1
  • 1:1
  • m:n
  • IRRE supports all types of relations

Questão 5

Questão
Which property annotation is required to define a relation of type 1:n in your domain model? (1)
Responda
  • /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage */
  • /** * @var \Foo\Bar\Domain\Model\Post */
  • /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Foo\Bar\Domain\Model\Post> */
  • /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage[\Foo\Bar\Domain\Model\Post] */
  • /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<1:n><\Foo\Bar\Domain\Model\Post> */

Questão 6

Questão
Which repository method tests whether the value of a domain model property, which has a m:n relation, contains a specific value? (1)
Responda
  • in()
  • between()
  • contains()
  • is()
  • inbetween()

Questão 7

Questão
Which repository method tests whether the value of a domain model property is included in a list of possible values? (1)
Responda
  • in()
  • between()
  • contains()
  • is()
  • inbetween()

Questão 8

Questão
What needs to be configured to instruct all methods of a repository to return results ordered by a specific property? (1)
Responda
  • This can be achieved in a TypoScript file.
  • By passing the parameter $order in the method’s signature
  • By adding the @sort annotation to the domain model
  • By setting the $defaultOrderings property in the repository class
  • By adding an appropriate sortby property to the TCA

Questão 9

Questão
Which statements about the following code snippet are correct? (2) <?php namespace Vendor\MyExtension\Domain\Repository; use \TYPO3\CMS\Extbase\Persistence\Repository; use \TYPO3\CMS\Extbase\Persistence\QueryInterface; class ExampleRepository extends Repository { protected $defaultOrderings = [ 'title' => QueryInterface::ORDER_DESCENDING ]; ... }
Responda
  • Records read from this repository are sorted by their title field in descending order by default
  • The additional configuration sortBy is required in the TCA of the repository to set the default sort order
  • The property $defaultOrderings has no effect by default
  • The constant ORDER_ASCENDING can be used instead of ORDER_DESCENDING to sort in ascending order
  • If the property $defaultOrderings would not exist, the repository would use the sorting defined in the TCA

Questão 10

Questão
Assuming two domain objects Book and Chapters exist, which have a 1:n-relation. How can you determine all chapters of a book which match a search string? (1)
Responda
  • By searching in the Book repository and by using in() on the property chapters
  • By searching in the Book repository and by using contains() on the property chapters
  • By searching in the Chapters repository and by using in() on the property books
  • By searching in the Chapters repository and by using contains() on the property books
  • By searching in the Chapters repository and iterating all records to find the appropriate chapters

Questão 11

Questão
What needs to be configured to access records from the repository stored on page UID = 0? (1)
Responda
  • Nothing needs to be configured as this is the default
  • The query setting in the repository must be set explicitly: setStoragePageIds([0])
  • This feature needs to be enabled in the repository explicitly: setEnableRootPage(true)
  • When the query is executed, the page UID must be passed as an argument in the function call: execute(0)
  • Records on page UID = 0 can not be accessed as a general rule

Questão 12

Questão
What needs to be configured to access all records, regardless of which page they are stored on? (1)
Responda
  • Nothing needs to be configured as this is the default
  • The TypoScript configuration persistence.storagePid needs to be set to all
  • The page restriction needs to be lifted by using the Restriction Builder
  • The query setting in the repository must be set explicitly: setRespectStoragePage(false)

Questão 13

Questão
How can a custom extension access the fe_users database table? (2)
Responda
  • By extending the domain model TYPO3\CMS\Extbase\Domain\Model\FrontendUser
  • By adding the mapping as TypoScript
  • By adding the mapping as TSconfig
  • By extending the fe_users TCA appropriately
  • The only option is to frequently copy the content of table fe_users into a custom table via a cron-job

Questão 14

Questão
Which statement about the Persistence Manager is correct? (1)
Responda
  • The Persistence Manager is loaded in the controller automatically and can be used in custom scripts
  • The Persistence Manager is loaded in the repository automatically and can be used in custom scripts
  • By using the Persistence Manager, a single object or all objects can be made persistent
  • The Persistence Manager is an internal method of Extbase which is not part of the public API
  • The Persistence Manager is of type “prototype”

Questão 15

Questão
How can you access TypoScript settings within a domain model? (1)
Responda
  • Via $this->setting
  • Via $this->settings
  • Via $this->typoscript
  • Via $this->config
  • None of the options above

Questão 16

Questão
What is the recommended way to access TypoScript settings in a repository? (1)
Responda
  • It’s recommended to access TypoScript configuration from the controller only
  • It’s recommended to access TypoScript configuration by using the Object Manager
  • It’s recommended to access TypoScript configuration by using the Settings Manager
  • TypoScript settings can be accessed by using $this->settings directly
  • TypoScript settings can be accessed by using $settings directly

Questão 17

Questão
Which statments about the following TypoScript code are correct? (2) plugin.tx_myextension { persistence { classes { Vendor\MyExtension\Domain\Model\Client { mapping { tableName = fe_users columns { first_name.mapOnProperty = name } } } } } }
Responda
  • The code has no effect: a fully qualified class name must be used as a tableName value
  • The property name of the model Client maps to the field first_name of the database table fe_users
  • The code has no effect: table and attribute names have to be written in UpperCamelCase
  • Only one property can be mapped between two tables
  • All properties are mapped by default if their name scheme matches

Questão 18

Questão
A domain model has a relation parent to itself. Is it possible to access the relation via the Query Manager? (1)
Responda
  • Yes, this is possible without any configuration
  • Yes, if the relation has the annotation @selfreference
  • Yes, if the TypoScript key features.selfreference = 1 is set
  • This is not possible – no error message is generated
  • This is not possible – an error message is generated

Questão 19

Questão
How can we make a TypoScript object available in a controller? (1)
Responda
  • Via $this->configurationManager->getContentObject()->data
  • Via $this->cObj
  • By utilising the “ContentObjectRenderer”
  • By utilising the “ContentObjectModel”
  • This is not possible in a controller

Questão 20

Questão
Is it possible to use stdWrap in Extbase TypoScript settings as shown below? (1) plugin.tx_myextension_example { settings { uid.dataWrap = {page:uid} } }
Responda
  • Yes, this is supported out-of-the-box
  • Yes, but this needs to be activated in the Extbase configuration
  • Yes, you have to use PHP code to process stdWrap functions
  • Yes, but extbaseWrap must be used instead of dataWrap
  • No, this is not supported and not possible at all

Questão 21

Questão
What are “Switchable Controller Actions”? (2)
Responda
  • An option to limit which controller-action-combinations are executable
  • An option to switch between actions at run time
  • An option to control the sort order of actions shown in the backend
  • A configuration option to switch between backend users
  • An option to switch between controllers, based on actions

Semelhante

ESTRUTURA DAS PALAVRAS - Morfologia
Viviana Veloso
FUNÇÕES DA CRIMINOLOGIA.
fcmc2
Origem das Palavras em Português
Alessandra S.
Grandes Filósofos
Luiz Fernando
TICs na Matemática
Erika Lopes
Plano de estudos ENEM - Parte 2 *Exatas/Biológicas
Alice Sousa
Geografia - Mapa do Brasil
GoConqr suporte .
Trabalho de Português
Williana Karoline Vieira Fontenele
RESUMO DE LITERATURA (PARTE 1)
Ana Loss
Origem da Vida
Ariane Freitas
Contextualização da disciplina - Tecnologias na formação profissional - Saúde
Fabrícia Assunção