Juli 2010
M D M D F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031  

Die erste Mini-Anwendung mit CakePHP

Am vergangen Sonntag durfte ich bei der Schulung von Roland in Sachen CakePHP mit dabei sein. Das Framework interessiert mich an sich und ausserdem sehe ich es als eine Möglichkeit an, damit meine kleinen Webapplikationen neu zu zimmern. Alle Teilnehmer haben ein “nackiges” Framework erstellt und sind von dort aus gestartet. Das ist auch durchaus sinnreich und allemal besser, als wenn wir von Roland ein fertiges Päckli bekommen hätten. Wir haben zwar ein solches Paket erhalten, aber nicht um damit während der Schulung zu arbeiten, sondern um daraus einige Beispiele zu ziehen und natürlich auch für das nachträgliche Studium.

Im Vorfeld habe ich auf meinem kleine EEEPC 1000H einige Vorkehrungen getroffen. Darauf läuft ein Ubuntu 9.10. Es braucht also nicht zwingend ein Server zu sein, auch wenn das natürlich bei einer fertig gebackenen Applikation sinnreich wäre. Aber zum Entwickeln reicht also ein solch kleiner Kerl, der übrigens bloss ein Gigabyte flüchtigen Speicher besitzt.

Manchmal hätte ich aber dann doch lieber ein etwas grösseren Bildschirm gehabt, gerade bei der Ansicht der Konsole, die ab und an eine ziemlich lange “Backliste” anzeigt. Aber es ging letztlich auch so ganz gut. Ich installierte PHP, den Apache Webserver, den MySQL-Server und für mich noch optional PHPMyAdmin. Wer möchte, kann sich natürlich auch über die Konsole die nötigen Datenbanken Tabellen anlegen. Ich mag einfach lieber das GUI.

sudo apt-get install php5 php5-cli mysql-server apache2 phpmyadmin

Wichtig ist, dass beim Apache-Webserver das Modul mod_rewrite aktiviert ist. Das haben wir nach längeren Detektivarbeiten und Dank Ute herausgefunden. Auf ubuntusers.de gibt es dazu einen gesunden Wiki-Artikel. (Heisst es eigentlich einen gesunden Wiki-Artikel oder ein gesunder Wiki-Artikel?)

Anschliessend holten wir uns die aktuelle und stabile Source auf der Website von CakePHP und entpackten sie. Der Apache muss dann auf das Verzeichnis webroot im Baum des Downloads unter app zeigen. Die Datei default im Verzeichnis /etc/apache2/sites-available hat bei mir folgendes Aussehen, allerdings habe ich keine zusätzlichen virtuellen Hosts, sondern bloss eine Site erzeugt. Auch hier hat mich Ute unterstützt:

<virtualhost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /home/roman/cakephp/app/webroot
	<directory />
		Options FollowSymLinks
		AllowOverride FileInfo Options

	<directory /home/roman/cakephp/app/webroot>
		Options Indexes FollowSymLinks
		AllowOverride FileInfo Options
		Order allow,deny
		allow from all
	</directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

 Alias /doc/ "/usr/share/doc/"
 <directory "/usr/share/doc/">
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order deny,allow
 Deny from all
 Allow from 127.0.0.0/255.0.0.0 ::1/128
 </directory>

</virtualhost>

Damit funktionierte CakePHP ganz gut. Die Installation war also recht einfach, die ersten vier kleinen Hürden betreffen die Schreibrechte auf Verzeichnissen, die sichergestellt werden müssen und der “gesalzenen Sicherheit” sind rasch erledigt. Danach kann man bereits loslassen.

Roland hat sein Projekt, das wir ansatzweise an diesem Sonntag erarbeitet haben, in das Netz gestellt, so dass jeder daran partizipieren kann. Auch das ganze Modell und die Anforderungen stehen dort bereit. Die Idee, welche sich hinter diesem Vorgehen verbirgt, soll echte OpenSource-Programmierung abbilden. Jeder von uns kann oder darf einen Teil zu diesem Projekt beitragen, bis ein fertiges Produkt entsteht. So macht “opensourcen” Spass. Ich hoffe, dass ich mir hin und wieder ein Stündchen Zeit nehmen kann, um da mitzuwirken.

Während dem Kurs sind ein paar wenige Bilder entstanden, die ich in eben jener Applikation bereitgestellt habe, die einst durch die neu zu backende Anwendung ersetzt werden soll: In meiner kleinen Bilderdatenbank. An dieser Stelle sende ich ein dickes Dankeschön an Ute und Roland für die Gastfreundschaft und für den interessanten Sonntagnachmittag! Ich komme sicherlich noch einmal auf das Thema zurück und kann dann hoffentlich etwas tiefer über Technisches berichten.

Ähnliche Artikel

Webentwicklung mit CakePHP

Bücher aus dem Hause O’Reilly mag ich sehr, da sie einerseits eine hohe Qualität aufweisen – ich meine inhaltlich – und andererseits sind sie meist auch anspruchsvoll. Allerdings kosten die Schinken meist auch etwas mehr, als ein Buch von Markt und Technik, Franzis, Data Becker oder einem ähnlichen Verlag. Vor ein paar Tagen lag das Buch Webentwicklung mit CakePHP in meinem Briefkasten. Bisher hörte ich bloss am Rande von diesem Framework, ausser am BarCamp zu Liechtenstein; dort setzte ich mich in die Session von Roland und sah mir an, wie in knapp 45 Minuten eine Webapplikation entstand. Mit CakePHP.

Das Buch entstand im Jahre 2008, verfasst haben es Dirk Ammelberger und Robert Scherer. Beides sind Koryphäen im Bereich der Webentwicklung und dem dazugehörigen Umfeld. Ich befinde mich nun mitten in der Arbeit mit diesem Buch und darf mit Überzeugung sagen, dass nicht nur CakePHP eine feine Sache ist, sondern auch das Buch selbst.

Es ist nicht für Computer-Einsteiger geschrieben, das geht auch aus der Einleitung hervor. Ein paar Grundkenntnisse zu PHP, MySQL, SQL und den Relationen in einer modernen Datenbank sowie dem objektorientierten Verhalten einer Programmiersprache reichen aber aus, um gut damit zurechtzukommen. Mindestens nehme ich die Inhalte so wahr und ich bin bei weitem kein Profi in diesen Dingen, höchstens ein interessierter Amateur. Die Einleitung halte ich für sehr gelungen, denn darin bekomme ich sauber erklärt, was CakePHP ist, wozu ein Framework dient und welche Mittel ich brauche, um damit arbeiten zu können. Im Anschluss an die Einleitung folgen dann die Anweisungen und Tipps zur Installation, welche für Linux, Mac und sogar Windows erklärt werden. Dabei kommt nicht nur das Framework an sich zur Sprache, sondern auch die Datenbank, der Webserver und der PHP-Interpreter. Ich weiss zwar bis heute nicht, was PHP auf einem Windows-Rechner zu suchen hat und weshalb ein Apache auf dieses Betriebssystem gezwungen werden soll, aber das soll ja nicht meine Sorge sein. Wer ein WAMP haben will, soll es sich halt zurechtschustern. Leider wird im Buch die Installation von der CakePHP-Konsole für Linux mit keinem Wort erwähnt, bloss Windows und Mac werden behandelt. Dort stehe ich im Moment noch etwas vor dem Berg, aber das werde ich noch lösen.

Völlig neu war mir auch, dass CakePHP ein Abbild eines Frameworks ist, das sich bei Ruby wiederfindet. Ruby on Rails hat ja der Programmiersprache Ruby zu einer richtigen Renaissance verholfen. Es ist ein Framework eben für Ruby, das sich sehr erfolgreich verbreitet hat. CakePHP soll in etwa dasselbe für PHP sein.

Danach wird Schritt für Schritt mittels einem imaginären Projekt jede Funktion vom Framework besprochen und mit “lebendigen” Beispielen erklärt. Zuvor lernen aber die Leser noch eine Menge wichtiger Fakten über die Arbeitsweise von CakePHP. Für besonders spannend halte ich das Grundprinzip MVC, welches dafür sorgt, dass die Datenhaltung, die Darstellung und die Logik sauber voneinander getrennt werden – WordPress lässt grüssen… Aber auch DRY finde ich essentiell wichtig, denn ich wiederhole mich wirklich nicht gerne beim Coden; das ist langweilig und das Resultat birgt grosse Fehlerquellen in sich. Die Beispiele und Erklärungen im Buch weisen eine hohe Qualität auf und der Lerneffekt ist – mindestens bei meiner suboptimalen Intelligenz – sehr hoch. Es macht Spass, mit diesem Buch zu lernen.

Auch AJAX ist ein Thema in diesem Buch. Soweit bin ich aber noch nicht vorgestossen, ich habe aber gesehen, dass mitunter auch DHTML besprochen wird. Das ist ein heikles Thema, besonders die Barriere-Freiheit ist dort gefährdet. Ich bin gespannt, was dort zu lesen ist.

Für meine Tests und kleinen Applikationen habe ich die Installation von CakePHP auf meinem Server zu Hause durchgeführt. Das ist ein Uralt-PC, auf dem ein Ubuntu-Server 8.10 rennt. Die Maschine ist von aussen nicht zu erreichen. Ich mag es nicht besonders, wenn ich auf meinem Notebook PHP, MySQL-Server, Apache, PHPMyAdmin und allenfalls weitere Dienste sowie das Framework installieren soll. Genau für solche Anforderungen besitze ich noch immer diesen alten PC, der wohl aus dem Jahre 2003 stammt. Allenfalls braucht es noch das CLI-Paket für PHP:

sudo apt-get install php5-cli

Grundsätzlich könnte man unter Ubuntu das gesamte Framework über die Paketverwaltung installieren. Das habe ich aber nicht getestet, zumal andere Komponenten benutzt werden als Apache und Konsorten.

Zusammen mit diesem Buch kann ich mich mindestens in das Framework einarbeiten. Wer sich für CakePHP interessiert und noch nicht alle Feinheiten kennt, dürfte mit diesem Buch gut bedient sein. Aber auch Leute, die das Framework noch gar nicht kennen, aber das nötige “Meta-Grundwissen” mitbringen, werden damit sofort zurechtkommen.

Noch ein Satz zum Buch selbst, also zur Bindung: Ich kenne sehr viele verschiedene Buchbindungen, habe auch schon selbst Bücher gebunden. Ich werde es einem Buchbinder niemals verzeihen, wenn er kein Buchzeichen – in Form eines Stoffbandes, das im Rücken verleimt ist – einsetzt. Bei einem Buch dieser Preisklasse gehört mindestens ein Buchzeichen dazu. Die Bindung an sich ist sauber und qualitativ in Ordnung, aber es ist eben doch keine Deutsche Wertarbeit, wenn das Buchzeichen fehlt.

Webentwicklung mit CakePHP trägt die ISBN-Nummer 978-3-89721-863-5 und ist im Handel für ungefähr 30 Euro zu haben.

Ähnliche Artikel