Beispielaufbau bei Setup via Composer mit helhum/typo3-secure-web
:
.
├── composer.json
├── composer.lock
├── typo3
│ ├── fileadmin
│ │ ├── _temp_
│ │ └── user_upload
│ ├── index.php
│ ├── typo3
│ │ ├── index.php
│ │ ├── install.php
│ │ └── sysext
│ ├── typo3conf
│ │ ├── ENABLE_INSTALL_TOOL
│ │ ├── ext
│ │ ├── l10n
│ │ ├── AdditionalConfiguration.php
│ │ ├── LocalConfiguration.php
│ │ └── PackageStates.php
│ ├── typo3temp
│ │ ├── assets
│ │ ├── index.html
│ │ └── var
│ └── uploads
│ ├── index.html
│ └── media
├── vendor
│ ├── autoload.php
│ ├── bin
│ │ ├── ...
│ │ ├── fluid -> ../typo3fluid/fluid/bin/fluid
│ │ ├── phpunit -> ../phpunit/phpunit/phpunit
│ │ ├── typo3 -> ../typo3/cms-cli/typo3
│ │ └── typo3cms -> ../helhum/typo3-console/Scripts/typo3cms
│ ├── cogpowered
│ │ └── finediff
│ ├── composer
│ │ ├── autoload_ ...
│ │ └── ClassLoader.php
│ ├── cweagans
│ │ └── composer-patches
│ ├── doctrine
│ │ ├── ...
│ │ └── lexer
│ ├── helhum
│ │ ├── console-autoload-include.php
│ │ ├── typo3-composer-setup
│ │ ├── typo3-console
│ │ ├── typo3-console-plugin
│ │ └── typo3-secure-web
│ ├── symfony
│ │ ├── console
│ │ ├── debug
│ │ ├── finder
│ │ ├── polyfill-mbstring
│ │ ├── process
│ │ └── yaml
│ ├── ...
│ ├── typo3
│ │ ├── autoload-include.php
│ │ ├── class-alias-loader
│ │ ├── cms-cli
│ │ └── cms-composer-installers
│ ├── typo3-console
│ │ └── composer-auto-setup
│ └── typo3fluid
│ └── fluid
└── web
├── fileadmin -> ../typo3/fileadmin
├── index.php
├── typo3
│ ├── index.php
│ ├── install.php
│ └── sysext
└── typo3temp
└── assets -> ../../typo3/typo3temp/assets
111 directories, 34 files
Extensions erweitern die Funktionalität von TYPO3 und bestehen aus einem Ordner mit weiteren Dateien. Sie können PHP und andere Dateien wie CSS und JS enthalten.
TYPO3 selbst besteht schon ausschließlich aus Extensions, diese befinden sich unter
typo3/sysext
. Der Ordner steht für “Systemextensions”.
Eigene Extensions werden unterhalb von typo3conf/ext/
abgelegt.
Früher wurden Konfigurationen für die Installation noch im fileadmin
abgelegt, mittlerweile
hat sich hier die Verwendung von sogenannten Sitepackages durchgesetzt. Dies sind Extensions welche
keine besondere Funktionalität, wie z.B. Mailversand, mitbringen, sondern das System als solches
konfigurieren.
Weitere Abhängigkeiten die mittels composer
installiert werden liegen im vendor
Ordner.
TYPO3 verwendet eine eigene Datenbank und keine Prefixe um sich von anderer Software abzugrenzen,
wie manch anderes System.
Dafür werden Prefixe bei Tabellen verwendet. So z.B. cf_
für das Caching-Framework, be
für
Backend, fe
für Frontend und sys
für System.
TYPO3 kennt grundlegend 2 Tabellen-Arten, einmal normale Tabellen die Daten vorhalten, und
mm
-Tabellen für Relationen.
Letztere sollten immer mit einem Suffix sys_category_record_mm
kenntlich gemacht werden und
idealerweise im Namen beinhalten welche Tabellen verknüpft werden. Im Beispiel sys_category
mit
anderen records wie tt_content
.
Tabellen sollten immer über eine Spalte uid
und pid
verfügen. Zudem gibt es einige weitere
Konventionen die in der TCA-Reference nachgelesen werden können. Auch die Relationen haben gewisse
Konventionen was die Spalten betrifft, so gibt es dort uid_local
und uid_foreign
.