1. YoureCom
    1. Über mich
  2. Lösungen
    1. Tipprunde
    2. Aufgaben & Support
    3. Mitglieder-Netzwerk
    4. Online-Shop
    5. Alle Lösungen & Preise
  3. Für Admins
    1. Plugins
    2. ByteMon
    3. ByteMon: Community verwalten
    4. ByteMon: Portalidentität
    5. Individuelle Entwicklung
    6. WSC 6.3 Alpha
    7. GitHub
  4. Neuigkeiten
    1. Kurzmeldungen
  5. Support
  6. Mein Konto
  7. Lösungen testen
  • Anmelden
  • Registrieren
  • Warenkorb 0
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Aufgaben
  • Produkte
  • Pulse-Beiträge
  • Erweiterte Suche
  1. YoureCom – Software für Vereine, Teams & Communities
  2. Repository-Liste
  3. de.yourecom.wcf.api.mpdf

YoureCom Standard automatisch aktualisiert (verwaltete Dateien aus _dev/standard)

  • Marcel Beckers
  • -2 Löschungen
  • +23 Hinzufügungen
  • 25 Gesamt
  • 1 Dateien
  • 16. Oktober 2026 um 11:18
  • tests/lint/check-php.php
    <pre>@@ -7,6 +7,8 @@
    * - `json_decode()` with `JSON_THROW_ON_ERROR` (or `JSON::decode()`), a broken document must not become null silently
    * - `StringUtil::trim()` instead of the native `trim()` (it also removes Unicode whitespace); `trim()` with an own
    * character list stays allowed
    + * - `fputcsv()`, `fgetcsv()` and `str_getcsv()` pass the escape parameter; PHP 8.4 deprecates the default, WoltLab turns
    + * the deprecation into an error and the CSV export breaks
    * - classes, interfaces, traits and enums have a docblock with a description, `@author` and `@license`
    * - notifications (`files/lib/system/user/notification/`) link to an ACP controller of the package only with
    * `'isACP' => true`; without it LinkHandler takes the frontend in the frontend and in cronjobs (the link leads nowhere)
    @@ -24,12 +26,19 @@
    $count = 0;
    $acpControllers = acpControllers();
    +/** position of the escape parameter (1-based) of the CSV functions */
    +const CSV_ARGUMENTS = ['fputcsv' => 5, 'fgetcsv' => 5, 'str_getcsv' => 4];
    +
    foreach (files(['files', 'files_wcf'], ['.php']) as $relative => $path) {
    $source = (string)\file_get_contents($path);
    $count++;
    - foreach (functionCalls($source, ['wcfdebug', 'var_dump', 'dump', 'dd', 'json_decode', 'trim']) as $call) {
    - if ($call['name'] === 'trim') {
    + foreach (functionCalls($source, ['wcfdebug', 'var_dump', 'dump', 'dd', 'json_decode', 'trim', ...\array_keys(CSV_ARGUMENTS)]) as $call) {
    + if (isset(CSV_ARGUMENTS[$call['name']])) {
    + if (!csvEscapeGiven($call['name'], $call['arguments'])) {
    + $errors[] = "{$relative}:{$call['line']}: {$call['name']}() without the escape parameter (PHP 8.4 deprecates the default, write '' for RFC 4180)";
    + }
    + } elseif ($call['name'] === 'trim') {
    if (argumentCount($call['arguments']) === 1) {
    $errors[] = "{$relative}:{$call['line']}: native trim(), use StringUtil::trim()";
    }
    @@ -166,6 +175,18 @@ function acpLinksWithoutIsAcp(string $source, array $acpControllers): array
    return $found;
    }
    +/**
    + * Returns true if a call of a CSV function passes the escape parameter, by position, by name or through unpacking.
    + */
    +function csvEscapeGiven(string $name, string $arguments): bool
    +{
    + if (\preg_match('~(?<![\w$])escape\s*:~', $arguments) === 1 || \str_contains($arguments, '...')) {
    + return true;
    + }
    +
    + return argumentCount($arguments) >= CSV_ARGUMENTS[$name];
    +}
    +
    /**
    * Returns the number of arguments of a call, given the source of its parenthesized argument list.
    */
Es wurden keine Einträge gefunden.

Bereit, deine Community smarter zu machen?

Ob fertiges Produkt oder individuelle Softwarelösung – überzeuge dich selbst.

Jetzt kaufen Demo testen

Direkter Support vom Entwickler

Zuletzt erledigte Aufgaben

  1. Multihunter meldet jede Anmeldung als Doppelaccount Multihunter (Doppelaccount Jäger) Multihunter: Forum Benachrichtigungen

    villain Erledigt am 27. Oktober 2026 um 20:09
  2. Multihunter meldet jede Anmeldung als Doppelaccount Multihunter (Doppelaccount Jäger)

    villain Erledigt am 26. Oktober 2026 um 14:41
  3. Optionen vom "Dateien Feld-Typ" sprechen von Bildern Database: Medienfelder

    doerek Erledigt am 25. Oktober 2026 um 18:20
  4. Nach Installation ohne Popup Begriffserklärung

    mbbaureihen.de Erledigt am 24. Oktober 2026 um 23:33
  5. Fehlermeldung beim Hinzufügen einer neuen Clanseite Clan Verwaltung

    BMWTom Erledigt am 24. Oktober 2026 um 23:16
  6. neue Dateiendungen werden nicht übernommen. Database: Medienfelder

    doerek Erledigt am 24. Oktober 2026 um 19:46
Arbeitsplatz
YoureCom – Software für Vereine, Teams & Communities

YoureCom – Software für Vereine, Teams & Communities. Seit 2004.

Fertig eingerichtete Lösungen für Verein, Team und Community, dazu Erweiterungen für die WoltLab Suite. Aus Wuppertal, für Kunden weltweit.

Lösungen

  • Tipprunde
  • Aufgaben & Support
  • Mitglieder-Netzwerk
  • Online-Shop
  • Alle Lösungen & Preise

Für Administratoren

  • Plugins
  • Clan Verwaltung
  • Wettbewerbe
  • MultiHunter
  • ByteMon
  • Individuelle Entwicklung

YoureCom

  • Über mich
  • Shop
  • Kontakt
  • Neuigkeiten
  • GitHub

Cloud-Verträge

  • AGB Cloud
  • AVV Cloud
  • Rechtswidrige Inhalte melden
  • Datenwechsel

Rechtliches

  • Datenschutzerklärung
  • Impressum
  • AGB
  • Vertrag widerrufen
  • Abonnements kündigen
  • Widerrufsbelehrung
© 2026 YoureCom · Marcel Beckers