Direkt zum Hauptbereich

re:publica 2017

re:publica 17 #LoveOutLoud

ZendFramework2: Kleinigkeiten mit großen Effekten 002

Ihr habt euch also entschieden, der alten Zicke ZendFramework zu folgen und habt ein Framework installiert.

Im Idealfall seht ihr also nun die Startseite der ZF2SkeletonApplication vor euch:

Startseite der SkeletonApplication


Wenn das nicht so ganz der Fall ist, kann das durchaus auch an einer Kleinigkeit liegen, die aber leider große Effekte verusachen kann...

Grundsätzlich empfiehlt es sich mit einer Entwicklungsumgebung zu arbeiten, die nicht der produktive Server ist, also etwa ein lokaler Webserver auf eurem Rechner oder auf einem Netzwerkgerät, welches ihr vollständig kontrollieren könnt.

Die Arbeit mit dem Composer, wie in der Installationsanleitung der SkeletonApplication beschrieben, funktioniert unter Umständen nicht, wenn ihr der Webspace z.B. keinen root-Zugang bietet oder der produktive Server hinter einem Dutzend Proxy-Servern versteckt ist.

Letzteres ist z.B. in meinem Firmen-Projekt ein Hindernis, welches sich nur durch aktive Handarbeit am Framework umschiffen lässt.

Zumindest in einem Punkt müsst ihr aber auch im Umgang mit dem Composer aufpassen:
Ich persönlich würde auf einem produktiven System niemals das Framework einfach so per Compser updaten, denn Updates beim ZendFramework verändern oft die Abhängigkeit zu bestimmten PHP-Versionen und ganze Klassen können sich in der Funktion verändern.
Die Folge ist dann eine hängende Anwendung....

Damit sind wir bei der ersten möglichen Panne bei der Erstinstallation:
Die PHP-Version des produktiven Webservers.

ZF2 in der Version 2.4 verlangt PHP 5.4 oder höher.
Webspace-Betreiber nutzen recht häufig Linuxe, die auf Debian basieren und somit häufig noch nicht in diesem Jahrzehnt angekommen sind, was die Versionen der Pakete angeht.

Prüft also die PHP-Version (z.B. mit phpinfo();) und bitte evt. um ein Update oder nutzt eine Framewrok-Version, die zu euerer PHP-Version passt, was bei Versionen unterhalb von 5.4 dazu führen wird, dass diese Serie rund ums ZF2 nicht mehr die richtige für euch ist und ihr nach Anleitungen im ZF1-Bereich suchen müsst.

Webspaces bieten auch oft keine Möglichkeit die php.ini Datei direkt zu bearbeiten, was später zu einem Fehler führen kann, der die Arbeit der ganzen Apllikation unterbricht:
Sobald irgendwo ein DateTime-Objekt benutzt wird, verlangt das ZF2 nach einer eindeutigen Bennnung der Zeitzone in der php.ini oder, wenn diese nicht editiert werden kann, dem Setzen der Zeitzone gleich zum Start des Frameworks.

Deshalb sollten insbesondere Webspace-Nutzer gleich zu Beginn die Datei index.php im public-Ordner des Frameworks bearbeiten, so dass diese dann z.B. wie folgt aussieht:

Datei /public/index.php


Um das Leben mit dem Framework zu erleichtern, habe ich gleich noch eine PHP-Session gestartet und wenn diese unbedingt einen anderen Namen als die Standard-Session haben soll, dann benennt sie bitte auch gleich an dieser Stelle um, das vermeidet Pannen mit der Session-Verwaltung durch das ZF2 und stellt sicher, dass die Session präsent ist.

Wenn das alles soweit steht, solltet ihr aber nun wirklich die Standard-Seite vor euch sehen...

Wenn nicht, gebe ich hier mal noch Hinweise auf Fehlerquellen, die mir so mal begegnet sind:

  • Kein Recht auf den Ordner zuzugreifen.
  • Beim Upload werden die Rechte vom Programm nicht korrekt gesetzt.
  • Keine .htaccess-Datei.
  • PHP-Version stimmt nicht.
  • Falscher Root-Ordner (der ist immer /public !), also die URL stimmt nicht.
In der nächsten Folge sehen wir uns dann mal die Templates an.
Grundsätzlich werde ich aber kein komplettes Tutorial für irgendeine (Beispiel-)Anwendung hier erstellen, sondern nur Hinweise und Tipps aus meiner Arbeit mit dem Framework offerieren, die manchmal auch aus der an einigen Stellen erbärmlichen Doku des ZF2 resultieren.


Teil 001 der Serie findet ihr hier.
Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

openSUSE 12.3: Ebooks mit DRM lesen

Grundsätzlich war es zwar nicht wirklich dringend nötig, aber letztlich auch eine Frage der Ehre, dass ich das Problem endlich mal angehe...

Ich besitze eine Menge ehrlich erworbener und bislang vorwiegend auf meinem OYO gelesener Ebooks, deren Manko es bislang war, das sämtliche Ebook-Reader-Software unter Linux die Kooperation mit diesen DRM-geschützten Werken verweigerte.

Auf Microsoft-Betriebssystemen übernimmt die Software Adobe Digital Editions diese Aufgabe und verwaltet die Adobe-ID und die damit lesbaren Bücher.

ADE hatte dieses Problem bislang auch perfekt in der bis vor kurzem noch vorhandenen virtuellen Windows-Maschine gelöst, die nun aber auch nicht mehr existiert.

Was also tun?
Calibre ist ein netter Reader, an meine DRM-Bücher komme ich aber hier nicht...

Also warum nicht Adobe Digital Editions installieren?

Wir sind ja auf einem Linux-System, also gibt es für dieses Problem eine am Ende doch auch recht einfache Lösung, die allerdings die Registrierung eines Accounts b…

Eishockey: Wenn dem Torhüter langweilig wird...

...geht er aufs Eis.Unter diesem Motto muss man wohl das Pokal-Derby gegen die "Rivalen" vom Glockenturm sehen:
Hütete er einen Tag früher noch als Goalie bei der Niederlage in Niesky das Tor, trug sich Christian Krüger heute als Torschütze des 5:0 in die Scorerliste des Spieles ein. Die gestrige Niederlage in Niesky ist ja die Folge einer schlichten Kausalkette von Verletzten, durch die Arbeit verhinderten, den Playoffs in Weißwasser bis zur eigentlichen Ursache, dem fehlenden Dach und damit fehlendem Eis in Niesky und lässt sich,angesichts von gerade mal 10 reisenden Spielern der Akademiker, auch verstehen, brachte sie aber auf dem Weg der "Mission Finale" leider nicht voran.Das nun Krüger zum Torschützen wird, ist ein Zeichen beständigen Personalmangels in der Post-Season, der geradezu symptomatisch für die Teilnehmer der gesamten Pokalrunde zu sein scheint.Doch in dieser Partie, ob nun mit dezimiertem Kader oder nicht, sind die Weddinger schlicht die Favoriten u…