Skip to content

[CODINGSTANDARD] Geschäftslogik aus lib.php in autoloadbare Services auslagern #555

Description

@ralferlebach

Problem

local_adele/lib.php und mod_adele/lib.php enthalten neben Moodle-Callbacks umfangreiche Rollen-, Datei-, Index- und Synchronisationslogik sowie direkte HTML-Erzeugung.

Ursache

Legacy-Callbackdateien wurden als allgemeine Servicecontainer verwendet.

Lösung

  • Callbacks auf Parameterübernahme und Delegation reduzieren.
  • Business-Logik in namespaced Services verschieben.
  • HTML über Renderer und Mustache erzeugen.
  • DB-Zugriffe aus Callbackfunktionen entfernen.
  • Für neue Moodle-Versionen passende Hooks prüfen.

Manuelles Testverfahren

Testschritte

  1. Alle Moodle-Callbacks nach Refactoring auslösen.
  2. Navbar, Pluginfile, Aktivitäts-Lifecycle und Host-Index prüfen.

Aktuelles Ist-Verhalten

local_adele/lib.php und mod_adele/lib.php enthalten neben Moodle-Callbacks umfangreiche Rollen-, Datei-, Index- und Synchronisationslogik sowie direkte HTML-Erzeugung.

Erwartetes Soll-Verhalten

lib.php enthält nur notwendige Callbacks und kleine Adapter.

Automatisierte Tests

  • Unit-Tests der neuen Services.
  • Behat-Smoke für Callbackpfade.

Akzeptanzkriterien

  • lib.php enthält nur notwendige Callbacks und kleine Adapter.
  • Services sind isoliert testbar.
  • Ausgabe und Fachlogik sind getrennt.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions