Zend Studio / Zend Framework + UML Lab

Hallo zusammen,

ich verwende das Zend Framework zur Web-Entwicklung (PHP) und möchten natürlich nicht auf gute UML-Diagramme bzw. Integration verzichten. Yatta's UML Lab unterstützt ja laut Featureliste das Zend Framework.

1) Aktuell bin ich mit Zend Studio als PHP IDE unterwegs. Daher wäre eine Integration von UML-Lab natürlich die optimale Lösung.

2) Andernfalls müsste ich UML-Lab installieren und das Zend Framework integrieren.

Variante 1) wäre am praktischsten. Gibt es denn UML-Lab als (käufliches) Addon oder ähnliches für das Zend Studio? Beide IDE parallel zu benutzen erscheint mir nicht wirklich als sinnvoll... Alternativ haben wir bislang noch keine Möglichkeit gefunden, ein Zend Framework Projekt über die UML Lab IDE zu erstellen?

Freue mich auf Eure Rückmeldung.

Comments

  • Hallo,

    also, UML Lab kann man direkt ins Zend Studio installieren. Einfach unter "Help->Install New Software..." die Update Site von UML Lab eintragen (http://update.yatta.de/umllab/ bei "Work with:") und den Eintrag "UML Lab Modeling IDE" auswählen.

    Die Zend Framework unterstützung gibts in Form eines CodeStyles, der das einfache Erstellen von Zend Framework konformen Code ermöglicht. Dazu zunächst den CodeStyle auf Zend einstellen (im UML Lab Tree oder im Klassendiagramm ein Element auswählen (zB ein Package oder eine Klasse), dann in den Properties das Code Style Tab wählen und Zend auswählen. Danach stehen die entsprechenden Stereotypen zur Verfügung (zB ZendLibrary, ZendController oder ZendModel im Falle von Klassen).

    Beim Reverse Engineering wird das automatisch eingestellt.

    Bitte hierbei beachten, dass unsere PHP Unterstützung derzeit nur Dateien unterstützt, die eine Klasse enthalten. Sprich Dateien mit mehreren Klassen, einzelnen Funktionen oder HTML/PHP Markup werden nicht erkannt. Dazu müsste man die entsprechenden Templates erweitern - hierbei kann ich natürlich gerne helfen, wenn das interessant sein sollte (bisher nicht notwendig gewesen).

    Viele Grüße,
    Manuel
  • Hallo Manuel,

    danke für deine Rückmeldung. Ich hab mal versucht "UML Lab Modeling IDE" zu installieren. Siehe Screenshot ist das ein Unterpaket, welches ich nur installiere. Stimmt das soweit? Oder alles von UML-Lab aktivieren?

    Nichts desto trotz bekomme ich bei der Installation von "UML Lab Modeling IDE" eine Fehlermeldung (siehe 2. Screenshot).

    What to do? :(
  • Hi,

    leider sehe ich keinen Screenshot. Nur das eine Unterpaket zu installieren ist schonmal richtig. Um dann weiterzuhelfen brauche ich die Fehlmerldung, die beim Installieren kommt. Dazu müsste es im Error Log einen langen Eintrag geben. Kannst Du mir diese Fehlermeldung geben?

    Viele Grüße
    Manuel
  • Euer file attachement funktioniert hier bei mir irgendwie nicht (Chrome).

    Cannot complete the install because one or more required items could not be found.
    Software being installed: UML Lab Modeling IDE 1.5.1.201209280944 (com.yattasolutions.umllab.feature.group 1.5.1.201209280944)
    Missing requirement: UML Lab Templates for Java 1.5.1.201209280943 (com.yattasolutions.codegen.java 1.5.1.201209280943) requires 'bundle org.eclipse.uml2.uml.resources [3.0.0,4.1.0)' but it could not be found
    Cannot satisfy dependency:
    From: Reverse Provider for Java Templates 1.5.1.201209280943 (com.yattasolutions.codegen.java.reverse 1.5.1.201209280943)
    To: bundle com.yattasolutions.codegen.java 1.5.1
    Cannot satisfy dependency:
    From: UML Lab Reverse Engineering Feature 1.5.1.201209280944 (com.yattasolutions.codegen.reverse.feature.group 1.5.1.201209280944)
    To: com.yattasolutions.codegen.java.reverse [1.5.1.201209280943]
    Cannot satisfy dependency:
    From: UML Lab Modeling IDE 1.5.1.201209280944 (com.yattasolutions.umllab.feature.group 1.5.1.201209280944)
    To: com.yattasolutions.codegen.reverse.feature.group [1.5.1.201209280944]
  • Hi,

    anscheinend ist die Update Site für Eclipse Indigo nicht aktiv. Bitte schau mal unter "Window -> Preferences -> Install/Update -> Available Software Sites" ob dort eine Seite mit der Location "http://download.eclipse.org/releases/indigo" vorhanden und aktiv ist. Das sollte das Installationsproblem beheben.

    Viele Grüße
    Manuel
  • edited December 2012
    Danke für die Rückmeldung.

    Probiere mich aktuell mit der UML Lab IDE und dem Zend Framework 2.

    Habe eine Test-Applikation inkl. Framework-Dateien in ein Projekt gepackt und versuche nun "Create Model and Class Diagram".

    Bekomme allerdings jede Menge Fehlermeldungen um die Ohren geklatscht, die alle in die gleiche Richtung gehen: "Heap Space, Overhead" etc.

    ---

    An internal error occurred during: "Parser Worker".
    GC overhead limit exceeded

    Unhandled event loop exception
    GC overhead limit exceeded

    ---

    Habe die umllab.ini bereits ein wenig überarbeitet um die Probleme in den Griff zu bekommen, aber treten aktuell immer wieder auf.

    Gibt's eine Empfehlung für die optimale umllab.ini Konfiguration bei der Arbeit mit dem Zend Framework 2? Ich kann aktuell die Diagramme nicht erstellen lassen, da einfach zuwenig "Power" durch die IDE freigegeben wird.

    PS: Wird von UML-Lab auch Zend Framework 2 unterstützt oder nur die 1er? Geht um die Diagramme / Modelle

    ----------------------------------------------

    -vm
    C:/Program Files/Java/jre7/bin
    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
    --launcher.XXMaxPermSize
    256m
    -vmargs
    -Dosgi.requiredJavaVersion=1.6
    -Dosgi.instance.area.default=@user.home/workspace
    -Xms2048m
    -Xmx4096m
    -XX:MaxPermSize=1024m

  • Ok, diese Speicherausstattung ist mehr als genug ;). Ich denke da gibts ein anderes Problem und der Parser verennt sich. Wäre super wenn Du den Fehler einkreisen könntest. Mich würde zB interessieren, beim Einlesen welcher PHP Datei es zu diesem Problem kommt. Wenn möglich, würde ich diese dann gerne haben damit wir das Problem reproduzieren und beheben können.
  • Hi,

    Danke für das Senden des Beispiel Codes. Ich konnte das Problem reproduzieren (der Text-Parser hat sich total verrannt) und beheben.

    Außerdem haben UML Lab's PHP Templates Type-Hinting mit Namespaces noch nicht komplett unterstützt. Das wird in der Zend Framework 2 API nun intensiver genutzt.

    Zum Beispiel sowas hier:
    public function setView(View\Renderer\RendererInterface $view = null)
    {
    $this->view = $view;

    return $this;
    }

    Auch das unterstützen wir jetzt ab UML Lab 1.5.2. An diesem Release arbeiten wir zur Zeit, ich gebe Dir Bescheid sobald es verfügbar ist.

    Viele Grüße
    Manuel
  • Hallo Manuel,

    ist mit dem Update diese Woche zu rechnen?
  • Hi,

    ja, die Release ist fertig und wir werden Sie in dieser Woche veröffentlichen. Ich gebe Dir hier Bescheid.

    Viele Grüße
    Manuel
  • Hi,

    die UML Lab 1.5.2 Release steht nun zum Download bereit.

    Viele Grüße
    Manuel
  • Hallo,

    die Software sieht äußert interessant aus und scheint auch sehr performant zu sein, aber ich scheitere leider bereits an der (angeblich möglichen) Integration von UML Lab in das Zend Studio 10.0.0 (v2013031910). Die oben genannte Anleitung bezüglich Indigo führte ebenfalls zu keiner Lösung. Auch nach stundenlangen Versuchen, die Abhängigkeiten durch Installation weiterer Pakete aufzulösen, kein Resultat (siehe unten) :(
    Bezüglich Zend Framework 2 Unterstützung (getestet in der stand-alone-Version von UML Lab): klingt viel versprechend, aber gibt es sie wirklich? Auch wenn in den globalen Preferences Zend als Code Style priorisiert wird, werden beispielsweise beim Einlesen (also dem "reverse engineering") frameworkspezifische Methodennamen zwangsweise "gepatcht" (indexAction wird umbenannt zu index). Warum? Beim Einlesen einer gesamten existierenden Applikation inkl. ZF-Library würde das zu einem nicht mehr rekonstruierbaren Chaos führen... Offenbar liegt es im konkreten Fall der indexAction aber nicht an der Neuheit von ZF2, denn diese Konvention gab es schon im ZF1. Und wo liegen eigentlich die entsprechenden Templates?
    Umgekehrt führen Fehler (etwa durch Inkompatibilität des verwendeten Code Styles/Templates) bei der Code-Generierung dazu, dass die entsprechenden Dateien im Filesystem gelöscht werden, eine direkte Synchronisation (round trip) in beide Richtungen scheint also eine höchst riskante Sache zu sein. Es wird offenbar zuerst die Zieldatei entfernt, und erst dann erfolgt die Validierung des Exports.

    Besten Dank im Voraus für zweckdienliche Hinweise!

    ________________

    Cannot complete the install because one or more required items could not be found.
    Software being installed: UML Lab Modeling IDE 1.5.3.201302271031 (com.yattasolutions.umllab.feature.group 1.5.3.201302271031)
    Software currently installed: Zend Studio 10.0.0.v2013031910 (com.zend.php.ide 10.0.0.v2013031910)
    Missing requirement: Patches for UML Lab Modeling Core (Juno) 1.5.132.201302270117 (com.yattasolutions.patches.core.feature.group 1.5.132.201302270117) requires 'org.eclipse.uml2.feature.group [4.0.2.v20130114-0902]' but it could not be found
    Missing requirement: All-in-one UML Lab Eclipse Patch Bundle for Helios 1.5.130.201302270359 (com.yattasolutions.patches.feature.group 1.5.130.201302270359) requires 'org.eclipse.rcp.feature.group [3.6.0,3.7.0)' but it could not be found
    Only one of the following can be installed at once:
    EMF Ecore Code Generator 2.8.2.v20130125-0826 (org.eclipse.emf.codegen.ecore 2.8.2.v20130125-0826)
    EMF Ecore Code Generator 2.8.1.v20120917-0436 (org.eclipse.emf.codegen.ecore 2.8.1.v20120917-0436)
    EMF Ecore Code Generator 2.7.0.v20120130-0943 (org.eclipse.emf.codegen.ecore 2.7.0.v20120130-0943)
    EMF Ecore Code Generator 2.7.0.v20110913-1156 (org.eclipse.emf.codegen.ecore 2.7.0.v20110913-1156)
    EMF Ecore Code Generator 2.7.0.v20110606-0949 (org.eclipse.emf.codegen.ecore 2.7.0.v20110606-0949)
    Only one of the following can be installed at once:
    EMF - Eclipse Modeling Framework Core Runtime 2.8.3.v20130125-0546 (org.eclipse.emf.ecore.feature.jar 2.8.3.v20130125-0546)
    EMF - Eclipse Modeling Framework Core Runtime 2.8.1.v20120911-0500 (org.eclipse.emf.ecore.feature.jar 2.8.1.v20120911-0500)
    EMF - Eclipse Modeling Framework Core Runtime 2.7.0.v20110605-0747 (org.eclipse.emf.ecore.feature.jar 2.7.0.v20110605-0747)
    EMF - Eclipse Modeling Framework Core Runtime 2.7.1.v20120127-1122 (org.eclipse.emf.ecore.feature.jar 2.7.1.v20120127-1122)
    EMF - Eclipse Modeling Framework Core Runtime 2.7.1.v20110912-0920 (org.eclipse.emf.ecore.feature.jar 2.7.1.v20110912-0920)
    Cannot satisfy dependency:
    From: Patches for UML Lab Modeling Core (Indigo) 1.5.131.201302270107 (com.yattasolutions.patches.core.feature.group 1.5.131.201302270107)
    To: org.eclipse.uml2.feature.group [3.2.1.v201109082252]
    Cannot satisfy dependency:
    From: All-in-one UML Lab Eclipse Patch Bundle for Indigo 1.5.131.201302270108 (com.yattasolutions.patches.feature.group 1.5.131.201302270108)
    To: com.yattasolutions.patches.core.feature.group [1.5.131.201302270107]
    Cannot satisfy dependency:
    From: All-in-one UML Lab Eclipse Patch Bundle for Juno 1.5.132.201302270117 (com.yattasolutions.patches.feature.group 1.5.132.201302270117)
    To: com.yattasolutions.patches.core.feature.group [1.5.132.201302270117]
    Cannot satisfy dependency:
    From: UML Lab Modeling IDE 1.5.3.201302271031 (com.yattasolutions.umllab.feature.group 1.5.3.201302271031)
    To: com.yattasolutions.patches.feature.group [1.5.130,1.5.140)
    Cannot satisfy dependency:
    From: Zend Studio 10.0.0.v2013031910 (com.zend.php.ide 10.0.0.v2013031910)
    To: org.eclipse.datatools.modelbase.feature.feature.group [1.10.2.v201209181447-7707GCcNBHLDaKTEcRi]
    Cannot satisfy dependency:
    From: Zend Studio 10.0.0.v2013031910 (com.zend.php.ide 10.0.0.v2013031910)
    To: org.eclipse.emf.ecore.feature.group [2.8.3.v20130125-0546]
    Cannot satisfy dependency:
    From: Data Tools Platform Model Base 1.10.2.v201209181447-7707GCcNBHLDaKTEcRi (org.eclipse.datatools.modelbase.feature.feature.group 1.10.2.v201209181447-7707GCcNBHLDaKTEcRi)
    To: org.eclipse.emf.feature.group 2.4.0
    Cannot satisfy dependency:
    From: EMF Ecore Code Generator 2.8.2.v20130125-0826 (org.eclipse.emf.codegen.ecore.feature.group 2.8.2.v20130125-0826)
    To: org.eclipse.emf.codegen.ecore [2.8.2.v20130125-0826]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Core Runtime 2.7.0.v20110605-0747 (org.eclipse.emf.ecore.feature.group 2.7.0.v20110605-0747)
    To: org.eclipse.emf.ecore.feature.jar [2.7.0.v20110605-0747]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Core Runtime 2.7.1.v20110912-0920 (org.eclipse.emf.ecore.feature.group 2.7.1.v20110912-0920)
    To: org.eclipse.emf.ecore.feature.jar [2.7.1.v20110912-0920]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Core Runtime 2.7.1.v20120127-1122 (org.eclipse.emf.ecore.feature.group 2.7.1.v20120127-1122)
    To: org.eclipse.emf.ecore.feature.jar [2.7.1.v20120127-1122]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Core Runtime 2.8.1.v20120911-0500 (org.eclipse.emf.ecore.feature.group 2.8.1.v20120911-0500)
    To: org.eclipse.emf.ecore.feature.jar [2.8.1.v20120911-0500]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Core Runtime 2.8.3.v20130125-0546 (org.eclipse.emf.ecore.feature.group 2.8.3.v20130125-0546)
    To: org.eclipse.emf.ecore.feature.jar [2.8.3.v20130125-0546]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Runtime and Tools 2.7.0.v20110606-0949 (org.eclipse.emf.feature.group 2.7.0.v20110606-0949)
    To: org.eclipse.emf.ecore.feature.group [2.7.0.v20110605-0747]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Runtime and Tools 2.7.1.v20110913-1526 (org.eclipse.emf.feature.group 2.7.1.v20110913-1526)
    To: org.eclipse.emf.ecore.feature.group [2.7.1.v20110912-0920]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Runtime and Tools 2.7.2.v20120130-0943 (org.eclipse.emf.feature.group 2.7.2.v20120130-0943)
    To: org.eclipse.emf.ecore.feature.group [2.7.1.v20120127-1122]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Runtime and Tools 2.8.1.v20120917-0436 (org.eclipse.emf.feature.group 2.8.1.v20120917-0436)
    To: org.eclipse.emf.ecore.feature.group [2.8.1.v20120911-0500]
    Cannot satisfy dependency:
    From: EMF - Eclipse Modeling Framework Runtime and Tools 2.8.3.v20130125-0826 (org.eclipse.emf.feature.group 2.8.3.v20130125-0826)
    To: org.eclipse.emf.codegen.ecore.feature.group [2.8.2.v20130125-0826]
    Cannot satisfy dependency:
    From: UML2 End-User Features 3.2.1.v201109082252 (org.eclipse.uml2.feature.group 3.2.1.v201109082252)
    To: org.eclipse.emf.codegen.ecore [2.7.0,2.8.0)
  • edited April 2013
    Hallo weitlaner,

    Zum Installationsproblem: Zend Studio 10 basiert auf Eclipse Juno. Daher muss die Juno Update Site http://download.eclipse.org/releases/juno unter "Available Update Sites" aktiviert werden. Die Indigo Site am besten wieder entfernen.

    Zu Zend2: Unsere mitgelieferten CodeStyles und Templates sind so konzipiert, dass sie von technischen Implementierungsdetails im Modell abstrahieren. Im Fall von Zend bedeutet dies unter anderem, dass von einigen technischen Namenskonventionen abstrahiert wird:

    - Zend Controller Klassen erhalten einen <<ZendController>> Stereotyp statt des Controller-Suffix (aus FooController wird also Foo <<ZendController>>)
    - Action Funktionen in Controller Klassen werden ohne das Action Suffix importiert (aus indexAction() wird also index())

    Diese Abbildungsregeln sind selbstverständlich quelltext-erhaltend: Bei der Codegenerierung heißt die resultierende PHP-Klasse nach wie vor FooController und die Funktion immernoch indexAction(). Sollte das bei Ihnen nicht der Fall sein, wäre ich für einen Bugreport, idealerweise mit etwas Beispielcode dankbar.

    Sie haben selbstverständlich die Möglichkeit, diese Abbildung Ihren eigenen Bedürfnissen anzupassen. Da es generell nicht möglich ist, alle Code Konventionen (oder wie in Ihrem Fall Darstellungspräferenzen) out-of-the-box zu unterstützen, verstehen wir die mit UML Lab ausgelieferten CodeStyles als gute Grundlage für ein initiales Reverse Engineering und als Ausgangsbasis für eigene Anpassungen.

    Sie können das Reverse Engineering Verhalten von UML Lab anpassen, indem Sie einen eigenen CodeStyle anlegen, der den Zend Stil erweitert (siehe http://www.uml-lab.com/de/uml-lab/tutorials/codestyles-tutorial/). Oder Sie können den gesamten Zend Style durch Ihre eigene Version ersetzen. Hierzu habe ich mal ein Eclipse Projekt als Ausgangsbasis erstellt [1]. Die Template-Dateien liegen im templates/ Ordner.

    Natürlich können wir Ihnen auch gern auf Wunsch bei der Templateerstellung behilflich sein und für Sie maßgeschneiderte Templates im Rahmen einer UML Lab Customized Edition erstellen.


    [1] http://www.uml-lab.com/fileadmin/download/customZendStyle.zip
  • Vielen Dank für die hilfreiche Auskunft!
Sign In or Register to comment.