Intern:Hauptseite/UVdesk

Aus ArtisanCommerce Dokumentation

UVdesk Helpdesk System

Übersicht

UVdesk ist eine Enterprise-Grade Helpdesk-Lösung, die speziell für die Automatisierung von Support-Prozessen entwickelt wurde.

Der Tech-Stack

Das System basiert auf einer modernen PHP-Architektur:

  • **Framework:** Symfony (v4.4 / v5.4 LTS)
  • **Datenbank:** MySQL / MariaDB (Doctrine ORM)
  • **Template-Engine:** Twig
  • **Mail-Handling:** Swiftmailer (in neueren Versionen Symfony Mailer)
  • **Paketverwaltung:** Composer

Eigenheiten & Unterschiede zu Standard-Symfony

Obwohl UVdesk auf Symfony basiert, gibt es einige architektonische Besonderheiten:

  • **Bundle-Architektur:** UVdesk ist stark modularisiert. Fast alle Funktionen (Tickets, Knowledgebase, Mailbox) liegen in separaten Bundles unter vendor/uvdesk/.
  • **Custom Routing:** Die Routing-Logik für Member- und Customer-Bereiche ist eng mit der Datenbank verknüpft.
  • **Service Decoration:** Viele Kern-Services sind so konzipiert, dass sie durch eigene Implementierungen erweitert werden können (wichtig für unsere Anpassungen ohne Vendor-Patching).

---

Initial Setup

Dieser Bereich wird noch ergänzt. Hier folgen Informationen zu:

  • Datenbank-Initialisierung
  • Ersteinrichtung des Admin-Accounts
  • Verzeichnisrechte auf bplaced

---

How-to's

Konfiguration der Mailbox

Beschreibung der Anbindung von IMAP/SMTP (iCloud, Office365 etc.)

---

Quirks & Fallstricke

  • **Zugehörigkeit:** Achten Sie beim Erstellen von Agents darauf, dass die Rollen-Zuweisung (Role) korrekt erfolgt, da Symfony-Security-Voter den Zugriff steuern.
  • **Cache:** Nach jeder Änderung an Konfigurationsdateien muss der Symfony-Cache physisch geleert werden (siehe Debugging-Sektion).

---

Debugging-History

Hier werden spezifische Probleme und deren Lösungen dokumentiert, die während des Betriebs im ArtisanCommerce-Netzwerk aufgetreten sind.

Fall 01: Swiftmailer Alias & Memory Limit (bplaced Umgebung)

Datum: Februar 2026 Symptom: cache:clear schlägt fehl mit ServiceNotFoundException oder Memory Limit Exhausted.

Lösung A: Swiftmailer Alias Fix

Da der interne Symfony-Compiler den Dienst swiftmailer.mailer erwartet, dieser aber bei benutzerdefinierten Mailer-Namen fehlt, muss ein Alias in der config/services.yaml gesetzt werden:

services:
    # Fix für RegisterPluginsPass Bug
    swiftmailer.mailer:
        alias: swiftmailer.mailer.default
        public: true

Lösung B: Memory Limit via Wrapper

Auf bplaced-Umgebungen überschreibt der PHP-Wrapper das Memory-Limit oft auf 64MB. Für Symfony-Operationen müssen mindestens 512MB erzwungen werden:

  1. In der SMC oder .env.dev Variable setzen: {{{1}}}
  2. Befehl manuell ausführen: {{{1}}}

---