Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
301c2c6
init
tombrain Oct 5, 2026
45f2d58
Update composer.json and composer.lock for Golden Master testing setup
tombrain Oct 5, 2026
2fc9993
Restrict PHP version matrix to only 8.3 for Golden Master testing
tombrain Oct 5, 2026
8c0dfc9
Merge pull request #1 from tombrain/add_unittest_by_golden_master
tombrain Oct 5, 2026
c44219f
Refactor template system to use Composer dependencies
tombrain Oct 5, 2026
6b2447b
Add initial admin account setup and language translations
tombrain Oct 5, 2026
aab1e49
Remove error message regarding installation folder from various admin…
tombrain Oct 5, 2026
79a14fe
fix: TEsts lauf jetzt auch al HG-Action
tombrain Oct 9, 2026
8f9a77a
fix: sortiertes Lesen von Dateien
tombrain Oct 9, 2026
d376943
aktualisierung der golden master
tombrain Oct 9, 2026
9228157
refactor: update assertions to static context in test files
tombrain Oct 9, 2026
07eb9e0
fix(classlib): loadFile() liest das Spielende (n.V./i.E.)
tombrain Oct 9, 2026
46b1b76
fix(classlib): direkter Vergleich auch fuer Gleichstand am Tabellenende
tombrain Oct 9, 2026
5dc15f5
fix(classlib): Auswaertssieg am gruenen Tisch im direkten Vergleich
tombrain Oct 9, 2026
9c7a756
fix(classlib): liga::factory() statisch und mit richtigem Klassennamen
tombrain Oct 9, 2026
303fc6d
fix(classlib): aktuellerSpieltag() liefert den Spieltag aus Actual
tombrain Oct 9, 2026
2f79470
fix(classlib): ligaFussball::sortTable() ohne Warnungen
tombrain Oct 9, 2026
ae152d6
fix(classlib): calcLigaStats() zaehlt nur gespielte Partien
tombrain Oct 9, 2026
b55d317
fix(classlib): SerieToHTML() ueberschreibt die Serie nicht mehr
tombrain Oct 9, 2026
b59d29e
fix(classlib): strAfterChar() ohne Trennzeichen liefert ''
tombrain Oct 9, 2026
bcd5105
fix(classlib): readLigaDir() mit grossgeschriebener Endung
tombrain Oct 9, 2026
ac399e4
fix(classlib): HTML_icon() prueft alle Bildendungen trotz Alternativtext
tombrain Oct 9, 2026
879b178
test: Unit-Tests fuer die classlib
tombrain Oct 9, 2026
aec9ccc
fix: direkter Vergleich erkennt Gleichstand am vollen Punktestand
tombrain Oct 9, 2026
b9430e5
fix(classlib): direkter Vergleich wie in lmo-calctable.php
tombrain Oct 9, 2026
b11a928
fix: direkter Vergleich mit zehn und mehr punktgleichen Teams
tombrain Oct 9, 2026
3acb992
fix: beidseitiges Ergebnis zaehlt fuer beide Teams vollstaendig
tombrain Oct 9, 2026
f81c735
fix: Strafen ab Spieltag X zaehlen erst, wenn X erreicht ist
tombrain Oct 9, 2026
79ce96a
fix(classlib): Bonus-Gegentore mit richtigem Vorzeichen
tombrain Oct 9, 2026
854d19c
fix(classlib): Strafen wie im Kern buchen
tombrain Oct 9, 2026
e544aef
fix(classlib): beidseitiges Ergebnis (ET=3) auswerten
tombrain Oct 9, 2026
aedd892
test: Tabellen echter und konstruierter Ligen gegen Kern und classlib
tombrain Oct 9, 2026
1579d7b
fix(classlib): direkter Vergleich nur mit den Partien der Tabelle
tombrain Oct 9, 2026
0b51996
test: Kern und classlib rechnen an jedem Spieltag dieselbe Tabelle
tombrain Oct 9, 2026
2606709
fix(classlib): writeFile() mehrmals im selben Request
tombrain Oct 9, 2026
ace290f
test: Ligen ueber die classlib anlegen, speichern und wieder lesen
tombrain Oct 9, 2026
36673e5
fix(classlib): Spieltagswerte wie die Handicap-Reihenfolge erhalten
tombrain Oct 10, 2026
1fc3888
fix(classlib): writeFile() behaelt Titel und aktuellen Spieltag
tombrain Oct 10, 2026
309b42d
fix(classlib): updateAddons() findet Ligen in Unterordnern
tombrain Oct 10, 2026
fea3ed6
fix(security): lmo-rueckrunde.php nur fuer angemeldete Admins
tombrain Oct 10, 2026
2bb8fcd
test: classlib erhaelt jedes Feld der Ligadatei
tombrain Oct 10, 2026
f212e5e
Version 4.2.0
tombrain Oct 10, 2026
de2632b
fix: Rueckrunde bei ungerader Anzahl Spieltage nicht speichern
tombrain Oct 10, 2026
b962a0e
test: Rueckrunde erzeugen und Partien verschieben im Admin
tombrain Oct 10, 2026
b0e3dba
fix(classlib): Partiewerte unabhaengig von der Zeilenreihenfolge lesen
tombrain Oct 10, 2026
1ff2d9f
fix(mini): Minitabelle mit Standardeinstellungen unter PHP 8
tombrain Oct 10, 2026
fde281d
fix(mini): Meldung "Liga nicht gefunden" ohne PHP-Warnung
tombrain Oct 10, 2026
160b819
test: Addon mini (Minitabelle und Mini-Spielplan)
tombrain Oct 10, 2026
bbee40e
Version 4.2.1
tombrain Oct 10, 2026
2f3db4c
fix(ticker): Hinweis auf zugesprochenen Sieg nur beim betroffenen Spiel
tombrain Oct 10, 2026
7efce85
fix(ticker): Breite und Geschwindigkeit beim Einbinden uebergeben
tombrain Oct 10, 2026
c03b0a3
fix(ticker): Notizen bei Pokal-Ligen anzeigen
tombrain Oct 10, 2026
f13f549
fix(viewer): keine PHP-Warnung beim ersten Aufruf einer Ansicht
tombrain Oct 10, 2026
e8e1c04
fix(viewer): unbenutzte Zeile mit festem Ligenverzeichnis entfernt
tombrain Oct 10, 2026
f492f67
fix(mini): keine Tendenz am ersten Spieltag
tombrain Oct 10, 2026
3c57d09
test: Addon viewer
tombrain Oct 10, 2026
f461c98
test: Addon ticker
tombrain Oct 10, 2026
adbcc54
changelog: 4.2.1 um Minitabelle, Ticker und Viewer ergaenzt
tombrain Oct 10, 2026
09ad29d
fix(spieler): Formelspalten ohne Warnungen, Debug-Ausgabe und Abbruch
tombrain Oct 10, 2026
3b90acd
fix(spieler): Anfrageparameter der Spielerstatistik pruefen
tombrain Oct 10, 2026
0ab6ed1
test: Addon spieler
tombrain Oct 10, 2026
6e599b1
changelog: 4.2.1 um Spielerstatistik ergaenzt
tombrain Oct 10, 2026
0684935
test: Snapshots der Statistikseite nach classlib-Fix aktualisiert
tombrain Oct 10, 2026
32f1e33
ci: Actions auf v5, Runner fest auf ubuntu-24.04
tombrain Oct 10, 2026
1ecf71b
fix(classlib): voelliger Gleichstand wie im Kern nach Teamnummer
tombrain Oct 10, 2026
262e2ff
fix(classlib): Handicap-Reihenfolge (HandS) in der Gesamttabelle
tombrain Oct 10, 2026
e365e2b
test: classlib und Kern muessen auf jedem Platz dasselbe Team zeigen
tombrain Oct 10, 2026
7ff27d9
changelog: 4.2.1 um Gleichstand und Handicap der classlib ergaenzt
tombrain Oct 10, 2026
ef0b348
fix(docker): Shell-Skripte immer mit LF auschecken
tombrain Oct 10, 2026
8dcb114
ci: Tests unter PHP 8.0, 8.3 und 8.4
tombrain Oct 10, 2026
94bf762
ci: Tests auch unter PHP 8.5
tombrain Oct 10, 2026
e9ec3f8
docker: Zip-Erweiterung, Mail-Faenger und Doku fuer den Web-Container
tombrain Oct 10, 2026
e210f48
docker: Uebersichtsseite der Addons mit zwei Beispielligen
tombrain Oct 10, 2026
3e0613d
fix: PHPMailer ueber Composer, Versandfehler als Meldung statt Abbruch
tombrain Oct 10, 2026
59efe03
fix(tipp): Links in Mails ohne REQUEST_SCHEME und ohne Anfrage-Parameter
tombrain Oct 10, 2026
b96d820
fix: "Liga per E-Mail" ohne PHP-Erweiterung zip mit Meldung statt Abb…
tombrain Oct 10, 2026
b7b3610
test: Mailversand
tombrain Oct 10, 2026
845ef7b
changelog: 4.2.1 um Mailversand, PHPMailer, Docker und PHP-Versionen …
tombrain Oct 10, 2026
a47f10b
fix(admin): Ergebnis-Editor nur fuer Spieltage, die es gibt
tombrain Oct 10, 2026
2094726
test: Snapshots nach der Mail-Umstellung aktualisiert
tombrain Oct 10, 2026
ef0fd4e
test: Countdown im Mini-Spielplan nicht minutengenau vergleichen
tombrain Oct 10, 2026
6b42b2a
fix: "Alle Ligen herunterladen" ohne zip mit Meldung, Zip im Ausgabeo…
tombrain Oct 10, 2026
7479ade
fix(spieler): Loeschen einer unbekannten Spalte aendert nichts
tombrain Oct 10, 2026
355d388
test: Download der Ligadateien, unbekannte Spalte der Spielerstatistik
tombrain Oct 10, 2026
88e2864
changelog: 4.2.1 um Download und Spielerstatistik ergaenzt
tombrain Oct 10, 2026
4b50af9
docs: PHP 8.5 als hoechste unterstuetzte Version
tombrain Oct 10, 2026
8c7d722
fix(security): Include-Dateien beenden sich bei Direktaufruf
tombrain Oct 10, 2026
df1389d
fix: Sprachauswahl ohne gesetzte Sprache in der Sitzung
tombrain Oct 10, 2026
20da5db
fix: Statistikdatei ohne Partien unbekannter Mannschaften
tombrain Oct 10, 2026
225c75a
changelog: 4.2.1 um Direktaufruf-Schutz, Sprachauswahl und Statistikd…
tombrain Oct 10, 2026
4ae4af5
fix(ticker): bei mehreren Ligen zeigt jede Liga nur ihre eigenen Spiele
tombrain Oct 10, 2026
14a01a2
fix(ticker): fehlende Liga in der Liste zeigt die Meldung statt fremd…
tombrain Oct 10, 2026
e4d45b7
fix(mini): Mini-Spielplan ohne Warnung, wenn zwei Teams nie aufeinand…
tombrain Oct 10, 2026
217b6e9
fix(classlib): findTeamName() liefert alle Treffer der unscharfen Suche
tombrain Oct 10, 2026
dc55b20
test: Ticker, Viewer und Mini-Spielplan ueber mehrere Ligen
tombrain Oct 10, 2026
2f01f38
docker: Demo-Seite mit einer und mit drei Ligen
tombrain Oct 10, 2026
aacf5a5
changelog: 4.2.1 um Ticker und Mini-Spielplan ueber mehrere Ligen erg…
tombrain Oct 10, 2026
3a5bd59
test: Zeilennummer im Snapshot der PDF-Optionen nachgezogen
tombrain Oct 10, 2026
b8c6087
fix: Zufallsspielplan verliert keine Mannschaft mehr
tombrain Oct 10, 2026
ad7c8ea
test: Zufallsspielplan ohne Ausnahme fuer den Shuffle-Fehler
tombrain Oct 10, 2026
6765c0f
fix(admin): PDF-Optionen nur mit installiertem PDF-Addon laden
tombrain Oct 10, 2026
9608fb5
chore: tote Reste des PDF-Addons und lmo-paintgraph.php entfernt
tombrain Oct 10, 2026
0c90a0c
changelog: 4.2.1 um PDF-Optionen und entfernte Reste ergaenzt
tombrain Oct 10, 2026
cb48246
Merge pull request #2 from tombrain/classlib-bugfixes
tombrain Oct 10, 2026
f345b70
docs: doppelten Inhalt der README entfernt
tombrain Oct 11, 2026
db51b3e
test: PHP-Dateien der Tests immer mit LF auschecken
tombrain Oct 11, 2026
dc5a317
chore(composer): nur noch eine composer.json, vendor/ im Hauptordner
tombrain Oct 11, 2026
cc8f159
feat(install): lmo-install richtet den LMO per Composer ein
tombrain Oct 11, 2026
20b25d3
feat(admin): Version und Update-Pruefung ueber Composer und Packagist
tombrain Oct 11, 2026
8090f11
changelog: Installation per Composer und Versionspruefung ueber Packa…
tombrain Oct 11, 2026
5f9f865
changelog: Version 4.3.0
tombrain Oct 11, 2026
15ff605
Merge pull request #3 from tombrain/composer-installation
tombrain Oct 11, 2026
e798045
fix: Update-Pruefung und lmo-install robuster
tombrain Oct 11, 2026
45f9ae6
chore: Funde der statischen Analyse im alten Code bereinigt
tombrain Oct 11, 2026
fc1e8b1
chore(phpstan): statische Analyse eingerichtet
tombrain Oct 11, 2026
fc03493
changelog: PHPStan und Korrekturen nach 4.3.0
tombrain Oct 11, 2026
aaaf70b
changelog: Version 4.3.1
tombrain Oct 11, 2026
4ba88b8
fix(classlib): Variablen sind auf jedem Weg gesetzt
tombrain Oct 11, 2026
ab63096
chore(phpstan): Classlib auf Stufe 1
tombrain Oct 11, 2026
15a0fe6
changelog: Classlib mit PHPStan Stufe 1
tombrain Oct 11, 2026
e9a1877
docs(classlib): Typangaben in den Kommentaren berichtigt
tombrain Oct 11, 2026
e5f7193
chore(phpstan): Classlib auf Stufe 2, Tests auf Stufe 5
tombrain Oct 11, 2026
0b5c4e1
changelog: Classlib Stufe 2, Tests Stufe 5
tombrain Oct 11, 2026
975640e
chore(phpstan): Classlib auf Stufe 3
tombrain Oct 11, 2026
60f0d1d
fix(classlib): unlesbares Spieltagsdatum bricht das Laden nicht mehr ab
tombrain Oct 11, 2026
06a7e27
chore(phpstan): Classlib auf Stufe 5
tombrain Oct 11, 2026
5353b48
changelog: Classlib Stufe 5, Spieltagsdatum
tombrain Oct 11, 2026
58784a2
changelog: Version 4.3.2
tombrain Oct 11, 2026
6bb1d1b
Merge pull request #5 from tombrain/phpstan-classlib
tombrain Oct 11, 2026
f054279
feat(liga): LigaDaten buendelt die Werte einer Ligadatei
tombrain Oct 11, 2026
c05a413
refactor(kreuztabelle): liest die Liga ueber LigaDaten
tombrain Oct 11, 2026
8419344
refactor(seiten): Tabelle, Ergebnisse und Spielplan lesen die Liga ue…
tombrain Oct 11, 2026
8306b69
changelog: LigaDaten
tombrain Oct 11, 2026
a6508da
refactor(liga): $ligaDaten gibt es ab init.php ueberall
tombrain Oct 11, 2026
d6d2020
refactor(liga): der gesamte LMO liest die Liga ueber $ligaDaten
tombrain Oct 11, 2026
2c6c286
changelog: LigaDaten im gesamten LMO
tombrain Oct 11, 2026
9e07390
docs(lmo): 62 alte Dateien nennen die Variablen, die sie erwarten
tombrain Oct 11, 2026
1fcf410
chore(phpstan): 33 alte Dateien auf Stufe 6, 31 auf Stufe 1
tombrain Oct 11, 2026
5cb4e40
changelog: Kopfkommentare und PHPStan-Stufen
tombrain Oct 11, 2026
81a5efe
Merge pull request #6 from tombrain/to_dataclass
tombrain Oct 11, 2026
be4b51a
refactor(liga): Vorgabewerte der Liga stehen in LigaDaten
tombrain Oct 11, 2026
035814a
changelog: Vorgabewerte in LigaDaten
tombrain Oct 11, 2026
b8d61f6
fix(lader): abgespeckte Lader ergaenzen fehlende Angaben wie der Haup…
tombrain Oct 11, 2026
fd3ff01
changelog: abgespeckte Lader
tombrain Oct 11, 2026
a107492
Merge pull request #7 from tombrain/ligadaten-vorgabewerte
tombrain Oct 11, 2026
98f8f7f
feat(liga): LigaDatei liest das Format der Ligadatei
tombrain Oct 11, 2026
b4eed27
fix(classlib): eckige Klammern in Werten beenden keinen Abschnitt mehr
tombrain Oct 11, 2026
f8e5bb6
changelog: LigaDatei, Klammern in der classlib
tombrain Oct 11, 2026
a3be7bb
refactor(liga): Tabelle fuer den Abschnitt [Options]
tombrain Oct 11, 2026
c66493b
changelog: Tabelle fuer [Options]
tombrain Oct 11, 2026
70ea462
refactor(liga): [Options] wird aus derselben Tabelle gespeichert
tombrain Oct 11, 2026
96ad7b2
changelog: [Options] lesen und speichern aus einer Tabelle
tombrain Oct 11, 2026
f077fc9
refactor(liga): Mannschaften lesen und speichern ueber LigaDaten
tombrain Oct 11, 2026
6494940
changelog: Mannschaften ueber LigaDaten
tombrain Oct 11, 2026
4e4efbd
refactor(liga): News, Spieltage und Partien liest LigaDaten
tombrain Oct 11, 2026
b93e7e8
changelog: Spieltage ueber LigaDaten
tombrain Oct 11, 2026
c86c1ca
refactor(liga): die ganze Ligadatei wird ueber LigaDaten gespeichert
tombrain Oct 11, 2026
028d745
changelog: Speichern ueber LigaDaten
tombrain Oct 11, 2026
42ddd2d
fix(lader): senkrechter Strich schneidet Werte nicht mehr ab; ein Abl…
tombrain Oct 11, 2026
0704343
changelog: senkrechter Strich, ein Ablauf fuer alle Lader
tombrain Oct 11, 2026
39a7eab
fix(liga): vor dem Laden alle Felder leeren; Handicap nur fuer Spieltage
tombrain Oct 11, 2026
a200956
changelog: Felder vor dem Laden leeren
tombrain Oct 11, 2026
ae1843d
feat(liga): Rohdaten der Ligadatei mit Laden und Speichern als Paar
tombrain Oct 11, 2026
7360885
changelog: Rohdaten der Ligadatei
tombrain Oct 11, 2026
8f4e501
refactor(liga): LigaDaten ist die Bruecke auf den Rohdaten
tombrain Oct 11, 2026
46bfc20
changelog: Bruecke auf den Rohdaten
tombrain Oct 11, 2026
f6136df
Merge pull request #8 from tombrain/liga-leser
tombrain Oct 11, 2026
431a5de
refactor(classlib): Ligadateien ueber die Rohdaten lesen und schreiben
tombrain Oct 11, 2026
316aba9
changelog: classlib ueber die Rohdaten
tombrain Oct 11, 2026
35ac50e
feat(liga): LigaDatei::liesAbschnitt liest einen einzelnen Abschnitt
tombrain Oct 11, 2026
1b9c873
refactor(listen): Ligalisten lesen [Options] ueber LigaDatei
tombrain Oct 11, 2026
43382bb
changelog: Ligalisten ueber LigaDatei
tombrain Oct 11, 2026
0ddf9f0
refactor(admin): Spielplanvorlage aus den Rohdaten uebernehmen
tombrain Oct 11, 2026
1dbfd2b
refactor(tipp): Tippuebersicht und Erinnerungsmail lesen Ligen ueber …
tombrain Oct 11, 2026
d4d5273
changelog: Spielplanvorlage und Tippspiel ueber die gemeinsamen Leser
tombrain Oct 11, 2026
516e3ef
refactor(liga): Spielplan eines Spieltags ueber LigaDaten::liesSpielplan
tombrain Oct 11, 2026
7dae21e
changelog: Spielplan eines Spieltags ueber die Bruecke
tombrain Oct 11, 2026
dd7d6fc
refactor(admin): Benutzerverwaltung liest Liganamen ueber LigaDatei
tombrain Oct 11, 2026
e3f1276
refactor(liga): Ligadateien immer komplett lesen
tombrain Oct 11, 2026
be7731c
changelog: Ligadateien immer komplett lesen
tombrain Oct 11, 2026
25013e5
refactor(tipp): Tippuebersicht und Erinnerungsmail greifen ueber die …
tombrain Oct 11, 2026
5a53fef
changelog: Tippspiel liest Spiele ueber die Rohdaten
tombrain Oct 11, 2026
3d09cfa
fix(docker): Web-Container bindet src/ ein
tombrain Oct 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 22 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Snapshots werden byte-genau verglichen: immer LF, auch unter Windows (core.autocrlf)
tests/GoldenMaster/__snapshots__/** text eol=lf
# Tests enthalten Ligadateien als Textblock und vergleichen sie zeilenweise: immer LF
tests/**/*.php text eol=lf
# Shell-Skripte laufen im Linux-Container: mit CRLF startet das Docker-Image nicht
*.sh text eol=lf
# wird unter Linux direkt ausgefuehrt (Shebang)
bin/* text eol=lf
# Nutzer bekommen per Composer nur den LMO, nicht die Entwicklungsumgebung
/.github export-ignore
/docker export-ignore
/docker-compose.yml export-ignore
/phpunit.xml.dist export-ignore
/phpstan.neon.dist export-ignore
/phpstan-strict.neon.dist export-ignore
/phpstan-classlib.neon.dist export-ignore
/phpstan-tests.neon.dist export-ignore
/phpstan-liga.neon.dist export-ignore
/phpstan-liga-basis.neon.dist export-ignore
/phpstan-bootstrap.php export-ignore
/tests export-ignore
/TESTING.md export-ignore
70 changes: 70 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Golden-Master-Tests direkt auf dem Runner (ohne Docker), siehe TESTING.md
name: Tests

on:
push:
pull_request:
workflow_dispatch:

jobs:
phpstan:
runs-on: ubuntu-24.04
name: PHPStan

steps:
- uses: actions/checkout@v5

# die Pruefung selbst gilt fuer PHP 8.0 bis 8.5 (phpVersion in phpstan.neon.dist)
- name: PHP einrichten
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: none
tools: composer:v2

- name: Abhaengigkeiten installieren
run: composer install --no-interaction --no-progress --prefer-dist

- name: PHPStan
run: composer phpstan

golden-master:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
# Snapshots stammen von 8.3; 8.0 ist die aelteste unterstuetzte Version (lmo/version.json), 8.5 die neueste (README)
php: ['8.0', '8.3', '8.4', '8.5']
name: PHP ${{ matrix.php }}

steps:
- uses: actions/checkout@v5

# faketime fixiert die Zeit (Kalender, "heute"-Markierungen) wie im Docker-Image
- name: faketime installieren
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends faketime

- name: PHP einrichten
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: gd, zip
# wie das offizielle Docker-Image: keine php.ini, nur Standardwerte
ini-file: none
coverage: none
tools: composer:v2

- name: Composer-Cache
uses: actions/cache@v5
with:
path: ~/.composer/cache
key: composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}
restore-keys: composer-${{ matrix.php }}-

- name: Abhaengigkeiten installieren
run: composer install --no-interaction --no-progress --prefer-dist

- name: Tests
env:
GOLDEN_MODE: compare
run: vendor/bin/phpunit
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/vendor/
.original/
.phpunit.result.cache
coverage/
# Laufzeitdateien einer Installation (legt lmo-setup.php an)
lmo/config/init-parameters.php
lmo/config/lmo-auth.php
lmo/config/.defaults-stamp
lmo/config/.update-check.json
lmo/config/cfg.txt
lmo/config/*/cfg.txt
lmo/addon/tipp/lmo-tippauth.txt
# Rohdaten von tests/RealData/bin/fetch_openligadb.php
tests/RealData/.cache/
114 changes: 40 additions & 74 deletions README.md

Large diffs are not rendered by default.

325 changes: 325 additions & 0 deletions TESTING.md

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions bin/lmo-install
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env php
<?php
// Richtet den LMO im Ordner des Webservers ein bzw. gleicht ihn nach einem Update ab:
// vendor/bin/lmo-install [Zielordner] (ohne Angabe: lmo)

require_once __DIR__ . '/../src/Install/Installer.php';

$autoload = $GLOBALS['_composer_autoload_path'] ?? null;
// als Paket: vendor/lmo/lmo_php8/bin; im Repo selbst: vendor/ neben bin/
foreach ([__DIR__ . '/../../../autoload.php', __DIR__ . '/../vendor/autoload.php'] as $candidate) {
if ($autoload === null && is_file($candidate)) {
$autoload = $candidate;
}
}
if ($autoload === null) {
fwrite(STDERR, "lmo-install: vendor/autoload.php nicht gefunden - bitte zuerst 'composer install' ausfuehren.\n");
exit(1);
}

exit(Lmo\Install\Installer::run(
array_slice($argv, 1),
dirname(__DIR__) . '/lmo',
dirname((string) realpath($autoload)),
(string) getcwd(),
STDOUT
));
341 changes: 339 additions & 2 deletions changelog.md

Large diffs are not rendered by default.

77 changes: 77 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"name": "lmo/lmo_php8",
"description": "The Liga Manager Online (LMO for short) is free software for managing sports leagues with tables on the Internet.",
"type": "library",
"homepage": "https://github.com/henshingly/lmo_php8",
"keywords": [
"LMO",
"Liga Manager Online",
"Sportligen verwalten"
],
"license": "GPL-2.0-only",
"authors": [
{
"name": "Rene Marth (joker)",
"homepage": "https://www.liga-manager-online.de",
"role": "Extension developer"
},
{
"name": "Henshingly",
"homepage": "https://www.vest-sport.de",
"role": "Developer"
}
],
"support": {
"forum": "https://www.liga-manager-online.org/forum/"
},
"require": {
"php": ">=8.0",
"pear/html_template_it": "^1.3.3",
"phpmailer/phpmailer": "^7.1"
},
"require-dev": {
"phpstan/phpstan": "^2.3",
"phpunit/phpunit": "^9.6"
},
"suggest": {
"ext-gd": "Fuer die Grafiken (Fieberkurve, Tippspiel-Grafiken)",
"ext-zip": "Fuer Download und E-Mail-Versand der Ligadateien im Admin-Bereich"
},
"autoload": {
"classmap": [
"lmo/includes/LmoTemplate.php"
],
"psr-4": {
"Lmo\\Install\\": "src/Install/",
"Lmo\\Liga\\": "src/Liga/"
}
},
"bin": [
"bin/lmo-install"
],
"autoload-dev": {
"psr-4": {
"Lmo\\Tests\\GoldenMaster\\": "tests/GoldenMaster/",
"Lmo\\Tests\\Unit\\": "tests/Unit/",
"Lmo\\Tests\\RealData\\": "tests/RealData/"
}
},
"scripts": {
"phpstan": [
"phpstan analyse --no-progress --memory-limit=1G",
"phpstan analyse -c phpstan-classlib.neon.dist --no-progress --memory-limit=1G",
"phpstan analyse -c phpstan-liga.neon.dist --no-progress --memory-limit=1G",
"phpstan analyse -c phpstan-liga-basis.neon.dist --no-progress --memory-limit=1G",
"phpstan analyse -c phpstan-tests.neon.dist --no-progress --memory-limit=1G",
"phpstan analyse -c phpstan-strict.neon.dist --no-progress --memory-limit=1G"
],
"test": "phpunit",
"test:record": "GOLDEN_MODE=record phpunit"
},
"config": {
"platform": {
"php": "8.0.30"
},
"sort-packages": true
}
}
Loading