4.6 KiB
4.6 KiB
Übersicht der Inhalt
Fett markierte Verzeichnisse und deren Inhalt sind von besonderem Interesse
- api
- docs
- API Dokumentation (openAPI 3.0)
- Login
Login.phpEndpunkt Klasse fürapi/api/login
- Logout
Logout.phpEndpunkt Klasse fürapi/api/login
- Posts
Posts.phpEndpunkt Klasse fürapi/api/postsPosts.phpEndpunkt Klasse fürapi/api/posts/{id}
- Refresh
Refresh.phpEndpunkt Klasse fürapi/api/refresh
- Register
Register.phpEndpunkt Klasse fürapi/api/register
- Users
Users.phpEndpunkt Klasse fürapi/usersUsers.phpEndpunkt Klasse fürapi/users/{id}- Image
Image.phpEndpunkt Klasse fürapi/users{id}/image
- Permissions
Permissions.phpEndpunkt Klasse fürapi/users/{id}/permissions
- Posts
Posts.phpEndpunkt Klasse fürapi/users{id}/posts
index.php- API Einstiegspunkt
- docs
- classes
- Api
Api.php: Basisklasse für Endpunkte
- ApiError
ApiError.php: Facade für Fehler die das Api zurück gibt
- Auth
AdminAuth.php: Middleware für Authentifizierung zuzüglich Admin RechteAuth.php: Middleware für AuthentifizierungOptAuth.php: Middleware für optionale Authentifizierung
- Config
Config.php: Singleton für Applikationskonfiguration
- Database
Database.php: Singleton für Datenbankzugriffe (Wrapper um PDO)
- GUID
GUID.php: Facade für GUID Algorithmen
- Input
Input.php: Facade die SimpleRoutersInputKlasse wrapped für einfacheren Zugriff auf häufig verwendete Methoden
- Models
- Post
Post.php: Modellklasse für Posts. Abstrahiert und kapselt Datenbankzugriffe
- User
User.php: Modellklasse für User. Abstrahiert und kapselt Datenbankzugriffe
- Post
- Request
Request.php: Facade die SimpleRoutersRequestKlasse wrapped für einfacheren Zugriff auf häufig verwendete Methoden
- Response
Response.php: Facade die SimpleRoutersResponseKlasse wrapped für einfacheren Zugriff auf häufig verwendete Methoden
- Api
- config
app.php: Applikationskonfigurationdatabase.php: Datenbankverbindungsdaten
- dist
- React Buildartefakte.
- react
- React Projekt
- routes
routes.php: SimpleRouter Routenkonfiguration für die Applikation
- storage:
- Speicherort für Profilbilder
- utils:
helpers.php: Kleine Helferlein
- vendor:
- Verzeichnis für Composer Pakete
Autoloader
Verwendet wird hier der Composer Autoloader. Konfiguriert werden dessen
Namespaces in der composer.json. Durch composer dump-autoload wird
der Autoloader aktualisiert sollten neue Namespaces hinzugefügt werden.
Voraussetzungen um das React Projekt zu bauen
- Node 18
- PNPM
Veränderungen Datenbank
Tabelle egb_benutzer
- Neue Spalten
token(Auth token): VarChar(36), Nullable, UNIQUE Constraint - Neue Spalten
tokenExpiry(Auth token verfall): DateTime, Nullable - Neue Spalten
refreshToken(Auth refresh token): VarChar(36), Nullable, UNIQUE Constraint - Neue Spalten
refreshExpiry(Auth refresh token verfall): VarChar(36), DateTime - Abänderung der Spalte
zeitstempel: Entfernen desON UPDATE(da sonst die Mitgliedszeit beim Ändern der Daten sich ändert) - Abänderung der Spalte
benutzername: Non-Nullable gemacht, UNIQUE Constraint - Abänderung der Spalte
email: Non-Nullable gemacht, UNIQUE Constraint - Abänderung der Spalte
passwort: Non-Nullable gemacht - Abänderung der Spalte
confirmationcode: Default aufNULLgesetzt
Tabelle egb_gaestebuch
- Abänderung der Spalte
benutzer_id: Non-Nullable gemacht - Abänderung der Spalte
beitrag: Non-Nullable gemacht - Hinzufüge eines Foreign Key Constraints auf
benutzer_idmit CASCADE (Löschen des Users löscht Beiträge)
Notwendige Anpassung für die Verzeichnisstruktur eines anderen Hosters
HTACCESS
.htaccess
- RewriteBase anpassen
react/public/.htaccess
- RewriteBase anpassen
- WICHTIG: React Projekt neu bauen damit die Datei an den korrekten Platz kopiert wird
PHP
classes/Models/User.php
- Link in der Confirmation E-Mail
config/app.php
- Alle Pfade
JS
WICHTIG: Nach allen Änderungen muss das React Projekt neu gebaut werden
react/vite.config.ts
basePfad
react/src/i18n.ts
loadPathPfad
react/src/main.tsx
createRouter.basepathPfad
react/src/api/Api.ts
BASEAPI Url
Projekt bauen
cd react
pnpm install
pnpm build