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.