PHP - Cursusmateriaal opleiding web developer

Opleiding Web Developer 2014-2015
30/09/14 Les 3: dynamische websites met PHP Woensdag 25/9/2013 1 Wat hebben we zaterdag geleerd? •  Verschil gecompileerde en geïnterpreteerde talen à Voor-­‐ en nadelen • 
• 
• 
• 
• 
• 
Hoe PHP in HTML code zit PHP code: hoe uitgevoerd? Clean URL's Local vs remote hosNng Mannen met baarden vs zonder baarden Rol van PHP in het ontwikkelproces 1 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 In deze les • 
• 
• 
• 
• 
• 
• 
• 
Web host Nps Afwerken installaNe, code editor & debugger Eerste PHP script: output naar browser Variabelen Data types Operatoren Controlestructuren Oefeningen!! Tips voor kiezen van web host 1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
Welke PHP versie is beschikbaar? Welke database is beschikbaar? RestricNes PHP? (bvb striktere instellingen) RestricNes .htaccess? RestricNes database (aantal, volume,…) Toegang tot map buiten document root? Webruimte & datavolume Domein inbegrepen of niet? 2 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Voltooien installaNe •  Composer installeren –  Handige manier om onderdelen te downloaden en up to date te houden •  PHP.ini se`ngs voor development –  error_reporNng = E_ALL & ~E_DEPRECATED & ~E_STRICT –  display_errors = On •  PHP Binary instellen php.ini •  Dit bestand bevat de instellingen van uw PHP omgeving •  LocaNe hangt af van systeem, typisch ergens onder uw WAMP/MAMP map in een map php •  Standaard worden fouten niet getoond, wij willen die echter wel zien bij ontwikkelen: –  error_reporNng = E_ALL & ~E_DEPRECATED & ~E_STRICT –  display_errors = On 3 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Composer •  Tool om sogwarepakkehen binnen te halen •  InstallaNe-­‐instrucNes: hhps://getcomposer.org/doc/00-­‐intro.md •  Bediend via de command line –  Max OSX: Terminal –  Windows: Command Prompt (cmd.exe) •  Composer testen via composer about + enter PHPinfo •  Handige manier om te controleren welke versie van PHP u draait: phpinfo() •  Maak een .php bestand en zet daarin: <?php phpinfo(); 4 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Voorbeeld: phpinfo Zit je vast? Raadpleeg dan… •  php.net à de officiële handleiding •  Google! à leidt o.a. naar nu`ge sites zoals stackoverflow •  Vincent 5 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 DEEL 1: PHP EN ZIJN SYNTAXIS Server-­‐side vs client-­‐side scripNng 6 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Syntaxis •  PHP volgt na een <?PHP tag (of <?= in sommige gevallen) –  Mentaal de switch leren maken tussen HTML en PHP! •  PHP-­‐mode verlaten: ?> (hoeg niet op einde van bestand) •  Code wordt van boven naar onder, en links naar rechts geparsed •  Punt-­‐komma na elk statement •  SpaNe, tabs, nieuwe regels,… voor, na en tussen statements zijn puur voor je eigen overzicht à PHP houdt hier geen rekening mee à gebruik dit dus om code overzichtelijk te houden •  In deze cursus gebruiken we bij voorkeur PHP's echo commando om content naar browser te sturen AAN DE SLAG! 7 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Oefening hallo wereld Windows: nieuw bestand in Notepad (niet opslaan als "Text document", maar als hallo.php) Mac: nieuw bestand in TextEdit (eerst in menu Format à make plain text, daarna save as .php) Oefening 1 (Hallo Wereld) in map Back-­‐End-­‐03 op hhp://mgml.be) Oplossing 8 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Oefening gemengde code •  PHP, HTML, CSS en Javascript code staan vaak door elkaar in hetzelfde bestand. 1.  Herwerk de "Hallo wereld" oefening, maar zorg ervoor dat de tekst Hallo wereld! tussen HTML Heading1 tags (<H1> en </H1>) weergegeven wordt. 2.  Zet onder deze heading een paragraaf tekst (tussen <P> tags) waarin je kort beschrijg waarom je PHP wilt leren. Hier moet geen PHP aan te pas komen. •  Let op: enkel de tekst Hallo wereld! mag vanuit PHP komen! •  Bonuspunten voor wie zijn HTML output zonder errors kan laten valideren door de validator van W3. hhp://validator.w3.org/#validate_by_input Commentaar in de PHP code // alles na een dubbele slash is commentaar # alles na een hekje is commentaar /* alles wat geschreven wordt tussen enerzijds een slash gevolgd door een ster en anderzijds een ster gevolgd door een slash wordt beschouwd als commentaar, zelfs als het over meerdere regels gaat */ à  dit geldt enkel voor PHP! à  HTML commentaar <!-­‐-­‐ ziet er zo uit -­‐-­‐> en wordt mee naar de browser gestuurd! à voorbeeld commentaar 9 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 DEEL 2: PHP VARIABELEN Variabelen •  Variabele: een "doosje" met een zelf gekozen naam, waar je iets in kan steken. •  In PHP wordt steeds een dollarteken voor de naam van de variabele gezet om aan te duiden dat het een variabele is. •  Naam is hoofdlehergevoelig en kan lehers, cijfers en/of underscores bevahen. •  Naam moet beginnen met een leher of underscore! •  Expression: een waarde aan iets toekennen •  Bvb: expression die variabele $test aanmaakt en er de waarde 77 aan geeg: $test= 77; Wat aan de linkerkant staat, krijgt de waarde van wat rechts staat à maar blijg niet gelinkt. $test kan hierna van waarde veranderen 10 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Reference assignment Uitzondering op de regel: Variabele toewijzen door een ampersand na het gelijkheidsteken te plaatsen: ze blijven gelinkt. Voorbeeld reference assignment Oefening variabele Oefening variabelen AAN DE SLAG! 11 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Data types (soorten variabelen) Data type Houdt in… Een voorbeeld Boolean TRUE/FALSE (antwoord op ja/nee vraag) Controleren of gebruiker aangemeld is. Integer Gehele getallen Aantal van een arNkel in winkelmandje. Float Kommagetallen Te betalen bedrag in een web shop. String Reeks tekens (tekst, cijfers, symbolen,…) Tekst door gebruiker ingevuld in een contac{ormulier. Array Bundel van variabelen Lijst met landen in een formulier. Object Zoals een array, maar dan met eigen code in à vrij complex, dit is het onderwerp van object-­‐georiënteerd programmeren. Complexe enNteit, zoals bijvoorbeeld een contactpersoon in een adresboek. Via methodes (speciale code in het object) kan er logica uitgevoerd worden vanuit het object. Null Bevat geen waarde. Variabele bestaat maar is niet set Het resultaat van een opzoeking in de database die niets oplevert. Data types in PHP •  Twee groepen data types: –  Scalar: boolean, integer, float en string à één waarde –  Compound: array en object à groep van waarden •  PHP is "weakly typed": –  Waar andere programmeertalen erg strikt omgaan met het verschil tussen data types, is PHP erg laks –  Een string die enkel cijfers bevat kan bvb als een integer gebruikt worden 12 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Arrays •  Elk item in een array heeg een key –  Ofwel is dit een getal (int) –  Ofwel is dit een tekst (string) •  De waarde (value) van de items in een array kan gelezen of toegewezen worden door de key tussen vierkante haakjes te plaatsen achter de variabelenaam. Bijvoorbeeld: echo $autos[5]; $bezoeker['jeÄe'] = 'loyaal'; •  De nummering begint bij 0! (en dus niet bij 1) •  MulN-­‐dimensionale arrays: waarde van de items in een array kan eender welk datatype hebben, zelfs een array. Strings en escape characters •  Strings worden steeds omringd door delimiters. In PHP zijn dit enkele (') of dubbele aanhalingstekens (") •  Verschil: als u binnen dubbele aanhalingstekens een $variabele zet, zal PHP deze parsen, en dus vervangen door de waarde. Bij enkele aanhalingstekens zal er leherlijk $variabele staan •  Wat als u hetzelfde aanhalingsteken als uw delimiter wilt gebruiken binnen uw string? Twee mogelijkheden: –  Gebruik het andere type aanhalingstekens als delimiter –  Indien dubbele: zet een backslash (\) voor het aanhalingsteken: PHP zal het karakter dat hierop volgt leherlijk in de string zehen en dus niet parsen. à dit kan dus ook gebruikt worden om een dollarteken in een string te gebruiken zonder het als variabele te laten parsen 13 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 Voorbeeld data types Voorbeeld weakly typed AAN DE SLAG Type casNng: datatypes omzehen •  Type casNng: waarde van variabele in ander datatype krijgen door tussen haakjes het gewenste type ervoor te zehen. •  Mogelijkheden: – 
– 
– 
– 
– 
– 
Array: (array) Boolean: (bool) of (boolean) Integer: (int) of (integer) Object: (object) Float: (real), (double) of (float) String: (string) •  Voorbeeld: type cas]ng •  Om data type van variabele permanent te wijzigen: se;ype($variabele,"type"); 14 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 DEEL 3: OPERATOREN Operatoren •  PHP is ook een rekenmachine •  Je kan getallen en variabelen optellen, agrekken, delen en vermenigvuldigen. •  Gebruik haakjes om te groeperen •  Oefening: rekenen 15 © Vincent De Munck
Opleiding Web Developer 2014-2015
30/09/14 DEEL 4: FUNCTIES AANROEPEN FuncNe •  Woord met haakjes eraan. Bvb phpinfo() of str_replace() •  Door een funcNe aan te roepen wordt er code uitgevoerd •  Later leren we zelf funcNes maken, maar eerst roepen we ingebouwde PHP funcNes aan •  Voorbeeld: de date() funcNe. Heeg twee argumenten: –  format: een string om aan te geven in welke vorm u de datum wilt –  Nmestamp: het NjdsNp dat u wilt weergeven, uitgedrukt als aantal seconden sinds 1970 (opNoneel). •  Bijvoorbeeld: <?php echo date('Y-­‐m-­‐d'); ?> à 2014-­‐09-­‐30 16 © Vincent De Munck