NetBeans für PHP – Alternative zu Eclipse PDT

Auch als PHP-Entwickler darf man über den Tellerrand hinweg schauen und sich mit anderen Sprachen beschäftigen. Eigentlich habe ich nach einer vernünftigen IDE für Python gesucht, doch gefunden habe ich NetBeans – eine IDE, die vielleicht noch besser ist als Eclipse PDT!? In Deutschland ist NetBeans bei PHP-Entwickler noch relativ unbekannt, daher stelle ich NetBeans einfach mal vor. » Weiterlesen

Klassen-Konstanten in PHP 5.3

Seit PHP Version 5.3 gibt es einige Verbesserungen bei den Klassen-Konstanten. Hier mal ein kleines Beispiel:

abstract class Auto
{
    public function getAutoName()
    {
        return self::AUTO_NAME;
    }
}
 
class Golf extends Auto
{
    const AUTO_NAME = "Golf";
}
 
$auto = new Golf();
echo $auto->getAutoName();

Wer dieses Beispiel in PHP 5.2 ausführt, bekommt eine Fehlermeldung „Fatal error: Undefined class constant ‚AUTO_NAME‘ in /htdocs/test.php on line 7“. Der Grund ist einfach: Die Konstante AUTO_NAME kann nicht von der Eltern-Klassen aufgerufen werden. Jetzt kommen wir zur Neuerung in PHP 5.3. Wir ändern lediglich eine Kleinigkeit:

abstract class Auto
{
    public function getAutoName()
    {
        return $this::AUTO_NAME;
    }
}
 
class Golf extends Auto
{
    const AUTO_NAME = "Golf";
}
 
$auto = new Golf();
echo $auto->getAutoName();

Aus dem self:: wird ein $this:: und schon gibt uns PHP das richtige Ergebnis aus. Außerdem könnte man die Konstante noch direkt über das Objekt ausgeben mit $auto::AUTO_NAME, aber auch das ist erst seit PHP 5.3 möglich.

Zend Framework: Zend_Barcode

Die vor wenigen Wochen erschiene Version 1.10 des Zend Frameworks bringt eine neue interessante Komponente mit: Zend_Barcode. Damit lassen sich – wie man sich eigentlich denken kann – Barcodes (dt. Strichcodes) generieren. Und wieder einmal hat man es geschafft, eine doch recht komplizierte Funktion leicht zu verpacken.

<?php
set_include_path(__DIR__.'/lib'); // Pfad zum Zend Framework
require_once 'Zend/Barcode.php';
Zend_Barcode::factory("code39", "image", array("text" => strtoupper("basti-sama")))->render();

Mit diesen drei Zeilen lässt sich folgendes Bild generieren:
Barcode Beispiel

Wenn alle Entwickler ihre Anwendungen nach diesem einfachen Schema aufbauen würden, wäre Programmieren so einfach.