Skip to content

chore: Version 1.0.0.beta.19 mit Rexstan-Stabilisierung#12

Merged
olien merged 1 commit into
mainfrom
chore/rexstan-stabilisierung-beta19
Jun 9, 2026
Merged

chore: Version 1.0.0.beta.19 mit Rexstan-Stabilisierung#12
olien merged 1 commit into
mainfrom
chore/rexstan-stabilisierung-beta19

Conversation

@skerbis

@skerbis skerbis commented Jun 8, 2026

Copy link
Copy Markdown
Member

Ziel

Technischer Stabilitäts-Release ohne beabsichtigte BC-Brüche. Fokus auf statische Analyse, robuste Typ-/JSON-Verarbeitung und konsistente JSON-LD-Generierung.

Was wurde umgesetzt

  • Version in package.yml auf 1.0.0.beta.19 angehoben.
  • Ausführlichen Changelog-Eintrag für v1.0.0.beta.19 ergänzt.
  • Mehrere interne Robustheitsverbesserungen in Generator-, Renderer- und Backend-Seiten umgesetzt.
  • JSON-Übergabe in JS-Kontexten defensiver gemacht (sichere json_encode-Fallbacks).
  • Dynamic-URL-/Mapping- und LocalBusiness-Flows typischer Fehlerpfade bereinigt.

Qualitätssicherung

  • Vollständiger Rexstan-Lauf auf Addon-Ebene:
    • php redaxo/bin/console rexstan:analyze redaxo/src/addons/jsonld_manager
    • Ergebnis: No errors

BC-Einschätzung

  • Keine öffentliche API absichtlich geändert.
  • Fokus auf interne Absicherung, Typkonsistenz und Fehlerresistenz.
  • Datenstrukturen/Schlüssel im Betrieb sollen kompatibel bleiben.

Für Oli: Rexstan auf macOS mit MAMP (CLI-basiert)

Wenn du lokal mit MAMP statt Docker arbeitest, kannst du Rexstan vollständig über die Shell ausführen.

1) In das Projekt wechseln

cd /Pfad/zu/deinem/redaxo/public

2) Prüfen, welche PHP-Version MAMP nutzt

/Applications/MAMP/bin/php/php8.3.8/bin/php -v

Falls dein MAMP-Pfad leicht anders ist, den Versionsordner unter /Applications/MAMP/bin/php/ prüfen.

3) Composer-Autoloader optimieren (wichtig für Rexstan)

/Applications/MAMP/bin/php/php8.3.8/bin/php /usr/local/bin/composer dump-autoload --optimize

Wenn composer lokal anders installiert ist, den korrekten Composer-Pfad einsetzen.

4) Rexstan direkt starten

/Applications/MAMP/bin/php/php8.3.8/bin/php redaxo/bin/console rexstan:analyze redaxo/src/addons/jsonld_manager

5) Optional: nur einzelne Datei prüfen

/Applications/MAMP/bin/php/php8.3.8/bin/php redaxo/bin/console rexstan:analyze redaxo/src/addons/jsonld_manager/lib/JsonLdGenerator.php

Typische Stolpersteine unter MAMP

  • Falscher PHP-Binary-Pfad: immer explizit den MAMP-PHP-Binary verwenden.
  • Falsches Working-Directory: Befehl muss im public-Verzeichnis laufen.
  • Fehlender optimierter Autoloader: composer dump-autoload --optimize ausführen.
  • Abweichende PHP-Erweiterungen: bei seltsamen Analyzer-Effekten php -m mit MAMP-Binary vergleichen.

Wenn gewünscht, kann ich daraus zusätzlich eine kurze docs/rexstan-mamp.md im Repo machen.

Copilot AI review requested due to automatic review settings June 8, 2026 14:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Stabilisierungs-Release für das REDAXO-Addon jsonld_manager mit Fokus auf robustere Typ-/JSON-Verarbeitung, konsistentere JSON-LD-Generierung (inkl. Dynamic-URL/Mapping) und verbesserte statische Analyse-Basis (Rexstan), ohne beabsichtigte BC-Brüche.

Changes:

  • Version auf 1.0.0.beta.19 angehoben und Changelog für den Release ergänzt.
  • Breite Typ- und Robustheitsanpassungen in Backend-Seiten sowie Kernklassen (Generator/Renderer/Mapping/Domain-/Language-Config).
  • Defensivere JSON-(De)Serialisierung und stabilere Dynamic-URL-/LocalBusiness-Flows.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
update.php Robustere Index-/Schema-Migrationslogik und Typisierung in Update-Flow.
pages/settings.php Striktere Callback-Typen bei ID-Remapping/Filterung.
pages/settings_global.php Verwendung von LanguageConfig via use und konsistentere Aufrufe.
pages/setting_legacy_meta_integration.php Zusätzliche Absicherung für preg_split-Ergebnis.
pages/schemas.php Typisierung/Docblocks und Umstellung auf LanguageConfig Import.
pages/global_website.php Robustere Sprachermittlung, Typisierung und Preview-Fallbacks.
pages/global_localbusiness.php Defensiveres JSON-Handling, Typisierung und stabilere Branch-/ContactPoint-Flows.
pages/dynamic_urls.php Defensivere String-Casts bei Profil-Feldern.
pages/dynamic_urls_edit.php Defensivere Config-/JSON-Behandlung und Vorberechnung von JSON für JS-Kontext.
pages/article.php Typisierung, defensiveres JSON-Decode und konsistentere Casts.
pages/article_jsonld.php Import-Nutzung, Typisierung und Anpassungen im Branch-/Output-UI-Flow.
package.yml Version-Bump auf 1.0.0.beta.19.
lib/Url/RuleEngine.php Typisierung/Imports, defensiveres JSON-Decode und API-Signaturen.
lib/template_functions.php Typisierung/Imports, robustere Debug-/Helper-Funktionen.
lib/Mapping/DataSourceExtended.php Typisierung, robustere Media-/Author-Auflösung und konsistentere Rückgaben.
lib/Mapping/DataSource.php Typisierung, robustere Media-/Computed-Werte und neue Hilfsfunktionen.
lib/LanguageConfig.php Typisierung/Imports und API auf rex_addon_interface erweitert.
lib/JsonLdGenerator.php Typisierung, robustere Dynamic-URL- und Branch-Handling-Pfade, Debug-Logging.
lib/Frontend/Renderer.php Typisierung/Imports, robustere Cache-/Debug-Pfade.
lib/DynamicJsonLd.php Striktere Parameter, robustere Tabellen-/Mapping-Validierung und konsistente Payload-Erzeugung.
lib/DomainConfig.php Typisierung/Imports, robustere Domain-Ermittlung (FE/BE) und URL-Hilfen.
lib/CustomJsonLdHelper.php Typisierung und präzisere Exception-Typen für JSON-Sanitizing.
CHANGELOG.md Neuer Release-Eintrag für v1.0.0.beta.19.
boot.php Imports/Typisierung, robustere Navigation-Ausblendung und konsistentere Aufrufe.
Comments suppressed due to low confidence (1)

lib/template_functions.php:193

  • Im Debug-Overlay wird JSON mit JSON_UNESCAPED_SLASHES direkt in ein <script>-Tag geschrieben (var jsonldPayload=...). Ein Payload/Meta-Wert mit "</script>" kann dadurch den Script-Block vorzeitig schließen. Bitte beim json_encode für inline JavaScript mindestens JSON_HEX_TAG/AMP/APOS/QUOT verwenden (oder JSON_UNESCAPED_SLASHES entfernen), damit keine Script-Tag-Injection möglich ist.
            if (empty($payload)) {
                $payload = $payloadFallback;
            }
            $payloadJson = json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
            $metaJson = json_encode($meta, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +405 to +409
$schemaPropertiesJson = json_encode($schemaProperties, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$tableFieldsJson = json_encode(array_column($tableFields, 'Field'), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$sampleDataJson = json_encode($sampleData, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$profileNamespaceJson = json_encode((string) ($profile['namespace'] ?? ''), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$savedMappingsJson = json_encode($config['field_mappings'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
@olien olien merged commit 1cf0610 into main Jun 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants