Skip to main content
DAYZERO Portál je klasická serverová PHP aplikace s vlastním lehkým frameworkem (žádný Symfony, Laravel ani Slim). Ohlíží se na REST API, které využívá jak frontend portálu, tak externí integrace.

Stack

VrstvaTechnologie
JazykPHP 8+
DatabázeMySQL 8+ (přes PDO)
Cache / lockfilesystem (.cron.lock, sessions)
Šablonyčisté PHP *.php views
HTTPApache (s .htaccess rewrite na entrypoint)
MailSMTP (Hostinger)
Cronsystémový cron volá cron.php?key=…
OAuthDiscord (OAuth2), Steam (OpenID 2.0)
PlatbyFIO Bank API, SPAYD, Pay By Square

Vrstvy aplikace

┌─────────────────────────────────────────────────────┐
│                  default.php (entry)                │
│              ↓                                      │
│        Router (config/routes.json)                  │
│              ↓                                      │
│   Middleware: auth, admin, rate_limit               │
│              ↓                                      │
│   Controller   (user/admin/auth/public/api)         │
│              ↓                                      │
│   Service / Facade  (Core/Services, Core/Model)     │
│              ↓                                      │
│   Repository / Database (Core/Database, PDO)        │
└─────────────────────────────────────────────────────┘

Adresářový pohled

/  (root)
├── default.php          # Hlavní entry point pro web
├── cron.php             # Cron entry point (chráněný klíčem)
├── anthem_gate.php      # Speciální endpoint pro audio streaming
├── .htaccess            # Apache rewrites
├── config/              # JSON konfigurace
│   ├── app.json
│   ├── routes.json
│   └── api.json
├── lang/                # Lokalizace
│   ├── cs_CZ.json
│   ├── en_US.json
│   └── custom/          # Admin overrides
├── src/
│   ├── autoload.php
│   ├── Core/            # Framework, services, infra
│   ├── Api/V1/          # REST API třídy
│   ├── auth/            # Login, registrace, 2FA
│   ├── user/            # Uživatelské controllery a views
│   ├── admin/           # Admin panel
│   ├── public/          # Veřejné stránky (profily, frakce)
│   └── layouts/         # Sdílené layouty
├── uploads/             # Nahrané soubory
├── logs/                # Aplikační logy
├── database_migrations/ # SQL migrace
├── schema.sql           # Kompletní schéma DB
├── API.md               # Plný popis REST API
└── RELAY_FORMAT_SPEC.md # NDJSON formát logů z DayZ serveru

Tok požadavku

1

Apache převzít požadavek

.htaccess přesměruje vše na default.php.
2

Router rozhodne

Vyhledá v routes.json cestu, určí controller, akci a roli.
3

Middleware

Ověří autentizaci, role a rate limit.
4

Controller

Vykoná akci, dotáže se služeb a fasád.
5

View / JSON

Buď render PHP šablony (web) nebo JSON odpověď (API).

Klíčové principy

  • Žádný framework navíc — vlastní řešení udržuje stack lehký a předvídatelný.
  • JSON konfiguraceapp.json, routes.json jsou jediný zdroj pravdy.
  • Session-based auth — žádný token v hlavičkách, vše přes cookies.
  • Cron-driven přepočítávání — achievementy, ingest a synchronizace běží mimo požadavek.
  • Lokalizace všude — všechny stringy mají _key a překlady v lang/.

Související

Adresářová struktura

Detailní mapa souborů.

Konfigurace

app.json, env proměnné, secrets.

Routing

Jak fungují cesty a middleware.

Datový model

Přehled databázového schématu.