Ich habe mich dazu entschlossen, mir das unter der BSD-Lizenz stehende Zend Framework anzusehen. Dafür bietet Zend ein Quick Start Tutorial an.
Ich erhoffe mir dadurch, noch mehr Struktur in meine zukünftigen PHP-Projekte zu bringen und zusätzlich auf ausgereifte Hilfs-Bibliotheken zurückgreifen zu können.
Ich möchte hier habe nicht auf das ganze Tutorial eingehen, sondern nur kurz meine Stolpersteine aufzählen.
Kein Stolperstein, aber eine für mich neue Richtlinie: keine einzige PHP-Script-Datei enthält das PHP-Schliessen-Tag ?> am Dateiende. PHP scheint das zu tolerieren und beendet das Script normal. Der Grund für diese Richtlinie ist recht praktisch, denn hier kann es gar nicht erst passieren, dass White-Spaces (Leerzeichen, Zeilenumbrüche u.ä.) nach dem Schliessen-Tag dafür sorgen, dass später gesendete Header-Informationen nicht mehr angenommen werden.
In dem Tutorial wird eine Beispiel-Applikation in Form eines Gästebuches gebaut. Als Datenbank wird SQLite verwendet. Dafür musste ich das Debian-Paket php5-sqlite nachinstallieren.
Ausserdem musste der Webserver so konfiguriert werden, dass das public-Verzeichnis als Web-Root-Verzeichnis fungiert. Ich hatte das Test-Projekt erst in einem Unterverzeichnis laufen, was aber zu einem Fehler in der Applikation führte.
Als nächstes musste ich das Verzeichnis für die Datenbank anlegen und mit entsprechenden Rechten versehen, denn sonst konnte das load-Skript nicht die Datenbank anlegen.
Beim Anlegen der Model Klasse habe ich wegen eines Schreibfehler des Tutorial-Skript-Schreibers natürlich ein falsches Verzeichnis gewählt: statt application/model/GuestBook.php muss der Pfad korrekterweise application/models/GuestBook.php lauten – nur ein fehlender Buchstabe, aber dennoch fatal.
Das kommt bei einem der nächsten View-Skripte nochmal vor, ist aber im Gegensatz zu vorher ziemlich offensichtlich: application/views/scipts/guestbook/sign.phtml.
Und schliesslich soll man die zwei Methoden signAction() und _getGuestbookForm()
zur GuestbookController-Klasse hinzufügen, die sind aber in der selben Form bereits vorhanden – eine doppelte Deklaration der Methoden lässt PHP nicht zu und bricht natürlich ab.
Wenn man alle diese Hürden überwunden hat, ist die erste Zend-Applikation fertig und das Tutorial zuende. Leider kann man aber keinen Eintrag ins Gästebuch schreiben, da nach erfolgreichem Eintragen (nur 20 Zeichen und lustiges ASCII-CAPTCHA), ein Application-Error „passiert“: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database.
Das liegt daran, dass ich das load-Skript als Benutzer ausführen musste (ich hatte dafür sogar extra das php5-cli Paket installiert). Die dadurch erstellte DB-Datei hatte dadurch natürlich die falschen Rechte, denn bei Zugriff über Webbrowser, muss der Webserver Zugriffsrechte auf die Datei haben. Bei mir reichten chown ric:www-data guestbook-dev.db und chmod ug+rw guestbook-dev.db.
Trotzdem bekommt man bei einem neuen Eintrag immer noch eine Fehlermeldung: SQLSTATE[HY000]: General error: 14 unable to open database file . Das war diesmal aber mein eigener Fehler, denn ich hatte vergessen, das Verzeichnis db der korrekten Gruppe zuzuweisen. Ich hatte es für data gemacht, aber nicht das R-Flag (rekursiv) bei chown gesetzt.
Jetzt funktioniert meine erste Zend-Applikation – und bisher sind meine Erwartungen zu Struktur und Mächtigkeit nicht enttäuscht worden. Das Tutorial hat zwar ein paar Schwachstellen, aber im Grossen und Ganzen bekommt man einen guten Einblick in die Funktionsweise des Frameworks.
Wenn man sich den Stress des Selbst-Zusammenbauens dieser Tutorial-Applikation nicht geben will, kann natürlich auch den Code als fertiges Paket herunterladen. Einen Link dazu gibt es auf jeder Seite des Tutorials.
earn free crypto
geld anlegen in bitcoins
bitcoin gratis facile
fastest bitcoin faucet
best bitcoin earning site
paginas que regalan bitcoins
minar bitcoins con telegram
vinci bitcoin gratis
Cialis
buy online cialis
http://buystromectolon.com/ – ivermectin for horses
stromectol ivermectin buy
Delete, please! .
ivermectin pills online
Error 212 origin is unreachable
Delete, please! .
Накрутка Twitch Зрителей
chat bot me
Thank you for the auspicious writeup. It in fact was a amusement account it. Look advanced to far added agreeable from you! By the way, how can we communicate? http://jet-ski.co.uk/profile/chieprecinsa1973/
I’ve been exploring for a bit for any high-quality articles or blog posts in this kind of space . Exploring in Yahoo I ultimately stumbled upon this website. Reading this information So i am satisfied to exhibit that I’ve an incredibly just right uncanny feeling I found out exactly what I needed. I such a lot certainly will make certain to don?t overlook this website and provides it a glance regularly. https://www.electrifiedwomen.de/community/profil/monrepepur1981/
We are a group of volunteers and opening a new scheme in our community. Your site provided us with valuable info to work on. You’ve done an impressive job and our entire community will be grateful to you. https://www.shureaboutthat.com/community/profile/martinenco1981/
стримхаб.рф
Муссовые пирожные Новосибирск
Трайфлы Новосибирск
oral cephalexin – erythromycin drug purchase erythromycin for sale
pokoje pracownicze w augustowie http://www.kwatery-waugustowie.online
stx21
http://www.kwatery-waugustowie.online augustow noclegi w centrum
stx21
noclegi w augustowie z wyzywieniem https://www.kwatery-waugustowie.online
stx21
noclegi w Augustowie https://www.noclegiiaugustow.online
stx21
http://www.pokojeiaugustow.online pokoje w Augustowie
stx21
“See this; see this. “His father says. “This is where power comes from.”