PHP - EntwicklerCamp

Werbung
Domino und PHP
EC 2013 Track 2 Session 7
1
Domino und PHP
Worum es heute geht
Überblick über die verschiedenen Methoden
Installation
Allerlei Beispiele und Ideen
Worum es nicht geht
LotusScript, PHP (Sie sollten die Grundidee
beherrschen)
2
Domino und PHP
Los geht's! - Einführung
Über WieLis.com
Mit wem haben Sie es zu tun?
Wie installieren?
Praktische Anwendung
Ansichten auslesen
Dokumente lesen und speichern
PDF-Generierung
3
Los geht’s! – Einführung
Über WieLis.com / die Notes-Werkstatt
Gegründet 2002
5 Mitarbeiter
Domino-Entwicklung
Workflows
Schnittstellen
Intranetlösungen
Web-Entwicklung
Intra-/Extranets
Shop/Community/Schnittstellenlösungen
Workflow /
Support/Operations
Serverbetrieb und Hosting (Windows, Linux, Domino)
Netzwerksupport
Analyse und Konzeption
4
Los geht's! - Einführung
Ihre Referentin - Mit wem haben Sie es zu tun?
Anne Wiesmann, [email protected]
Studierte Diplom-Ingenieurin (FH)
Technische Informatik
IT-Erfahrung seit 1995
Gründerin und Mitinhaberin von
WieLis.com seit 2002
5
Wie installieren?
PHP direkt auf dem Domino Server (CGI)
Funktioniert prima, spart Ressourcen
Keine direkte Kommunikation möglich
PHP auf eigenem Apache
Vor allem dann zu empfehlen, wenn der Apache
ohnehin vorhanden ist oder MySQL
Datenbanken genutzt werden sollen
Auch keine direkte Kommunikation möglich
6
Wie installieren? (2)
PHP über COM API
Alles möglich (ähnlich Lotusscript)
Notes-Client muss auf dem Webserver installiert
sein
Windows-Betriebssystem erforderlich
PHP über C API
Klappt gut, erfordert aber C-Kenntnisse und tiefe
Kenntnisse über die Schnittstellen des Domino
Servers
PHP über Notes SQL
Mit neueren Betriebssystemen und NotesVersionen problematisch
Windows-Betriebssystem erforderlich
7
Zugriff über C API
Gut machbar, greift aber tief ins System ein
Stabilitätsrelevant
Erfordert tiefe Systemkenntnisse
Eigene dll muss hergestellt werden
Domino Server Abstürze möglich
8
Zugriff über Notes SQL
Ja, aber
Funktioniert nicht sauber auf 64 Bit Systemen
Instabil
Nicht sonderlich performant
Windows-Betriebssystem erforderlich
9
Fazit
Direkter Zugriff ist schick, aber schwierig zu
machen
Indirekter Zugriff ist schwieriger, dafür aber
sicher und ausreichend performant
Im folgenden werden die Möglichkeiten des
indirekten Zugriffs gezeigt
10
Rein ins Praktische
Genug gelabert ;-)
11
PHP CGI installieren
Installation ist leicht:
PHP installieren (Standard Download von PHP
Website)
12
PHP CGI installieren (2)
Installation ist leicht:
VC++ 2008 Redistributable installieren
php.ini anpassen
Testen
13
PHP CGI installieren (3)
Redirect im Server/Websitedokument
eintragen
14
PHP CGI installieren (4)
Testen, ob alles geklappt hat.
15
PHP über eigenen Apache
Installation nach Anleitung
Kollidierende Ports Domino / Apache beachten
Ggf. Domino Port ändern
Zugriff nur über Webservices / Agenten etc.
möglich
16
PHP über COM API
Apache / PHP wie gewohnt installieren
Notes Client wie gewohnt installieren
Einmalig starten, geeignete User-ID nutzen
Loslegen
17
Webservices
Verfügbar ab Domino 8
Vernünftig nutzbar ab Domino 8.5
18
Ansichten auslesen
Mit Bordmitteln möglich
Vorteil: Geht mit jeder Ansicht ohne weiteren
Programmieraufwand
Nachteil: Es wird immer die ganze Ansicht
übertragen
Langsam 
Hohes Datenvolumen 
Alternative: Über Webservice
Vorteil: Schlank, anpassbar
Beliebige Dokumentauswahl möglich (auch z.B.
Volltextsuche)
Beliebige Feldauswahl möglich
Nachteil: Programmieraufwand nötig
Für jede Auswahl neuer Programmiercode nötig
Alternativ: Parameter übergeben (aber
sicherheitsrelevant)
19
Ansichten auslesen mit Bordmitteln
GetViewEntries liefert View-Inhalt als XML:
20
Ansichten auslesen mit Bordmitteln (2)
Einfaches PHP-Skript zur Anzeige:
So sieht es aus:
21
Ansichten auslesen über Webservice
Beispielanwendung: PLZ-Auswahl
Quelldaten: Notes-Dokumente mit Orten und
Postleitzahlen
Ziel: Suchfunktion für Orte abhängig von Land und
PLZ-Teilstück
22
Ansichten auslesen über Webservice(2)
PHP Frontend
Die Adresse des Domino Webservices
SOAP kompatible Anfragedaten
mit unseren Suchwörtern
Curl Konfiguration
Einlesen in simplexml
Passendes Element aus dem
SOAP Return auslesen
23
Ansichten auslesen über Webservice(3)
Zurückgegebener XML-Code (SOAP Return)
Envelope
Body
24
Ansichten auslesen über Webservice(4)
Lotus Script und wsdl Deklaration
Liste von Orten
Einzelner Ort
Einzelner Ort
Array von Orten
Liste von Orten
25
Ansichten auslesen über Webservice(5)
Abfrageklasse
Gemäß WSDL
übergebene Parameter
Volltextsuche
Array aus Ort-Elementen
Ort befüllen
Array zurückgeben
26
Dokumente lesen und schreiben
Programmierung nötig
Es existiert kein URL Befehl, der Dokumente
zurückgibt
Webservice kann ganz ähnlich aussehen wie
eben beschrieben
27
Dokument bearbeiten
Daten laden (PHP-Seite)
ID übergeben
Rückgabewerte verarbeiten
28
Dokument bearbeiten
Daten laden (Webservice)
Übergebene ID
Werte zurückgeben
29
Dokumente bearbeiten
Maske
30
Dokumente bearbeiten
Dokument speichern (PHP-Seite)
Rückgabewert anzeigen
31
Dokument bearbeiten
Dokument speichern (Webservice)
Bei neuem Dokument
ID vergeben
32
Dokument bearbeiten
Die „View“
Dokumentliste holen
Durchlaufen und
ausgeben
33
Dokument bearbeiten
Demo-Time...
34
PDFs generien
Mit fPDF ganz einfach
Daten aus Domino
Links im Web, über XPages oder berechnete
Links im Notes-Client
35
PDFs generieren (2)
So geht es:
Fpdf einbinden
Erste Seite
Überschrift
Tabellenzeilen
36
Ein Bild sagt mehr als 1000 Worte
Bildnamen können oft eindeutig ermittelt
werden
URL kann im Webservice berechnet werden
Download des Bildes über standard Domino
Webservice (bei CGI) oder ein spezielles
Handler Skript (beiApache-Installation)
37
Bilder anzeigen (2)
Webservice Backend
Attachment Name
zurückgeben
38
Bilder anzeigen (3)
PHP Frontend
Bild ausgeben
39
Kleine Verschnaufpause
Ihre Fragen?
40
Ausblick / Weiterlesen
Allgemeiner Abriss über die Möglichkeiten
http://www.ibm.com/developerworks/lotus/library/domino-php/
Installationsanleitung für PHP in Domino
http://www-01.ibm.com/support/docview.wss?uid=swg21099845
PHP Download (z.B.)
http://windows.php.net/download/
VC++ 2008 Redistributable
http://www.microsoft.com/download/en/details.aspx?id=5582
Webservices mit Lotus Domino
http://www.ibm.com/developerworks/lotus/library/web-services3/
fpdf
http://www.fpdf.org/
Domino URL Cheat Sheet
http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/
41
Jetzt sind Sie dran...
Vielen Dank für Ihre Aufmerksamkeit!
Ich freue mich auf Ihre Fragen.
Anne Wiesmann
Technische Leitung
04153 / 55 9 41 – 21
[email protected]
42
Herunterladen