heinetz: Zend 2

Beitrag lesen

hello,

Klar, mach.

OK, danke für das Angebot!

Die Ausgangssituation ist folgende:
-----------------------------------
Ein Unternehmen handelt international mit Autolackiererbedarf. Das umfasst, sagen wir 1000 Artikel wie Lacke, Primer, Spachtelmasse, Klebeband usw. Für jeden dieser Artikel gibt ein sog. technisches Dokument in unterschiedlichen Sprachen. So ein technisches Merkblatt enthält Standard-Eigenschaften, wie Artikel-Nummer, Produkt-Name usw., die jeder Artikel hat. So ein technisches Merkblatt kann aber auch artikelspezifische Eigenschaften enthalten. Bspw. hat ein Klebeband möglicherweise eine Breite, wohingegen ein Lack eher die Eigenschaft "Ablüftzeit" hat.

Dafür gibt es eine kleine Web-Anwendung:
----------------------------------------
Es gibt also ein nicht öffentliches Frontend, über das diese technischen Dokumente (=Datensätze) von verschiedenen Benutzern erstellt und verwaltet werden. Das besteht aus einer Übersicht, in der alle Datensätze aufgelistet werden, einer Detailansicht, in der der in der Übersicht ausgewählte Datensatz mit all seinen Eigenschaften dargestellt bzw. editiert (oder gelöscht) wird, was bedeutet, die Werte der Standard-Eigenschaften anzupassen oder individuelle Eigenschaften hinzuzufügen und deren Werte festzulegen. Die individuellen Eigenschaften können ausserdem in ihrer dargestellten Reihenfolge geändert und natürlich gelöscht werden.
Für das Anlegen neuer Datensätze wird die selbe Maske verwendet.

Bis zu dem Punkt hat das Unternehmen nun die ganzen Artikel in irgendeiner Datenbank und kann sie verwalten, was ja noch keinen wirklichen Mehrwert darstellt …

Die Funktionalitäten:

1. Generate PDF
Dazu muss ich glaube ich nichts sagen …

2. Duplicate Doc for Translation
Die Datensätze haben u.a. auch eine Eigenschaft "Sprache", die sich per Dropdown festlegen lässt. In meinen Beispiel-JPG sieht man einen Datensatz, der mit der Eigenschaft "deutsch" angelegt wurde und nun wird dieses technische Dokument in finnisch benötigt. Hier kommen die Benutzerrollen in's Spiel. Es gibt genau einen Benutzeraccount für den finnischen Übersetzer. Weil der deutsch kann ruft er die Detailansicht des deutschen Datensatzes auf und "dupliziert das Doc for Translationen". Danach werden die Label der Standard-Eigenschaften in finnisch angezeigt, die deutschen Werte in den Formularfeldern tauscht er gegen deren finnische Übersetzung aus.

Das Problem:
------------
Die Anwendung hat vor Jahren mal ein Praktikant in PHP4 objektorientiert programmiert und sie soll auf einem Server laufen, der PHP4 nicht mehr unterstützt. Unter PHP5 läuft die Anwendung nun nicht mehr und hatte zunächst versucht, das zu debuggen, in der Auseinandersetzung hier festgestellt, das sich PHP4 und PHP5 grundsätzlich unterscheiden und es sinnvoll ist, das ganze neu zu schreiben.

Meine Lösung:
-------------
… würde ich relativ schnell prozedural umsetzen, habe aber die Zeit mich an dem Beispiel mit OOP zu probieren. Ich fange nicht bei NULL an. Die Daten sollen natürlich erhalten bleiben, d.h. die DB-Struktur/-Inhalte würde ich so übernehmen müssen. Das Nutzerrollenkonzept will ich etwas anders umsetzen : Ein Benutzer, der einen Datensatz anlegt, ist dessen Besitzer und nur er kann ihn editieren. Jeder Benutzer kann neue Datensätze in jeder Sprache entweder leer oder aus einem Duplikat anlegen.

Und konkret?
------------
Mein Bauchgefühl sagt mir es gibt zuerstmal eine Klasse 'technicalDocument' oder um nicht soviel tippen zu müssen 'tecDoc'. Im Code der Detailansicht würde also in etwa folgendes stehen:

include "path/to/file/tecdoc.class.php";  
$doc = new tecDoc(intval($_GET['id']));  
$doc -> displayForm();

Kann man so anfangen?

beste gruesse,
heinetz