PHP DOM, SOAP, Web Services - Luento 17
Tutkitaan, miten PHP:llä voidaan hyödyntää ulkopuolisia verkkopalveluita.
Luentotaltiointi
- sovellukset17.wmv 58M
- sovellukset17.mp3 16M
- sovellukset17_xvid.avi 123M
PHP DOM
DOM-rajapinta PHP:ssa toimii hyvin samaan tapaan kuin Javascriptissäkin.
Tarkastellaan esimerkkien kautta, miten DOM:ia voidaan hyödyntää:
- Taulukon luominen DOMDocumentin avulla
- domcreate.php
- Viikkotehtävä 6:n elokuva_2007.sql
- XML-datan lataaminen DOMDocument->load-metodin avulla.
- Elementtien siirtäminen DOMDocumentista toiseen ja epävalidin dokumentin käsittely
- RSS-feedin tekeminen ATK-keskuksen ajankohtaista tiedoista
Curl
CURL (Client URL) on PHP:hen sisäänrakennettu kirjasto, jonka avulla voidaan luoda kaikenlaisia HTTP-pyyntöjä. CURL:in avulla voidaan luoda siis eräänlainen WWW-selain "sivun sisälle".
Esim. luodaan kaavio ulkopuolisesta palvelusta saadusta XML-datasta. Kaaviota ei ole kuitenkaan järkevä luoda jokaisella haulla uudestaan mikäli alkuperäinen XML-data ei ole muuttunut. Käytetään siis välimuistissa olevaa kaaviota.
- curl.php
- weather.xml - kuvitteellisessa palvelussa oleva säätieto, joka muuttuu vain aika-ajoin
- kaavio.png - tiedosto "välimuistissa"
- Libchart-kirjasto
Kaavion voisi upottaa siis XHTML- tai PHP-dokumenttiin img-elementillä:
<p><img src="curl.php" alt="Säätilakaavio" /></p>
SOAP

- SOAP (Simple Object Access Protocol) on XML-pohjainen kommunikointiprotokolla, jonka avulla voidaan toteuttaa etäkutsuja ohjelmistoriippumattomasti.
- WSDL (Web Service Definition Language) on XML-sovellus, jonka tarkoituksena on kuvata miten palvelua käytetään. Erityisesti WDSL:n avulla voidaan kuvata mitä proseduureja SOAP:lla voidaan kutsua ja millaisia datatyyppejä käytetään.
- SOAP-viestit ja WSDL-kuvaukset generoidaan usein ohjelmakirjaston toimesta.
Tarkastellaan esimerkkien kautta SOAP-palvelun käyttöä:
- SOAPServer ja SOAPClient PHP:lla
- soapserver.php
- summaus.wsdl - palvelun ja sen tarjoaman rajapinnan kuvaus
- soapclient.php
- SOAP Firefoxilla
- soapjsclient.xhtml
- soap.js
- SOAP:ia voi siis kutsua toisesta ohjelmointikielestä!
- Live Search SOAP API
- soaplive.php
- Tässä SOAP-asiakas on PHP:lla tehty, palvelu on tehty ASP.NET tms. tekniikalla
AJAX API
Myös AJAX:in päälle voidaan rakentaa "etäkutsupalveluja". Esim. Google Maps API:


Käyttäjien kommentit