Download - Der File Abstraction Layer
04/10/2023 1File Abstraction Layer
File Abstraction
LayerDie neue Datei-Abstraktionsschicht in
TYPO3 6.0
04/10/2023File Abstraction Layer 2
Agenda• Grundlagen, Ziele
• Begrifflichkeiten
• Architektur-Übersicht
• FAL und DAM?
• Auswirkungen für Redakteure
• Verwendung durch Entwickler
04/10/2023File Abstraction Layer 3
Grundlagen• TYPO3 verwendet PHP Datei-System Funktionen• Problematisch teilweise schon auf Windows• Alle Dateien müssen in TYPO3_site liegen
• Dateien Kopie nach uploads/ (auch mehrfach)• Vorschau-Grafiken in typo3temp/
erhöhter Speicherplatz VerbrauchUpdate von Dateien schwierigBeschreibungen / Untertitel mehrfach zu pflegen
04/10/2023File Abstraction Layer 4
Ziele• Dateien nur noch per Referenz
überflüssige Kopien entfallen
• Zentrale Pflege von Basis Meta-Daten
• Kein direkter Aufruf von File-Funktionen in TYPO3
• Möglichkeiten für externe File-Systeme
Treiber-Ebene für Aktionen nötig
• DAM soll Core-Funktionalität nutzen können
04/10/2023File Abstraction Layer 5
BegrifflichkeitenObjekte in FAL
• Ressource – Element im FS
• File – reale Datei in FS
• Folder – Ordnungseinheit im FSo Ordner in einem lokalen Dateisystem oder z.B. WebDavo Tag für z.B. Flickr
• Storage – Unix: Mounto Einhänge-Punkt eines Dateisystemso Kombination aus Treiber, Name, Pfad im Zielsystem sowie „User-MountPoints“
• Driver – Schnittstellen-Handlero Führt Aktionen im Zielsystem auso PHP-Filefunktionen / WebDav GET-POST-PUT / …
04/10/2023File Abstraction Layer 6
BegrifflichkeitenObjekte in FAL
• ProcessedFile - Bearbeitete Variante einer Dateio Hält Referenz auf Original-Dateio Bisher implementiert: verkleinertes Bild / Vorschau-Instanz
• Repositories - Referenzierte Objekte Laden
• Factory - Objekte erstellen
04/10/2023File Abstraction Layer 7
ArchitekturKlassen Struktur
Womit im Code gearbeitet wird
Was die Objekte sind
Was im Dateisystem liegt
04/10/2023File Abstraction Layer 8
ArchitekturKlassen Struktur - Treiber
• Eigenen Treiber erstellen? o AbstractDriver ableiteno An DriverRegistry registrieren
04/10/2023File Abstraction Layer 9
Architekturwas wird
indexiert/gespeichert?
• File: Datenbank (sys_file)• Folder: transient• Storage: Datenbank (sys_storage)• FileReference: Datenbank (sys_file_reference)• ProcessedFile: Datenbank
(sys_file_processedfile)
• Datenbank-Einträge: [UID]• Folder: [???]
04/10/2023File Abstraction Layer 10
ArchitekturRessourcen identifizieren
• 4 verschiedene Identifier:o Identifiero Combined Identifiero Uido Sha1 (nur intern)
• Identifier user_upload/Admin/test.html
o String, eindeutig in der StorageBsp: relativer Pfad im Fileadmin
o nutzlos ohne Storage zu kennen
• Combined Identifier 1:user_upload/Admin/test.html
o Erweiterung des Identifier um Storage UIDo System weit gültigo [StorageUid]:[Identifier]
• Uido Nur für bereits indizierte Elementeo für Referenzen
04/10/2023File Abstraction Layer 11
ArchitekturRessourcen identifizieren
• Was verwende ich wann?o Combined-Identifier:
• TypoScript, • erstmalige Übergabe „nach FAL“, • wenn händisch Dateien eingetragen werden
o Uid: intern, wann immer Möglich
• FAL mit Legacy Fileso Virtuelle Storage 0: lokales Dateisystem, TYPO3_siteo 0:uploads/pics/bla.jpg
04/10/2023File Abstraction Layer 12
ArchitekturCollections
• TYPO3 4.7: Collection Interfaces• Zentrale Möglichkeit Datensatz/Objekt-
Gruppierung• ähnlich JCF
• FAL erweitert zu FileCollectionso Folder-Collection: Alle Dateien in einem Ordnero Static Collection: Auswahl von Dateien
• Extensions: verwenden Collections Änderung der Collection an allen Punkten
04/10/2023File Abstraction Layer 13
ArchitekturStorage & Mount-Points
• Mount-Points: Top-Level Objekte für Datei-Baum
• Storages: „Top-Level-Funktion“
• File-Mount: wird „Filter“
04/10/2023File Abstraction Layer 14
FAL und DAM• FAL und DAM nicht kompatibel• FAL ersetzt nicht DAM• FAL = Dateibezogene Metadaten• DAM = Medien-bezogene Metadaten +
Kategorien
• DAM 2.0 Media Extensiono Statische Kollektionen - FALo Ordner-Basierte Kollektionen - FALo Filterbasierte Kollektionen - FAL/Media to be defined
o Status Migration noch unklar (Umfang)o Jetzt startende Projekte eher mit 6.0 Alpha anstelle von DAM
04/10/2023File Abstraction Layer 15
Auswirkungen für Redakteure
• Schauen wir uns einmal an…
04/10/2023File Abstraction Layer 16
Auswirkungen für Redakteure
• Zusätzlicher Pfeil zum Bearbeiten von Meta-Daten• Meta-Daten durch Extensions erweiterbar
04/10/2023File Abstraction Layer 17
Auswirkungen für Redakteure
• Meta-Daten ohne Media-Extension
04/10/2023File Abstraction Layer 18
Auswirkungen für Redakteure
• Meta-Daten ohne Media-Extension
04/10/2023File Abstraction Layer 19
Auswirkungen für Redakteure
04/10/2023File Abstraction Layer 20
Auswirkungen für Redakteure
04/10/2023File Abstraction Layer 21
Nutzung durch Entwickler
• Collections in einer FlexForm, field „fileCollections“(Beispiel aus Controller der media_gallery)
04/10/2023File Abstraction Layer 22
Nutzung durch Entwickler
• File-Objekte aus einem typolink-Parameter(Code Beispiel aus dem Media-Element)
04/10/2023File Abstraction Layer 23
Nutzung durch Entwickler
• TypoScript Objekt FILES(Code Beispiel: Uploads Rendering CSS Styled Content)