1. Inleiding tot de taal PHP 7
De PDF van dit document is beschikbaar |HIER|.
De voorbeelden in dit document zijn beschikbaar |HIER|.
Dit document maakt deel uit van een reeks van vier artikelen:
- [Inleiding tot de programmeertaal PHP7 aan de hand van voorbeelden (2019)]. Dit is het huidige document;
- [Inleiding tot de taal ECMASCRIPT6 aan de hand van voorbeelden (2019)];
- [Inleiding tot het VUE.JS-framework aan de hand van voorbeelden (2019)];
- [Inleiding tot het NUXT.JS-framework aan de hand van voorbeelden (2019)];
Dit zijn allemaal documenten voor beginners. De artikelen volgen elkaar logisch op, maar zijn los van elkaar te lezen:
- het document [1] introduceert de taal PHP 7. De lezer die alleen geïnteresseerd is in de taal PHP en niet in de JavaScript-taal van de volgende artikelen, kan hier stoppen;
- de documenten [2-4] zijn bedoeld om een JavaScript-client te bouwen voor de belastingberekeningsserver die in document [1] is ontwikkeld;
- voor de JavaScript-frameworks [vue.js] en [nuxt.js] uit de artikelen 3 en 4 is kennis van de JavaScript-taal uit de laatste versies van ECMASCRIPT vereist, namelijk die van versie 6. Het document [2] is daarom bedoeld voor degenen die deze versie van JavaScript niet kennen. Het verwijst naar de belastingberekeningsserver die in het document [1] is gebouwd. De lezer van [2] zal dan af en toe moeten teruggrijpen op het document [1];
- zodra men ECMASCRIPT onder de knie heeft, kan men het framework VUE.JS gaan verkennen, waarmee JavaScript-clients kunnen worden gebouwd die in een browser in de modus SPA (Single Page Application) worden uitgevoerd. Dit is het document [3]. Het verwijst zowel naar de belastingberekeningsserver die in het document [1] is gebouwd als naar de code van de zelfstandige JavaScript-client die in [2] is gebouwd. Wie [3] doorneemt, zal dan af en toe moeten teruggrijpen op de documenten [1] en [2];
- zodra men VUE.JS onder de knie heeft, kan men het framework NUXT.JS gaan gebruiken, waarmee JavaScript-clients kunnen worden gebouwd die in een browser in de modus SSR (Server Side Rendered) worden uitgevoerd. Het verwijst zowel naar de server voor belastingberekening die is gebouwd in het document [1], de code van de zelfstandige JavaScript-client die is gebouwd in [2], en de applicatie [vue.js] die is ontwikkeld in het document [3]. De lezer van [4] zal dan af en toe moeten teruggrijpen op de documenten [1], [2] en [3];
Dit document bevat een lijst met PHP 7-consolescripts op verschillende gebieden (taalstructuren, toegang tot bestanden, databases en het internet). Webprogrammering wordt behandeld aan de hand van webservices. In dit document wordt onder een webservice verstaan elke webtoepassing die platte tekst genereert. Het gaat hier om gegevensservers en niet om webservers, die een combinatie zijn van HTML, CSS en JavaScript. Er worden klassieke webconcepten behandeld (het HTTP-protocol, jSON- of XML-responsen, sessiebeheer, authenticatie) die ook in klassieke webprogrammering worden gebruikt.
Tegenwoordig is het gebruikelijk om webapplicaties in client/server-modus te bouwen:

- in [1] geeft de webbrowser webpagina’s weer voor een gebruiker [5, 7]. Deze pagina’s bevatten JavaScript waarmee een client voor een webdataservice [2] en een client voor een webserver voor webpaginafragmenten [3] worden geïmplementeerd. Een gerenommeerd framework JS op dit gebied is Angular 2 van Google (mei 2019);
- In [2] is de webserver een gegevensserver. Deze kan in elke programmeertaal zijn geschreven. Hij genereert geen webpagina’s in de klassieke zin (HTML, CSS, JavaScript), behalve misschien de eerste keer. Maar die eerste pagina kan worden opgehaald van een klassieke webserver [3] (geen gegevensserver). Het JavaScript van de startpagina genereert vervolgens de verschillende webpagina’s van de applicatie door de weer te geven gegevens [4] op te halen bij de webserver, die fungeert als een gegevensserver [2]. Het kan ook webpaginafragmenten [5] ophalen om deze gegevens te presenteren via de webserver [3];
- in [4] initieert de gebruiker een actie;
- in [6,7]: hij ontvangt gegevens die zijn verpakt in een webpaginafragment;
In dit document gaan we client/server-toepassingen schrijven in PHP7 met de volgende structuur:

Hier zien we een client/server-toepassing geschreven in PHP. Een consolescript [9] zal een gegevensserver [4] opvragen. Wat hier wordt geleerd om de gegevensservice te schrijven, kan worden hergebruikt in een webtoepassing. De gegevensservice in PHP kan behouden blijven, terwijl de client PHP wordt vervangen door een JavaScript-client.
Als rode draad door dit document zullen we een dienst voor belastingberekening in 13 versies bouwen. Versie 13 zal de volgende architectuur hebben:

De [web]-laag van de server zal een MVC-architectuur (Model – View – Controller) hebben. De hele cursus PHP 7 is erop gericht deze versie te bouwen.
De scripts in dit document zijn van commentaar voorzien en de uitvoer in de console wordt weergegeven. Soms worden aanvullende uitleg gegeven. Het document vereist een actieve lezing: om een script te begrijpen, moet je zowel de code, de commentaren als de uitvoerresultaten lezen.
De voorbeelden uit het document zijn |hier| beschikbaar.
Het PDF uit het document is |hier| te vinden.
Serge Tahé, juli 2019