4.3 Models, Repositories and Relations

Beschreibung

TYPO3 CD 2020 (zweite Auflage) Quiz am 4.3 Models, Repositories and Relations, erstellt von Pascal Bartl am 09/04/2021.
Pascal Bartl
Quiz von Pascal Bartl, aktualisiert more than 1 year ago
Pascal Bartl
Erstellt von Pascal Bartl vor mehr als 3 Jahre
4
0

Zusammenfassung der Ressource

Frage 1

Frage
Which of the following statements about domain models in Extbase is correct? (1)
Antworten
  • 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

Frage 2

Frage
What is required in an Extbase repository to prevent it from returning deleted records? (1)
Antworten
  • 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

Frage 3

Frage
What needs to be done in an Extbase repository to include hidden and deleted records in the result set? (1)
Antworten
  • 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

Frage 4

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

Frage 5

Frage
Which property annotation is required to define a relation of type 1:n in your domain model? (1)
Antworten
  • /** * @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> */

Frage 6

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

Frage 7

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

Frage 8

Frage
What needs to be configured to instruct all methods of a repository to return results ordered by a specific property? (1)
Antworten
  • 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

Frage 9

Frage
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 ]; ... }
Antworten
  • 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

Frage 10

Frage
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)
Antworten
  • 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

Frage 11

Frage
What needs to be configured to access records from the repository stored on page UID = 0? (1)
Antworten
  • 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

Frage 12

Frage
What needs to be configured to access all records, regardless of which page they are stored on? (1)
Antworten
  • 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)

Frage 13

Frage
How can a custom extension access the fe_users database table? (2)
Antworten
  • 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

Frage 14

Frage
Which statement about the Persistence Manager is correct? (1)
Antworten
  • 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”

Frage 15

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

Frage 16

Frage
What is the recommended way to access TypoScript settings in a repository? (1)
Antworten
  • 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

Frage 17

Frage
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 } } } } } }
Antworten
  • 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

Frage 18

Frage
A domain model has a relation parent to itself. Is it possible to access the relation via the Query Manager? (1)
Antworten
  • 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

Frage 19

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

Frage 20

Frage
Is it possible to use stdWrap in Extbase TypoScript settings as shown below? (1) plugin.tx_myextension_example { settings { uid.dataWrap = {page:uid} } }
Antworten
  • 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

Frage 21

Frage
What are “Switchable Controller Actions”? (2)
Antworten
  • 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
Zusammenfassung anzeigen Zusammenfassung ausblenden

ähnlicher Inhalt

Physik: Elektrizität und Energie
JohannesK
Abitur Geschichte
benutzer343
The American Dream
barbara91
WIRK Uni Wien
Lara Sophie
Mathematische Psychologie IV - MVB-Modell des Quellengedächtnisses
Johanna Brinkmann
Vetie - MiBi 2016
Fioras Hu
Forschungs- und Anwendungsfelder der Soziologie Teil 3
stelly Welly
Vetie Mibi Altfragen 2016
Ina Qu
Vetie Immunologie 168-196
verena be
Meth: QUANTI
max knoll
PR 2018/19 GESKO VO 7-12
Adrienne Tschaudi