Verzeichnisstruktur REDAXO 5 vs 6

Diese Dokumentation zeigt die Änderungen in der Verzeichnisstruktur zwischen REDAXO 5.x und REDAXO 6.x.

Hauptunterschiede

Der wichtigste Unterschied ist, dass REDAXO 6 als Composer-Paket konzipiert ist und daher eine andere Struktur verwendet.

REDAXO 5.x Struktur (Standalone)

/
├── assets/                      # Öffentliche Assets
├── index.php                    # Frontend Einstiegspunkt
├── media/                       # Medienpool-Dateien
├── redaxo/
│   ├── bin/                     # Konsolen-Skripte
│   ├── cache/                   # Cache-Dateien
│   ├── data/                    # Konfiguration und Daten
│   │   └── core/
│   │       └── config.yml
│   ├── index.php                # Backend Einstiegspunkt
│   └── src/
│       ├── addons/              # Add-ons
│       │   ├── backup/
│       │   ├── be_style/
│       │   ├── cronjob/
│       │   ├── debug/
│       │   ├── install/
│       │   ├── media_manager/
│       │   ├── mediapool/
│       │   ├── metainfo/
│       │   ├── phpmailer/
│       │   ├── structure/
│       │   └── users/
│       └── core/
│           ├── assets/          # Backend-Assets
│           ├── fragments/       # HTML-Fragmente
│           ├── functions/       # Globale Funktionen
│           ├── lang/            # Sprachdateien
│           ├── layout/          # Backend-Layout
│           ├── lib/             # Kernklassen
│           │   ├── api_function.php
│           │   ├── autoload.php
│           │   ├── base/
│           │   ├── be/
│           │   ├── clang/
│           │   ├── console/
│           │   ├── form/
│           │   ├── login/
│           │   ├── packages/
│           │   ├── setup/
│           │   ├── sql/
│           │   ├── util/
│           │   └── var/
│           ├── pages/           # Backend-Seiten
│           ├── tests/           # PHPUnit Tests
│           └── vendor/          # Abhängigkeiten
└── composer.json

REDAXO 6.x Struktur (Composer-Paket)

/
├── assets/                      # Öffentliche Assets
├── assets_src/                  # Asset-Quelldateien
├── boot/                        # Bootstrap-Dateien
├── fragments/                   # HTML-Fragmente (aus core)
├── lang/                        # Sprachdateien (aus core)
├── pages/                       # Backend-Seiten (aus core)
├── redaxo/
│   └── src/
│       └── addons/              # Add-ons (nur debug, install)
├── schemas/                     # JSON/YAML Schemas
├── setup/                       # Setup-Dateien
├── src/                         # PSR-4 Quellcode
│   ├── AbstractProject.php
│   ├── Addon/
│   ├── ApiFunction/
│   ├── Backend/
│   ├── Backup/
│   ├── Base/
│   ├── Cache.php
│   ├── Config.php
│   ├── Console/
│   ├── Content/
│   ├── Core.php                 # Hauptklasse (war: rex)
│   ├── Cronjob/
│   ├── Database/
│   ├── ErrorHandler.php
│   ├── Exception/
│   ├── ExtensionPoint/
│   ├── Filesystem/
│   ├── Form/
│   ├── Http/
│   ├── HttpClient/
│   ├── Language/
│   ├── Log/
│   ├── Mailer/
│   ├── MediaManager/
│   ├── MediaPool/
│   ├── MetaInfo/
│   ├── RexVar/
│   ├── Security/
│   ├── Setup/
│   ├── SystemReport.php
│   ├── Translation/
│   ├── Util/
│   ├── Validator/
│   └── View/
├── tests/                       # PHPUnit Tests
└── composer.json

Pfad-Variablen Änderungen

REDAXO 5.x REDAXO 6.x Beschreibung
rex_path::frontend() Filesystem\Path::frontend() Frontend-Pfad
rex_path::backend() Filesystem\Path::backend() Backend-Pfad
rex_path::core() Filesystem\Path::core() Core-Pfad
rex_path::src() Filesystem\Path::src() Quellcode-Pfad
rex_path::cache() Filesystem\Path::cache() Cache-Pfad
rex_path::data() Filesystem\Path::data() Daten-Pfad
rex_path::addon() Filesystem\Path::addon() Add-on-Pfad
rex_path::media() Filesystem\Path::media() Medien-Pfad
rex_path::assets() Filesystem\Path::assets() Assets-Pfad

Kernbereiche Reorganisation

Datenbank-Klassen

REDAXO 5.x Pfad REDAXO 6.x Pfad
redaxo/src/core/lib/sql/ src/Database/
sql.php Sql.php
table.php Table.php
column.php Column.php
index.php Index.php
foreign_key.php ForeignKey.php
schema_dumper.php SchemaDumper.php
util.php Util.php

Utility-Klassen

REDAXO 5.x Pfad REDAXO 6.x Pfad
redaxo/src/core/lib/util/ src/Util/
formatter.php Formatter.php
markdown.php Markdown.php
string.php Str.php
timer.php Timer.php
type.php Type.php
version.php Version.php
pager.php Pager.php
editor.php Editor.php

Backend-Klassen

REDAXO 5.x Pfad REDAXO 6.x Pfad
redaxo/src/core/lib/be/ src/Backend/
controller.php Controller.php
navigation.php Navigation.php
page.php Page.php

Formular-Klassen

REDAXO 5.x Pfad REDAXO 6.x Pfad
redaxo/src/core/lib/form/ src/Form/
form.php Form.php
base.php AbstractForm.php
element.php Field/BaseField.php
select.php Select/Select.php

Add-ons Integration

Einige Add-ons wurden in den Core integriert:

Add-on (5.x) Namespace (6.x)
backup Redaxo\Core\Backup
cronjob Redaxo\Core\Cronjob
media_manager Redaxo\Core\MediaManager
mediapool Redaxo\Core\MediaPool
metainfo Redaxo\Core\MetaInfo
phpmailer Redaxo\Core\Mailer
structure Redaxo\Core\Content
users Redaxo\Core\Security

Composer-Integration

REDAXO 6 verwendet Composer als Package Manager:

{
    "name": "redaxo/core",
    "type": "library",
    "description": "REDAXO CMS core package",
    "autoload": {
        "psr-4": {
            "Redaxo\\Core\\": "src"
        }
    }
}

Installation eines REDAXO 6 Projekts:

composer create-project redaxo/project my-website