Home
Over System iMagazineAS/400 linksSearchContact
Vorige
Remain

Is PHP voor i ook wat voor u?

Meer dan 22 miljoen domeinen maken gebruik van PHP, oftewel ongeveer 10 procent van alle websites. PHP staat daarmee vijfde op de ranglijst van talen die bedrijven het beste kunnen gebruiken, achter Java, C, C++ en Visual Basic. Maar van al deze talen is PHP het snelst te leren en het snelst om websites mee te ontwikkelen. Voor PHP bestaat een actieve gemeenschap van ontwikkelaars die beter beschikbaar en minder duur zijn dan Java- en .NET-ontwikkelaars. En nu is PHP beschikbaar voor System i. Maar is PHP ook wat voor u?

door Don Denoncourt

PHP: een nieuwe speler in het webontwikkelingsspel van System i
Wat als we PHP vergelijken met Java en .NET, twee concurrerende talen op het vlak van webontwikkeling? Om een goed beeld te krijgen van de concurrentie moet u eerst wat meer weten over de achtergrond van beide. Java werd ontwikkeld als een krachtige objectgeoriënteerde taal naar het model van C++. Toen het internet opkwam, werd Java aangepast met een krachtige set complexe API’s, bekend als J2EE. Microsoft .NET werd ontwikkeld als antwoord op J2EE, en deze taal beschikt dus ook over een ingewikkelde set API’s. PHP daarentegen werd ontworpen als een HTML-scripttaal, waarmee webontwikkelaars snel dynamische webpagina’s kunnen maken. Hoewel PHP 5 tegenwoordig objectgeoriënteerde toepassingen biedt, houdt PHP zich bij zijn oorspronkelijke opzet, namelijk een snelle ontwikkeling van webapplicaties.

Hoe verhoudt PHP zich nu ten opzichte van Java? Dat hangt helemaal af van de toepassing. Als het een bedrijfsapplicatie betreft die moet worden geïntegreerd met verschillende toepassingen, talen en databases, dan valt PHP in het niet bij Java of .NET. Maar als de toepassing, zoals de meeste webapplicaties, weinig meer vereist dan een dynamische website, dan is PHP de duidelijke winnaar. Ik zie PHP als de S/36 voor het internet. Het is eenvoudig, maar snel om mee te ontwikkelen. Hier een overzichtje van dingen die men makkelijker in PHP doet dan in Java: PDF’s maken, dynamische afbeeldingen genereren, webservices draaien, en basistaken op het gebied van webontwikkeling uitvoeren. Bovendien is er een breed scala aan Open Source-software beschikbaar voor PHP, bijvoorbeeld wiki’s, contentmanagementsystemen en databasebeheerprogramma’s.

De PHP-omgeving
PHP draait als CGI-plug-in voor Apache. De PHP CGI-plug-in wordt geconfigureerd in het bestand httpd.conf voor Apache met de volgende instructies:

De instructie LoadModule laadt de Zend Core dynamisch in voor de gedeelde objectmodule i5/OS libphp5, zodat de PHP-engine beschikbaar is voor de Apache-runtime. De instructie AddType vertelt Apache dat alle HTTP-verzoeken met het achtervoegsel .php moeten worden verwerkt door Zend Core. Op Windows-systemen specificeert LoadModule een DLL. UNIX-systemen daarentegen maken gebruik van SO-bestanden (Shared Object), wat een belangrijk punt naar voren brengt: PHP draait in de PASE van System i.

PHP voor i is gratis verkrijgbaar bij Zend.
U kunt het downloaden van Zend, maar het heeft desalniettemin een IBM-productnummer (5639-ZC1 Zend Core for i5/OS). Er zijn ook nog twee andere IBM-productnummers voor Zend: 5639-ZS1 Zend Studio Professional for i5/OS en 5771-ZS1 Zend Studio Professional for i5/OS Support. Zend Studio is een pc-gebaseerde IDE, en is eveneens gratis verkrijgbaar voor System i (afbeelding 1 toont de Zend Studio-omgeving). Maar hoe denkt Zend dan geld te verdienen? Men rekent op inkomsten uit de ondersteuning van licenties. Zend heeft een succesvolle onderneming opgezet door op commerciële basis ondersteuning te bieden voor PHP, en breidt nu zijn klantenbestand uit met System i.

De PHP-taal
PHP is een op scripts gebaseerde taal. Dat betekent dat er niets hoeft te worden gecompileerd. U brengt wijzigingen aan in een bronbestand en kunt de wijzigingen onmiddellijk bekijken in een browser. PHP is ontwikkeld om naadloos samen te werken met HTML. PHP-code wordt in HTML afgebakend door <?php en ?>.

PHP-variabelen worden aangeduid met dollartekens. PHP-variabelen worden zwak getypeerd (dat wil zeggen: een variabele kan gegevens van een willekeurig type bevatten). PHP-variabelen kunnen gegevens van de volgende typen bevatten: integer, float, string, array, object, null, Boolean en resource (bijvoorbeeld een SQL-verbinding). De stringverwerking van PHP is bijzonder krachtig en biedt ondersteuning voor Perl-achtige regular expressions. Vreemd genoeg is de stringsamenvoegingsoperator van PHP een punt.

De constructie-elementen van de sequentiële stuurcommando’s van PHP lijken veel op die van Java, met de opvallende vermelding van de foreach-constructie. PHP 5 heeft tevens Java-achtige uitzonderingen toegevoegd compleet met try/catch-blokken. Maar waarschijnlijk de belangrijkste functionaliteit die is toegevoegd door PHP 5 is de mogelijkheid van objectgeoriënteerd programmeren (zij het zonder namespaces of packages).

Het laatste aspect van de PHP-taal dat ik in dit artikel wil aanstippen betreft arrays. Er bestaan twee typen PHP-arrays: geïndexeerde arrays en associatieve arrays. Geïndexeerde arrays zijn wat u verwacht: elementen worden opgehaald met gehele getalswaarden. Associatieve arrays zijn zoals lookup-tabellen in RPG of hash maps in Java. Elementen van een associatieve array worden opgehaald met een sleutel.


De Zend Studio-ontwikkelomgeving

Opties voor gegevenstoegang
PHP ondersteunde oorspronkelijk alleen de Open Source relationele database MySQL. MySQL vertegenwoordigt één van de vier letters in het acroniem LAMP: Linux, Apache, MySQL en PHP. Toen de Open Source-gemeenschap PHP-extensies voor andere databases en toegangsprotocollen ging ontwikkelen, deed zich een probleem voor: deze extensies volgden geen standaard, in tegenstelling tot hetgeen Java deed met JDBC. Dus één van de eerste beslissingen die u moet nemen met betrekking tot PHP-ontwikkeling is: “Welke database-API moet ik gebruiken?” Er bestaan meerdere opties, waaronder MySQL, Unified ODBC, PDO ODBC, Pear DB, IBM DB2 Connect, en i5/OS-specifieke API’s die met Zend Core worden gebundeld voor i5/OS.

Voordat ik een aanbeveling doe voor een PHP-database-API, wil ik beschrijven hoe een standaard ontwikkelomgeving er volgens mij zou moeten uitzien. U moet in de gelegenheid zijn om uw PHP-toepassingen lokaal op uw pc te ontwikkelen en te testen. Idealiter heeft u een kopie van uw productiedatabase op uw pc staan. U test lokaal, gaat verder in een testomgeving op de i5 en gaat vervolgens over tot productie.

IBM’s DB2 voor Windows is betrekkelijk eenvoudig te configureren, en een ontwikkelversie staat op de cd’s van WebSphere Development Studio client (WDSc). U zou dus DB2 Connect als standaard kunnen gebruiken voor uw API voor PHP-gegevenstoegang. Maar in bepaalde omstandigheden is het gebruik van een lokale kopie van uw DB2 voor i5/OS geen optie. De oplossing is om een exemplaar van DB2 Connect voor iSeries (www-306.ibm.com/software/data/db2/db2connect/edition-uei.html) aan te schaffen. Dit kost ongeveer 100 dollar per licentie.

Mijn beslissing zou zijn om geen beslissing te nemen. Het is gebruikelijk om een dun laagje API-code voor gegevenstoegang aan te maken dat de geselecteerde implementatie verbergt. Dat doe ik zelf al jaren met Java. Vervolgens kan de low-level API-implementatie voor gegevenstoegang gemakkelijk worden toegevoegd of vervangen. Dit ontwerppatroon staat bekend als Data Access Objects (DAO). Met DAO is het bijvoorbeeld eenvoudig om uw toepassing zo te configureren dat deze naadloos verbinding maakt met PostgreSQL onder Linux, met MySQL onder Windows, en vervolgens met IBM_DB2 op i5/OS.

Ontwikkelomgevingen
Mijn drie favoriete IDE’s voor PHP zijn Kladblok, Zend Studio en PHPeclipse. OK, het is misschien wat te veel eer om Kladblok aan te duiden als een geïntegreerde ontwikkelomgeving voor PHP, maar teksteditors worden niettemin regelmatig gebruikt voor PHP-ontwikkeling. Omdat PHP een op scripts gebaseerde taal is, hoeft er niets te worden gecompileerd, en de mogelijkheid om ad hoc wijzigingen door te voeren in een webpagina zonder dat men daarvoor eerst een IDE moet opstarten, is gewoon handig.

Toepassingen van productiekwaliteit vereisen echter softwareconfiguratiebeheer, en wijzigingen dienen derhalve te worden doorgevoerd via voorzieningen die zijn geïntegreerd in ontwikkelomgevingen, bijvoorbeeld WDSc of Zend Studio. Zend Studio Professional for i5/OS is kosteloos verkrijgbaar voor System i-klanten. Zend Studio is een uitstekende IDE voor PHP, en de installatie ervan neemt weinig tijd in beslag. De foutopsporingsmodule van Zend Studio is geweldig en de codeaanvulling is uitzonderlijk. Bovendien biedt dit programma de mogelijkheid om webservices te genereren. Het grootste bezwaar dat ik tegen Zend Studio heb, is dat ik te lui ben om me vertrouwd te maken met een nieuwe IDE. En waarom zou ik? Ik gebruik WDSc voor het ontwikkelen van RPG, Cobol, CLP, Perl, C, C++, Java, DDS, SQL, HTML, JavaScript en JSP. Waarom zou ik WDSc niet kunnen gebruiken voor PHP-ontwikkeling?

U kunt PHP ontwikkelen met WDSc door de Open Source plug-in PHPeclipse (sourceforge.net/projects/phpeclipse) te installeren. Hoewel PHPeclipse eenvoudig te installeren is, is deze plug-in niet gebundeld met een PHP-runtime. Die moet u zelf installeren (php.net/downloads.php), evenals Apache (httpd.apache.org). Ik raad u aan om Apache 2.0 te installeren, omdat deze versie goed aansluit op de System i-omgeving. Een andere opmerking met betrekking tot PHPeclipse is dat deze plug-in vanaf versie 1.1.5 Eclipse 3.1 vereist, en omdat WDSc 6.0 op Eclipse 3.0 draait, zult u PHPeclipse 1.1.4 moeten installeren.

PHP4i
PHP is de S/36 voor het internet. Het is eenvoudig, maar snel om mee te ontwikkelen. PHP is voor RPG-programmeurs de gemakkelijkste webtaal om te leren. En voor PHP bestaat een actieve gemeenschap van ontwikkelaars die beter beschikbaar en minder duur zijn dan Java- en .NET-ontwikkelaars. PHP heeft zich ontwikkeld en voorziet nu ook in functies voor objectgeoriënteerd programmeren. Die functies zullen leiden tot de productie van frameworks die vergelijkbaar zijn met die van Java. Maar hoe geavanceerder uw PHP-toepassingen worden, hoe zinvoller het wordt om Java te gebruiken.

Don Denoncourt is technisch redacteur voor System iNEWS.

 

An unknown error occurred:
DBError
../../../../db/reactie.db
Database file could not be found or opened

© Hilarius Media