Inhaltsverzeichnis
Installation
Im Prinzip ist das Archiv einfach irgendwo innerhalb des DOCUMENT_ROOT zu entpacken - und man kann sofort mit der Anwendung beginnen (zumindest was die enthaltenen Demo-Seiten betrifft). Dann wäre zwar der Cache abgeschaltet, und die Bilder-Funktionalität wäre nicht gegeben - aber alles andere wäre sofort einsatzbereit. Doch spätestens wenn die API in der eigenen Applikation zum Einsatz kommen soll, ist ein wenig mehr "Finetuning" erforderlich.
Welche Installationsmethode wird empfohlen?
Das hängt ganz davon ab, auf welchem System IMDBPHP zum Einsatz kommen soll. Handelt es sich dabei um eine Linux-Distribution, die RPM- oder Debian-Pakete unterstützt (am besten noch mit APT oder YUM), sollte die Installation auch über diese Pakete erfolgen (mehr Details finden sich auf den Repository-Seiten). Handelt es sich um eine Distribution, die dies nicht unterstützt, lässt sich auch nach dem Entpacken des Archives eine Installation mit make install durchführen.
Diese drei Methoden haben einige Vorteile gegenüber anderen Alternativen:
- die Dateien landen automatisch am richtigen Platz
- der Cache und Bilderspeicher werden eingerichtet
- eine De-Installation ist ebenfalls automatisch möglich
Hinzu kommt im Falle der Installation über das Repository, dass auch Updates automatisch über das Paketsystem durchgeführt werden.
Kann keine dieser Varianten zum Einsatz kommen (etwa weil man Windows einsetzt), bleibt noch die manuelle Installation. Details folgen auf dieser Seite:
Welche Dateien werden benötigt?
Die API besteht aus den *.class.php Dateien, die gemeinsam im gleichen Verzeichnis installiert werden müssen:
- mdb_*.class.php: Basis-Klassen, auf denen alles aufbaut
- imdb*.class.php: Klassen für die IMDB-Sites
- pilot*.class.php: Klassen für die Moviepilot-Sites
Kurz, alle *.class.php Dateien sollten vorhanden sein. Bei den anderen Dateien handelt es sich entweder um Dokumentation oder Demo-Dateien, die von der API selbst nicht genutzt werden.
Wo sollten diese Dateien installiert werden?
Das hängt wiederum von der Nutzung ab. Soll die API fest in der eigenen Applikation verankert werden, werden sie wahrscheinlich innerhalb von deren Verzeichnis installiert. Andererseits bietet es sich auch hier an - insbesondere, wenn über das Paketsystem installiert wurde - das außerhalb der eigenen Applikations-Verzeichnisses befindliche Installationsverzeichnis in den PHP include_path aufzunehmen (entweder über die php.ini, oder z.B. die Apache-Anweisung php_value include_path). Somit kann man IMDBPHP einfach als Abhängigkeit angeben, und profitiert wiederum automatisch von etwaigen Updates. Seit Version 0.9.5 werden die *.class.php Dateien bei automatischer Installation (Paketmanagement bzw. make install) im Verzeichnis /usr/share/php abgelegt, welches bei den meisten Distributionen bereits im include_path der php.ini eingetragen ist (da PEAR hier ebenfalls installiert wird).
Was muss konfiguriert werden?
Prinzipiell sollte IMDBPHP "Out-of-the-Box" funktionieren. Dennoch mag das Bedürfnis bestehen, einige Dinge anzupassen. Daher soll die Konfiguration an dieser Stelle auch besprochen werden, die - wie zu erwarten - in der Datei imdb_config.class.php stattfindet.
Alle Konfigurations-Optionen in der imdb_config.class.php sind mit dem Präfix $this-> versehen, da es sich hier um eine PHP-Klasse handelt. Der Übersichtlichkeit halber verzichten wir im Folgenden auf diesen Präfix, was die Angaben auch leichter lesbar macht:
Allgemeine Optionen
| Option | Beschreibung |
|---|---|
| imdbsite | Die bevorzugte IMDB-Site. Die Voreinstellung ist hier akas.imdb.com, da diese auch alle sprachspezifischen Filmnamen und AKAs kennt. Diese Option kann natürlich auch zur Laufzeit geändert werden, wenn ein Serverwechsel stattfinden soll. |
| debug | Sollen Debug-Meldungen angezeigt werden (1) oder nicht (0)? |
Cache Optionen
| Option | Beschreibung |
|---|---|
| cachedir | In welchem Verzeichnis sollen gecachte Informationen gespeichert werden (sofern der Cache aktiviert ist). Es kann hier ein relativer oder auch absoluter Pfad angegeben werden. |
| usecache | Wenn eine angeforderte Seite im Cache verfügbar ist, sollen die gecachten Information dann genutzt (TRUE), oder soll die Seite erneut von Original-Server angefordert werden (FALSE)? |
| storecache | Wenn eine Seite von Original-Server bezogen wurde, soll sie für die spätere Nutzung im Cache abgelegt werden? Dies setzt voraus, dass der Webserver auf das Cache-Verzeichnis auch Schreibzugriff hat. |
| usezip | Soll der Cache komprimiert werden? |
| converttozip | Sofern bei einem Zugriff auf den Cache unkomprimierte Information entdeckt wird, soll sie komprimiert werden? |
| cache_expire | Für wie viele Sekunden ist eine gecachte Seite gültig? Ältere Informationen werden bei "Entdeckung" (d.h. beim nächsten Cache-Zugriff) automatisch gelöscht. |
Image Optionen
| Option | Beschreibung |
|---|---|
| photodir | Das Verzeichnis, in dem Bilddateien abgelegt werden sollen. Dies sollte sich innerhalb des <code>DOCUMENT_ROOT</code> befinden, sofern die Bilder direkt auf einer Webseite zur Anzeige kommen sollen - und natürlich benötigt der Webserver auch auf dieses Verzeichnis Schreibberechtigung. |
| photoroot | Die URL, die dem photodir entspricht - bei Angabe eines absoluten Pfades muss selbiger auf dem DOCUMENT_ROOT aufbauen: Ist das DOCUMENT_ROOT z.B. /var/www, und die Bilddateien werden in /var/www/photos gespeichert, wäre die zugehörige absolute URL /photos/. |
Moviepilot Optionen
| Option | Beschreibung |
|---|---|
| pilotsite | Welche Site für die Pilot-Klassen verwendet werden soll. Die Site entscheidet über die Sprachfassung der bezogenen Inhalte. Analog zur imdbsite. |
| pilot_apikey | Der Zugriff auf die Moviepilot-API ist von einem Api-Key abhängig. Eingetragen ist in der Default-Konfiguration lediglich ein "Fake" - den richtigen Key gibt es gratis, wenn man sich per Mail an api AT moviepilot DOT de wendet. |
| pilot_imdbfill | Der Umfang der bei Moviepilot verfügbaren Informationen zu einem Film entspricht (noch) nicht dem der IMDB - Lücken lassen sich jedoch bei Bedarf automatisch füllen, wenn man hier den Default von NO_ACCESS auf eine der anderen Varianten ändert. Funktioniert aber nur im Zusammenhang mit der nächsten Option: |
| PILOT_IMDBFALLBACK | Will man den gerade beschriebenen automatischen Fallback nutzen, muss diese Konstante vor dem Einbinden der Klassen auf TRUE gesetzt werden. Dies erreicht man durch das Statement define('PILOT_IMDBFALLBACK',TRUE);. Die Voreinstellungen sind, wie bereits erwähnt, dass die IMDB hier gar nicht genutzt wird: Auf diese Weise ist man bei Verwendung der Daten vor Copyright-Fallen sicher, da alle Inhalte bei Moviepilot der Creative Commons Lizenz unterliegen. |
Tweaking Optionen
| Option | Beschreibung |
|---|---|
| maxresults | Hiermit lässt sich die Ergebnismenge für eine Filmsuche begrenzen. Ein Wert von "0" bedeutet "keine Einschränkung" - jeder andere Wert (natürlich größer als 0) gibt die Anzahl maximal erwünschter Treffer an. |
| searchvariant | Wer mit den Suchergebnissen nicht zufrieden ist, kann mit diesen Such-Varianten spielen - sie setzen jeweils unterschiedliche Optionen für die Filmsuche. Verfügbare Varianten sind sevec und moonface, der Default ist izzy. Gilt nur für die IMDB-Klassen. |
Alternative Konfigurationsdatei
Ab Version 1.0.8 (bzw. Revision r170) lässt sich auch eine alternative Konfigurationsdatei verwenden - um z.B. verschiedene Projekt-bezogene Konfigurationen verwenden zu können. Diese sollte natürlich den gleichen Aufbau haben wie die mitgelieferte, und wird verwendet, wenn man vor dem Einbinden der Datei imdb_base.class.php deren Pfad mit der Konstante IMDBPHP_CONFIG definiert - z.B. so:
<?php define('IMDBPHP_CONFIG','/var/www/myproject/imdb_config.php'); require_once(imdb_base.class.php); // more code goes here ?>
