De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’

Verwante presentaties


Presentatie over: "‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’"— Transcript van de presentatie:

1 ‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
Live webcollege ‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’ 1 1

2 Welkom 2 2

3 Programma Adobe Connect
Afsluiting Programma Adobe Connect Vragen en antwoorden-venster Stel hier je technische vragen en inhoudelijke vragen aan de docent. Chatvenster Praat hier met de andere deelnemers. Statusicoon Reageer hiermee op stellingen en vragen van de docent. Opties statusicoon.

4 Wie ben ik? Peter Anema Achtergrond: TU Delft, 30 jaar werkzaam in de medische IT en al 40 jaar aan het programmeren. Docent bij LOI klassikaal, m.n. IT ontwerpen en programmeren. 4 4

5 Opbouw live webcollege
Onderdeel 1 – Best practices Vragenblok onderdeel 1 Onderdeel 2 – OOP Vragenblok onderdeel 2 Onderdeel 3 – Design patterns Vragenblok onderdeel 3 3 x 10 tot 15 minuten 5 5

6 Wie herkent zich hierin?
De code achter mijn pagina's is in de loop van de tijd gegroeid tot honderden regels. 6 6

7 Onderdeel 1 - Best practices
Er is niet één best practice, maar wees consistent. 7 7

8 Codeer volgens een standaard
Framework Interop Group PSR-1 – Basic Coding Standard. PSR-2 – Coding Style Guide. PSR-4 – Autoloader. 8 8

9 Naamgeving Naamgeving in CamelCase.
Variabelen en methoden beginnen met een kleine letter. Klassen beginnen met een hoofdletter. <?php class Persoon { // Properties private $naam; // Methods public function vertelOverJezelf() { print "Ik ben " . $this->naam; } 9 9

10 Indenting en brackets Vier spaties inspringen voor ieder code block.
Brackets op nieuwe regel bij class en function. Brackets aan eind van de regel bij control statements. <?php function printEvenGetallen() { for ($i = 0; $i < 10; $i++) { if ($i % 2 == 0) { print i; } 10 10

11 Files Iedere klasse gaat in een file. persoon.php 11 11 <?php
class Persoon { // Properties private $naam; // Methods public function vertelOverJezelf() print "Ik ben " . $this->naam; } <?php require_once('persoon.php'); 11 11

12 Visibility Specificeer altijd de visibility. Private Public Protected
<?php class Persoon { // Properties private $naam; // Methods public function vertelOverJezelf() print "Ik ben " . $this->naam; } Private Public Protected 12 12

13 Commentaar // inline comments /* */ block comments /** */ DocBlock
Niet te weinig Niet te veel Toegevoegde waarde Refactor <?php /** * Dit is een DocBlock voor de * functie vertelOverJezelf * string $naam Jouw naam string */ function vertelOverJezelf($naam) { // Concatenate greeting and name return "Ik ben " . $naam; } 13 13

14 Dan HTML met minimale PHP.
PHP en HTML <?php $content = doSomething(); // complex calculations ?> <!DOCTYPE HTML> <html> <title>Demo</Title> <body> <?php echo $content; ?> <div id="some_div">Content</div> </body> </html> PHP-code eerst. Dan HTML met minimale PHP. 14 14

15 Vragen? 15 15

16 Scheiden van verantwoordelijkheden
Blok 2 – Object-oriented programming (OOP) Scheiden van verantwoordelijkheden Deel 1 Deel 2 Deel 4 Deel 3 16 16

17 Klasse Naam Eigenschappen & methodes Naam Properties Methods 17 17

18 Klasse als blauwdruk 18 18 Persoon naam geslacht geboortedatum
opleiding vertelOverJezelf() public vertelOverJezelf() { print "Ik ben " . $this->naam; } 18 18

19 Objecten instantiëren
Ik ben Sly Ik ben Guido Ik ben Liberty 19 19

20 In PHP 20 20 <?php class Persoon { // Properties private $naam;
private $geslacht; private $geboortedatum; private $opleiding; // Constructor public __construct($naam) { $this->naam = $naam; } // Methods public vertelOverJezelf() { print "Ik ben " . $this->naam; <?php // Instantiation $persoon1 = new Persoon("Guido"); $persoon2 = new Persoon("Sly"); $persoon3 = new Persoon("Liberty"); // Invoke methodes $persoon1->vertelOverJezelf(); $persoon2->vertelOverJezelf(); $persoon3->vertelOverJezelf(); Ik ben Guido Ik ben Sly Ik ben Liberty 20 20

21 Kaartspel poker 21 21

22 Kaartspel poker PokerHand Hand Kaart Dek 22 22

23 Klassen – Kaartspel poker
Dek Hand PokerHand Kleur Rang Kaarten Kaarten Hand Deel Schud VoegKaartenToe BesteCombinatie 23 23

24 UML – Kaartspel poker 24 24

25 Vragen? 25 25

26 Onderdeel 3 – Design patterns Code smell & anti-patterns
repeating yourself  DRY switch $type  inheritance magic numbers  CONSTANTS God object  Refactor Accidental complexity  KISS

27 Wie heeft zoiets weleens gedaan?
27 27

28 Factory pattern 28 28 /* Car */ abstract class Car {
public abstract function getType(); } class Sedan extends Car { public function getType() { return 'Sedan'; /* Factory */ interface CarFactory { public function makeCar(); class SedanFactory implements CarFactory { public function makeCar() { return new Sedan(); $factory = new SedanFactory(); $car = $factory->makeCar(); print $car->getType(); 28 28

29 Observer pattern abonneren op veranderingen 29 29

30 Iterator pattern Vaak zijn classes een vorm van collectie.
Met een iterator pattern kun je deze classes gebruiken in foreach. Door het implementeren van enkele methoden: next() en hasNext() 30 30

31 Vragen? 31 31

32 Evaluatie Eerst enkele enquêtevragen en dan ontvangt u nog een extraatje.

33 Afronding Cheat sheet ‘Van scripting naar object-oriented programming met PHP’. 33 33


Download ppt "‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’"

Verwante presentaties


Ads door Google