Oct 20

Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert.

Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool – JDT). Aber auch PHP Webanwendungen lassen sich gut mit Eclipse und dem PHP Development Tool – PDT programmieren.

Das PDT bringt keinen eigenen PHP Interpreter mit. D.h., man muss selbst für einen Webserver mit PHP Modul sorgen. Auf dem Mac bekommt man das Rundum Sorglos Paket mit MAMP.

Möchte man auch PHP Scripts unter Eclipse ausführen, muss man die beiden miteinander bekannt machen. Doch zuvor verlangt Eclipse PDT nach einem Debugger. Zur Auswahl stehen der Zend Debugger, der leider nicht mit MAMP mitgeliefert wird und XDebug, dessen Modul zwar in MAMP integriert ist, bei mir aber nicht funktionierte.

Eine aktuelle Version von XDebug kann man sich über brew installieren.

brew install xdebug

Brew setzt zwar Xcode voraus, sollte aber auf keinem Entwickler-Mac fehlen. Eine Installationsanleitung gibt es auf github.

Doch zurück zu XDebug. Während der Installation wird man auf die nächsten Schritte hingewiesen:

To use this software:
  * Add the following line to php.ini:
    zend_extension="/usr/local/Cellar/xdebug/2.1.1/xdebug.so"
  * Restart your webserver.
  * Write a PHP page that calls "phpinfo();"
  * Load it in a browser and look for the info on the xdebug module.
  * If you see it, you have been successful!

Die php.ini, die MAMP mitbringt, lässt sich nicht mit normalen User Rechten editieren. Mit sudo geht es aber schon.

sudo vi /Applications/MAMP/bin/php/php5.3.6/conf/php.ini

Im Bereich [xdebug] dann die Direkive für das xdebug Modul hinzufügen:

[xdebug]
zend_extension="/usr/local/Cellar/xdebug/2.1.1/xdebug.so"

den Webserver durchstarten und den Erfolg wie oben beschrieben kontrollieren.

Funktioniert alles, muss man in Eclipse nur noch in den Einstellungen ein PHP Executeable konfigurieren um von dort aus PHP Scripts starten zu können.

eclipse php-executeable

geschrieben von gklinkmann \\ tags: , ,

Oct 25

Diese Artikel waren meine Highlights der letzten Woche:

Linkaufbau Strategie – Tipps für Suchmaschinenoptimierung und SMM
Teil 1 des Linkaufbau Tutorials.
Die Reflection API von PHP « Phpmonkeys
Eine kurze Einführung in die Reflection API von PHP.
addendum – PHP Annotations
Annotations sind aus Java nicht mehr wegzudenken. Addendum ist ein Google Code Projekt, das DocBlock/JavaDoc Annotations auch für PHP5 ermöglicht.
Geolocation and Maps with PHP
Vortrag von Derick Rethans auf der IPC zu Geolocation und Maps mit PHP (pdf – englisch).

geschrieben von gklinkmann \\ tags: , , ,

Oct 12

Wenn sich ein Entwurfsmuster in der Web Entwicklung bewährt hat, dann ist es das Model View Controller Pattern oder kurz MVC. Ich bin schon seit längerem auf der Suche nach einem PHP Framework, dass MVC konsequent umsetzt, aber nicht gleich mit Kanonen auf Spatzen schießt. Leichtfüßig (oder in “Neu-Deutsch” light weight) und objekt orientiert sollte es sein. PHP Fameworks, wie z.B. Zend, CakePHP und Symphony gehören da eher zu den Boliden. MVC setzen sie zwar perfekt um, objekt orientiert sind sie auch, aber leichtfüßig ist anders.

So bin ich auf CodeIgniter gestoßen, was von sich behauptet mit einem “schmalen Fuß” (small footprint) daher zu kommen.

Die Installation ist schon einmal denkbar einfach. Das Zip im “DocumentRoot” des Webservers auspacken, das Verzeichnis umbenennen und die vollständige URL für den Webauftritt in der Konfigurationsdatei system/application/config/config.php angeben.

$config['base_url'] = "http://localhost/allMedia/";

Und schon kann man seinen ersten Controller schreiben.

class Books extends Controller {
   ... some logic ...
 
   // build view
   $this->load->view('common/header',$headerdata);
   $this->load->view('book/list',$data);
   $this->load->view('common/menu',$menudata);
   $this->load->view('common/footer');
}

CodeIgniter ist in der Lage Teile einer View vor dem Ausliefern zusammenzusetzen. Templates werden unterstützt sind aber nicht zwingend notwendig.

Für mich bringt dieses Framework alles mit, was ich brauche:

  • das MVC Entwurfsmuster
  • durchgängige Objektorientierung
  • Performance
  • schöne URL’s
  • Helper Klassen (z.B. für Paging)
  • gute Einbindung von doctrine als OR Mapper
  • und nicht zu vergessen eine gute Dokumentation

“Das Feuer ist bei mir entzündet” und ein kleines Projekt bereits mit CodeIgniter implementiert. Wem also Zend und Co. zu komplex sind, der sollte sich CodeIgniter einmal etwas genauer anschauen. Es lohnt sich.

geschrieben von gklinkmann \\ tags: , ,

Oct 04

Heute mit 5 Links zu den Themen Testdaten, iPhone, Single Sign On, Mysql und CSS.

Bastelstunde: Testdaten
Zum Testen sollte man auf anonyme Testdaten zurückgreifen können. Dieser Artikel zeigt, wie man sie erzeugen kann.
Sennheiser Worldwide: Mikrofone, Kopfhörer und Informationssysteme
Sennheiser Kopfhörer, die man für iPhone und iPod Touch nutzen kann.
Phpmonkeys » Archiv » Ein Login für alles – SSO mit PHP
Single Sign On (SSO) mit PHP – ein kleiner Einblick.
MySQL Cluster Perfomance (deutsch)
Datenbanken sollten skalierbar, schnell und hochverfügbar sein. Dies ist das deutsche Whitepaper für den MySQL Cluster, der dies für Mysql ermöglicht.
ProCSSor – Advanced CSS Prettifier
Unleserliche CSS Style Sheets sind leider normaler Alltag im Web. ProCSSor formatiert sie neu und macht sie wieder lesbar.

geschrieben von gklinkmann \\ tags: , , , , ,

Aug 25

Etwas verspätet doch mit Freude habe ich den Blogeintrag von Stephan Elter über die Vorteile des Einsatzes von Objektorientierter Programmierung (OOP) mit PHP gelesen. Da ich Java und PHP in etwa zur gleichen Zeit gelernt habe, konnte ich die Vorzüge beider Sprachen gut miteinander vergleichen. Auf der einen Seite die leichte Lernkurve von PHP. Auf der anderen Seite Java, mit seiner durchgängigen Objekt Orientierung.

Die Lernkurve der OOP ist für Entwickler, die mit prozeduraler Programmierung begonnen haben sicherlich etwas schwieriger und Spass macht OOP auch erst mit einer guten Entwicklungsumgebung (wie Eclipse). Doch hat man die Objektorientierung erst einmal verstanden und verinnerlicht, möchte man sie nicht mehr missen. So geht es zumindest mir.

Das wichtigste von OOP sind die Konzepte, wie z.B.:

  • Kapselung von Daten
  • Vererbung
  • Überladung
  • Polymorphismus

Danach kommt die Syntax für die OOP der jeweiligen Programmiersprache, die in PHP sicherlich gewöhnungsbedürftiger ist (man denke nur an __construct() für einen Konstruktor), als in Java. Doch dafür gibt es Tutorials. Das beste deutschsrpachige Tutorial ist die online Ausgabe des Buches:

Professionelle Softwareentwicklung mit PHP 5
Objektorientierung. Entwurfsmuster. Modellierung. Fortgeschrittene Datenbankprogrammierung.

von Sebastian Bergmann.

Doch nichts hilft besser, als learning by doing. :-)

geschrieben von gklinkmann \\ tags: