Typo3 Flow: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(Charakteristia)
Zeile 9: Zeile 9:
 
** template engine
 
** template engine
  
= Charakteristia =
+
= FLOW3 und Extbase =
== FLOW3 und Extbase ==
+
 
 +
'''Charakteristia'''
 +
 
 
* FLOW3 hingegen verwendet einen 128-Bit-Hexadezimalzahl als Kennzeichner. Tatsächlich ist die Implementierung eines solchen Identifikators dem Entwickler überlassen, solange die Eindeutigkeit gewährleistet ist.
 
* FLOW3 hingegen verwendet einen 128-Bit-Hexadezimalzahl als Kennzeichner. Tatsächlich ist die Implementierung eines solchen Identifikators dem Entwickler überlassen, solange die Eindeutigkeit gewährleistet ist.
  
Zeile 24: Zeile 26:
 
** Herrausfinden eines Datentyps, Parametertyp anhand der Kommentare: also WICHTIG: Typen angeben in Form von @param int $var ansonsten im Zweifel Fehler!!!
 
** Herrausfinden eines Datentyps, Parametertyp anhand der Kommentare: also WICHTIG: Typen angeben in Form von @param int $var ansonsten im Zweifel Fehler!!!
  
== Verzeichnisstruktur ==  
+
= Verzeichnisstruktur =
 
klare Verzeichnisstruktur ergibt Klassennamenstruktur, etc
 
klare Verzeichnisstruktur ergibt Klassennamenstruktur, etc
  
Zeile 64: Zeile 66:
 
** Struktur der DB Tabellen
 
** Struktur der DB Tabellen
  
= Quellen ==
+
= fluid =
 +
 
 +
<source lang="html">
 +
<h2>{f:translate( key : 'customers' )}</h2>
 +
<table>
 +
<tr>
 +
<th>{f:translate( key: 'customer.number' )}</th>
 +
<th>{f:translate( key: 'customer.name' )}</th>
 +
</tr>
 +
<f:for each="{customers}" as="customer">
 +
<tr>
 +
<td>{customer.number}</td>
 +
<td>{customer.name}</td>
 +
</tr>
 +
</f:for>
 +
</table>
 +
</source>
 +
 
 +
<source lang="php">
 +
$view->assign('customer', $customer);
 +
 
 +
</source>
 +
= Quellen =
 
* [http://www.typo3lexikon.de/typo3-tutorials/extensions/fluid.html deutsches Fluid Tutorial]
 
* [http://www.typo3lexikon.de/typo3-tutorials/extensions/fluid.html deutsches Fluid Tutorial]
* [https://www.mittwald.de/fileadmin/downloads/pdf/dokus/Extbase_Fluid_Dokumentation.pdf Extbase_Fluid_Dokumentation.pdf von mittwald]
+
* [https://www.mittwald.de/fileadmin/downloads/pdf/dokus/Extbase_Fluid_Dokumentation.pdf ausführliche Extbase_Fluid_Dokumentation.pdf von mittwald]
 
* [http://wiki.typo3.org/Fluid Fluid englisches Fluid Tutorial]
 
* [http://wiki.typo3.org/Fluid Fluid englisches Fluid Tutorial]

Version vom 25. Februar 2013, 20:22 Uhr

Typo3 V4.3 < * < V5

durch die Extensions extbase und fluid läßt sich schon ab typo3 V4.3 zukunftsicher für typo3 V5 entwickeln!

Aktivierung der schon vorhandenen Extensions im Erweiterungsmanager

  • extbase - löst pi_base Klasse ab
    • MVC Framework (von flow3) für domainorientierte Erweiterungen
  • fluid
    • template engine

FLOW3 und Extbase

Charakteristia

  • FLOW3 hingegen verwendet einen 128-Bit-Hexadezimalzahl als Kennzeichner. Tatsächlich ist die Implementierung eines solchen Identifikators dem Entwickler überlassen, solange die Eindeutigkeit gewährleistet ist.
  • Convention over Configuration - Konvention steht über Konfiguration
    • vieles ergibt sich aus der gleichen Namensbildung z.B. Klassennamen ähnlich wenn nicht gleich Tabellennamen
    • die Verzeichnisstruktur einer Erweiterung muss die Namensräume der Klassen widerspiegeln und umgekehrt.
    • ZB aus der Klassenbezeichnung ergibt sich die Ordnerstruktur Tx_extensionname_Controller_MyProjektController => ext/extensionname/Controller/MyProjektController.php
  • MVC
    • Datenmodell -- Anwenungsschicht; objektorientiert, Klassen werden in DB(Tabellen) abgebildet
    • View
    • Controller
  • Reflection API
    • Herrausfinden eines Datentyps, Parametertyp anhand der Kommentare: also WICHTIG: Typen angeben in Form von @param int $var ansonsten im Zweifel Fehler!!!

Verzeichnisstruktur

klare Verzeichnisstruktur ergibt Klassennamenstruktur, etc

  • Classes
    • Controller -- hier muss mindestens ein Controller sein
    • Domain
      • Model -- Klassen bilden das Datenmodel des MVC-Models
      • Repository
      • Validator
    • Views -- Objekte bilden die Präsentationsschicht des MVC-Models
    • ViewHelpers -- optional
  • Configuration -- Konfigurationsdateien die noch nötig sind
    • FlexForms
    • TCA -- Table Configuration Array beschreibt das Verhalten der Datenbanktabellen
      • z.B die Datentypen inklusive Relationen zwischen Tabellen bzw Objekten
    • TypoScript
  • Resources
    • Private -- die der Besucher nicht direkt lesen darf, evt. mit .htaccess zu schützen
      • Templates
      • Language
      • Layout
      • Partial
    • Public -- CSS, Images die Besucher direkt lesen dürfen
  • ext_emconf.php
    • wird vom Extensionmanager gelesen
    • Informationen über Erweiterung, Versionsnummer, Autor, Einstellungen/Konflikte über Abhängigkeiten zu anderen Erweiterungen.
  • ext_localconf.php
    • wird bei jedem Frontend-, Backendseitenaufruf gelesen
    • Konfiguration
  • ext_tables.php
    • Erweiterung der ext_loclconf.php zB. Datenbanktabelleninformation
  • ext_tables.sql
    • Struktur der DB Tabellen

fluid

<h2>{f:translate( key : 'customers' )}</h2>
<table>
	<tr>
		<th>{f:translate( key: 'customer.number' )}</th>
		<th>{f:translate( key: 'customer.name' )}</th>
	</tr>
	<f:for each="{customers}" as="customer">
		<tr>
			<td>{customer.number}</td>
			<td>{customer.name}</td>
		</tr>
	</f:for>
</table>
$view->assign('customer', $customer);

Quellen