Typo3 Flow: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(fluid)
(Probleme)
 
(34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Extension allgemein =
+
[[typo3]]
  
* eine Extension kann mehrere Plugins haben die als Inhaltselemente auf eine Typo3 Seite hinzugefügt werden können
+
= Installation =
  
= Typo3 V4.3 < * < V5 =
+
<source lang="bash">
 
+
curl -s https://getcomposer.org/installer | php
durch die Extensions extbase und fluid läßt sich schon ab typo3 V4.3 zukunftsicher für typo3 V5 entwickeln!
+
php composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution Quickstart 2.0.0-beta1
 
+
cd Quickstart/
Aktivierung der schon vorhandenen Extensions im Erweiterungsmanager
+
./flow core:setfilepermissions sn www-data www-data
* extbase - löst pi_base Klasse ab
 
** MVC Framework (von flow3) für domainorientierte Erweiterungen
 
* fluid
 
** template engine
 
* extension_builder
 
** der neue kickstarter für extbase/fluid ...
 
 
 
= 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
 
* '''[https://de.wikipedia.org/wiki/Model_View_Controller MVC]'''
 
** Daten'''m'''odell -- Anwenungsschicht; objektorientiert, Klassen werden in DB(Tabellen) abgebildet
 
** '''V'''iew
 
** '''C'''ontroller
 
* '''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 =
 
 
 
<source lang="html4strict">
 
<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.vorwahl} / {customer.number.hauptwahl}</td>
 
<td>{customer.name}</td>
 
</tr>
 
</f:for>
 
</table>
 
 
</source>
 
</source>
  
 
+
'''Quellen'''
<source lang="php">
+
* [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html flow Quickstart]
$view->assign('customer', $customer);
+
* [http://flow.typo3.org/download.html download Versionsnummer]
</source>
 
 
 
'''interne Übersetzung'''
 
<source lang="html4strict"><td>{customer.number.vorwahl} / {customer.number.hauptwahl}</td></source>
 
=>
 
<source lang="html4strict"><td><?=$customer->getNumber()->getVorwahl()?> / <?=$customer->getNumber()->getHauptwahl()?></td></source>
 
 
 
 
 
= Arbeitsschritte zum Anlegen einer Extension=
 
 
 
= Quellen =
 
* [http://www.typo3lexikon.de/typo3-tutorials/extensions/fluid.html deutsches Fluid Tutorial]
 
* [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]
 

Aktuelle Version vom 5. September 2013, 13:43 Uhr

typo3

Installation

curl -s https://getcomposer.org/installer | php
php composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution Quickstart 2.0.0-beta1
cd Quickstart/
./flow core:setfilepermissions sn www-data www-data

Quellen