Sep 22
Mit Eclipse kann nicht nur sehr komfortabel Java programmieren, sondern auch für PHP steht mit dem PDT Plugin eine hervorragende Lösung zur Verfügung.
Möchte man allerdings in seinem Projekt mit allgemeinen Bibliotheken (wie z.B. phpUnit) arbeiten, muss man sie entweder in sein Projekt kopieren, oder ein eigenes Projekt mit deren Sourcen erstellen.
Mit dem Elicpse PTI Plugin von PHPSRC gibt es jetzt noch eine 3. Möglichkeit. PTI (Eclipse PHP Tool Integration) stellt über die bekannten Eclipse Mechanismen (update url: http://www.phpsrc.org/eclipse/pti/) so bekannte PHP Bibliotheken wie
- PEAR
- PHPUnit
- PHP CodeSniffer und
- External PHP Checker
zur Verfügung.
Das spart eine Menge Handarbeit und untermauert wieder einmal meine Meinung, dass Eclipse die beste Entwicklungsumgebung ist (und zwar nicht nur, weil sie kostenlos ist).

Links:
phpsrc – wiki
update: weitere Links
phphatesme.com – PTI Grundkonfiguration
Mit Eclipse kann nicht nur sehr komfortabel Java programmieren, sondern auch für PHP steht mit dem PDT Plugin eine hervorragende Lösung zur Verfügung.
Möchte man allerdings in seinem Projekt mit allgemeinen Bibliotheken (wie z.B. phpUnit) arbeiten, muss man sie entweder in sein Projekt kopieren, oder ein eigenes Projekt mit deren Sourcen erstellen.
Mit dem Elicpse PTI Plugin von PHPSRC gibt es jetzt noch eine 3. Möglichkeit. PTI (Eclipse PHP Tool Integration) stellt über die bekannten Eclipse Mechanismen (update url: http://www.phpsrc.org/eclipse/pti/) so bekannte PHP Bibliotheken wie
PEAR
PHPUnit
PHP CodeSniffer und
External PHP Checker
zur Verfügung.
Das spart eine Menge Handarbeit und untermauert wieder einmal meine Meinung, dass Eclipse die beste Entwicklungsumgebung ist (und zwar nicht nur, weil sie kostenlos ist).
Links:
phpsrc - wiki
update: weitere Links
phphatesme.com - PTI Grundkonfiguration
geschrieben von gklinkmann
\\ tags: eclipse, Open Source, php
Aug 05

Die Amazon Product Advertising API (Teil der Amazon Webservices (AWS)) bietet einen Zugriff auf Amazon Produktdaten. Grundsätzlich gibt es mit SOAP und REST zwei Möglichkeiten, um auf die AWS zuzugreifen. Für die Amazon Product Advertising API wird da
Zum 15.08.2009 ändert sich das Authentifizierungsverfahren. Grund genug um den geänderten Zugriff in einem kleinen Beispiel einmal genauer zu betrachten.
Reichte früher ein API Key, sind jetzt ein öffentlicher und ein privater Zugangsschlüssel notwendig, die man während der Registrierung erstellt. Für SOAP Anfragen ist alternativ auch die Authentifizierung über X.509 Zertifikate möglich. Eine Übersicht über die s.g. “Request Identifiers” gibt es hier.
Im Beispiel soll die Klasse AmazonService die Anfrage an die Amazon Product Advertising API übernehmen. Betrachtet wird nur der Fall, wenn alles gut geht. Im produktiven Einsatz muss natürlich noch das Fehlerhandling hinzugefügt werden.
Die bei der Registrierung erstellten Zugangsschlüssel werden in der Klasse als Konstanten hinterlegt. Die Variable xml benötigen wir für die Antwort von Amazon.
1
2
3
4
5
| class AmazonService {
const APIKEY='< Euer öffentlicher Schlüssel >';
const PRIVATE_KEY='< Euer privater Schlüssel >';
const ASSOCIATE_TAG='< Eure Associates Tracking ID >';
private $xml; |
Das wichtigste für die Anfrage ist der Aufbau der URL. In Ihr werden die Parameter der Anfrage und die mit dem privaten Zugangsschlüssel erstellte Signatur an Amazon übergeben. Diese Aufgabe übernimmt die Funktion buildURL.
Continue reading »
Die Amazon Product Advertising API (Teil der Amazon Webservices (AWS)) bietet einen Zugriff auf Amazon Produktdaten. Grundsätzlich gibt es mit SOAP und REST zwei Möglichkeiten, um auf die AWS zuzugreifen. Für die Amazon Product Advertising API wird da
Zum 15.08.2009 ändert sich das Authentifizierungsverfahren. Grund genug um den geänderten Zugriff in einem kleinen Beispiel einmal genauer zu betrachten.
Reichte früher ein API Key, sind jetzt ein öffentlicher und ein privater Zugangsschlüssel notwendig, die man während der Registrierung erstellt. Für SOAP Anfragen ist alternativ auch die Authentifizierung über X.509 Zertifikate möglich. Eine Übersicht über die s.g. "Request Identifiers" gibt es hier.
Im Beispiel soll die Klasse AmazonService die Anfrage an die Amazon Product Advertising API übernehmen. Betrachtet wird nur der Fall, wenn alles gut geht. Im produktiven Einsatz muss natürlich noch das Fehlerhandling hinzugefügt werden.
Die bei der Registrierung erstellten Zugangsschlüssel werden in der Klasse als Konstanten hinterlegt. Die Variable xml benötigen wir für die Antwort von Amazon.
class AmazonService {
const APIKEY='< Euer öffentlicher Schlüssel >';
const PRIVATE_KEY='< Euer privater Schlüssel >';
const ASSOCIATE_TAG='< Eure Associates Tracking ID >';
private $xml;
Das wichtigste für die Anfrage ist der Aufbau der URL. In Ihr werden die Parameter der Anfrage und die mit dem privaten Zugangsschlüssel erstellte Signatur an Amazon übergeben. Diese Aufgabe übernimmt die Funktion buildURL.
private function buildURL($params
,$host='ecs.amazonaws.de',$path='/onca/xml') {
$head = "GET\n$host\n$path\n";
// filtern von Leerzeichen und
// hinzufügen des Zeitstempels und der Associates Tracking ID
// zu den Parametern
$params = array_filter($params
, create_function('$x', 'return $x;'));
$params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
$params['AssociateTag'] = self::ASSOCIATE_TAG;
ksort($params);
$body = implode('&'
,array_map(create_function('$x,$y', 'return "$x=".urlencode($y);')
,array_keys($params), $params));
// erstellen der Signatur mit dem privaten Zugangsschlüssel
$sig = urlencode(base64_encode(hash_hmac('sha256'
,$head.$body,self::PRIVATE_KEY,true)));
return "http://$host$path?$body&Signature=$sig";
}
So vorbereitet können wir uns nun daran machen Daten für ein Buch bei Amazon abzufragen. Der dafür notwendige Code wird in der Funktion getBookByIsdn( $isbn ) gekapselt. Zum Speichern der Abfrageergebnisse wird die Klasse Book benutzt, die ich an dieser Stelle nicht weiter betrachte, da sie nur Methoden zum Abfragen und Setzen von Variablen (getter und setter) beinhaltet. Ein assoziatives Array würde es an dieser Stelle genauso tun.
function getBookByIsdn( $isbn ) {
$ch = curl_init();
// Die URL des AWS-Aufrufes zusammenstellen
$params=array("Service"=>"AWSECommerceService"
,"AWSAccessKeyId"=>self::APIKEY
,"Operation"=>"ItemLookup"
,"IdType"=>"ISBN"
,"ItemId"=>$isbn
,"ResponseGroup"=>"Medium"
,"SearchIndex"=>"Books");
$url=$this->buildURL($params);
// Daten holen
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$result = curl_exec( $ch );
curl_close( $ch );
// XML auslesen
$xml=simplexml_load_string( $result );
$this->xml=$xml;
preg_match('/\d+/'
,$xml->Items->Item->ItemAttributes->PublicationDate,$treffer);
$jahr=$treffer[0];
// abspeichern und Aufbereitung des Ergebnisses
$book=new Book();
$book->setBarcode(utf8_decode(
$xml->Items->Item->ItemAttributes->EAN));
$book->setAuthor(utf8_decode(
$xml->Items->Item->ItemAttributes->Author));
$book->setJahr($jahr);
$book->setVerlag(utf8_decode(
$xml->Items->Item->ItemAttributes->Publisher));
$book->setTitel(utf8_decode(
$xml->Items->Item->ItemAttributes->Title));
$book->setInhalt(utf8_decode(
$xml->Items->Item->EditorialReviews->EditorialReview->Content));
$book->setBildUrl($xml->Items->Item->MediumImage->URL);
return $book;
}
Nachdem Erstellen der URL für die Anfrage (Zeile 13) und deren Aufruf mittels curl_exec (Zeile 20), wird die XML Antwort in Zeile 24 geparst und danach in einem Objekt der Klasse Book abgespeichert.
Bleibt nur noch der Aufruf und die Ausgabe.
Nr.
Cover
Titel
Author (Jahr)
Inhalt
Verlag
geschrieben von gklinkmann
\\ tags: php, tutorial, web2.0, XML
May 29

Templates für WordPress, gibt es wie Sand am Mehr. Wer sein eigenes bauen möchte, beginnt meist nicht auf der grünen Wiese, sondern passt ein vorhandenes Template an die eigenen Wünsche an. Die dafür notwendigen Funktionen Funktionen stellt WordPress bereit.
Ist man auf der Suche nach einer bestimmten Funktion, kann man in die Funktioinsreferenz schauen oder bei wpseek.com einfach danach suchen.
Eigentlich als Firefox Plugin geplant, bietet wpseek :
- Auto-Suggest, das seinen Inhalt aus dem gesamten Funktionsnamen bezieht.
- Verwandte Codex Dokumentation
- Codeauszüge
- Top Google Suchergebnisse
- Nutzerduskussionen
- Nutzerkommentare
- AJAX-basierte Ergebnisseite; kein Reload bei jeder Operation nötig
Wpseek.com kann auch als Suchmaschine für den Browser eingetragen werden.
So ist man gut gewappnet für die Anpassung des eigenen WordPress basierten Blogs.
Templates für Wordpress, gibt es wie Sand am Mehr. Wer sein eigenes bauen möchte, beginnt meist nicht auf der grünen Wiese, sondern passt ein vorhandenes Template an die eigenen Wünsche an. Die dafür notwendigen Funktionen Funktionen stellt Wordpress bereit.
Ist man auf der Suche nach einer bestimmten Funktion, kann man in die Funktioinsreferenz schauen oder bei wpseek.com einfach danach suchen.
Eigentlich als Firefox Plugin geplant, bietet wpseek :
Auto-Suggest, das seinen Inhalt aus dem gesamten Funktionsnamen bezieht.
Verwandte Codex Dokumentation
Codeauszüge
Top Google Suchergebnisse
Nutzerduskussionen
Nutzerkommentare
AJAX-basierte Ergebnisseite; kein Reload bei jeder Operation nötig
Wpseek.com kann auch als Suchmaschine für den Browser eingetragen werden.
So ist man gut gewappnet für die Anpassung des eigenen Wordpress basierten Blogs.
geschrieben von gklinkmann
\\ tags: blog, Browser, php, wordpress
Dec 10
Jeder Entwickler, der eine tolle Webapplikation gesehen hat, fragt sich, welche Frameworks dabei eingesetzt wurden. Diese Frage beantwortet recht gut der neue Internet Dienst builtwith. Nach Eingabe der URL werden einem zu den Punkten:
- Analytics and Tracking
- Javascript Libraries
- Widgets
- Blog Publishing
- Frameworks
- Aggregation Functionality und
- Document Information
die verwendeten Komponenten und dazu auch gleich noch die Alternativen angezeigt. Und dass alles ohne eine Zeile Code zu sehen – Unglaublich.
Auf der Startseite werden zusätzlich die meist gesuchten Seiten und die Populärsten Technologien (momentan Apache, PHP und Google Analytics) angezeigt. BuiltWith selbst scheint mit ASP programmiert worden zu sein und macht ausreichend Gebrauch von Yahoo’s User Interface und Delivery Network.

Jeder Entwickler, der eine tolle Webapplikation gesehen hat, fragt sich, welche Frameworks dabei eingesetzt wurden. Diese Frage beantwortet recht gut der neue Internet Dienst builtwith. Nach Eingabe der URL werden einem zu den Punkten:
Analytics and Tracking
Javascript Libraries
Widgets
Blog Publishing
Frameworks
Aggregation Functionality und
Document Information
die verwendeten Komponenten und dazu auch gleich noch die Alternativen angezeigt. Und dass alles ohne eine Zeile Code zu sehen - Unglaublich.
Auf der Startseite werden zusätzlich die meist gesuchten Seiten und die Populärsten Technologien (momentan Apache, PHP und Google Analytics) angezeigt. BuiltWith selbst scheint mit ASP programmiert worden zu sein und macht ausreichend Gebrauch von Yahoo's User Interface und Delivery Network.
geschrieben von gklinkmann
\\ tags: css, frameworks, Java, php, wordpress