- B.title - B.description - R.uid AS ref_uid - F.identifier AS file_id sys_file_refenrence AS R - uid sys_file AS F - identifier tx_mebigdataexample_domain_model_book AS B - uid - title - description - …
# CREATE VIEW tx_mebigdataexample_domain_model_booklist AS SELECT b.uid, b.pid, b.title, b.description, sys_file_reference.uid as ref_uid, sys_file.identifier as file_id FROM tx_mebigdataexample_domain_model_book as b INNER JOIN sys_file_reference ON b.uid = sys_file_reference.uid_foreign INNER JOIN sys_file ON sys_file_reference.uid_local = sys_file.uid WHERE sys_file_reference.tablenames = 'tx_mebigdataexample_domain_model_book' group by b.uid order by b.sorting, sys_file_reference.sorting_foreign Anlage des Views
# CREATE VIEW tx_mebigdataexample_domain_model_booklist AS SELECT b.*, sys_file_reference.uid as ref_uid, sys_file.identifier as file_id FROM tx_mebigdataexample_domain_model_book as b INNER JOIN sys_file_reference ON b.uid = sys_file_reference.uid_foreign INNER JOIN sys_file ON sys_file_reference.uid_local = sys_file.uid WHERE sys_file_reference.tablenames = 'tx_mebigdataexample_domain_model_book' group by b.uid order by b.sorting, sys_file_reference.sorting_foreign Anlage des Views mit allen Spalten der Haupttabelle
repository */ class BooklistRepository extends Repository { private const ALLOWED_METHOD_PREFIX = 'find'; public function __call($methodName, $arguments) { if (self::ALLOWED_METHOD_PREFIX !== substr($methodName, 0, 4)) { throw new \BadMethodCallException( sprintf( 'You called method "%s". Only find methods are allowed!', $methodName ) ); } parent::__call($methodName, $arguments); } } Auszug aus dem Repository
Nutzung komplett unabhängig von der Repository-Struktur die Extbase bietet • Einsatz des QueryBuilders • Unabhängig vom jeweiligen Datenbank-System • Ergebnisse kommen als einfache Arrays zurück
= GeneralUtility::makeInstance( \TYPO3\CMS\Core\Cache\CacheManager::class )->getCache('myext_mycache'); // If $entry is null, it hasn't been cached. Calculate the value and store it: if (($entry = $cache->get($cacheIdentifier)) === FALSE) { $entry = $this->calculateMagic(); // [calculate lifetime and assigned tags] // Save value in cache $cache->set($cacheIdentifier, $entry, $tags, $lifetime); } return $entry; } Einfacher Zugriff auf den Cache