PDO zonder classes en OOP
Ik gebruik op mijn website alleen PDO, gewoon voor query's en om te verbinden met de DB enzo.. Maar ik gebruik geen classes. Is dit dan alsnog OOP?
Titel aangepast[/modedit]
Gewijzigd op 23/07/2013 18:45:27 door Bas IJzelendoorn
nee dat is niet OOP, maar gewoon flat. als het er ongeveer zo: http://www.phphulp.nl/php/script/beveiliging/login-bruteforce-protectie-pdo/1950/loginphp/1742/ uitziet is dat flat.
Jeroen VD op 23/07/2013 16:04:55:
verander alsjeblieft eerst je titel, dit is zo nietszeggend.
nee dat is niet OOP, maar gewoon flat. als het er ongeveer zo: http://www.phphulp.nl/php/script/beveiliging/login-bruteforce-protectie-pdo/1950/loginphp/1742/ uitziet is dat flat.
nee dat is niet OOP, maar gewoon flat. als het er ongeveer zo: http://www.phphulp.nl/php/script/beveiliging/login-bruteforce-protectie-pdo/1950/loginphp/1742/ uitziet is dat flat.
Ja, zo ziet het er ongeveer uit.
Maar is het beter om dit niet te doen of maakt het niet uit?
Mag ik jullie er op wijzen dat PDO enkel OOP is in tegenstelling tot bijvoorbeeld MySQLi die kan procedureel en OO geschreven worden.
Reshad F op 23/07/2013 17:54:48:
Mag ik jullie er op wijzen dat PDO enkel OOP is in tegenstelling tot bijvoorbeeld MySQLi die kan procedureel en OO geschreven worden.
Maar.. als je OO wilt programmeren hoef je dus eigenlijk geen classes te gebruiken...?
Nee Reshad, PDO kan je enkel met classes gebruiken, maar dat maakt het nog geen OOP. OOP wil zeggen dat alles 'object georienteerd' is. Als de rest van je applicatie niet volledig in objecten gebouwd is dan is het dus geen OOP. Daarmee zou dan ook de vraag van de TS beantwoord moeten zijn.
Erwin H op 23/07/2013 18:27:10:
Nee Reshad, PDO kan je enkel met classes gebruiken, maar dat maakt het nog geen OOP. OOP wil zeggen dat alles 'object georienteerd' is. Als de rest van je applicatie niet volledig in objecten gebouwd is dan is het dus geen OOP. Daarmee zou dan ook de vraag van de TS beantwoord moeten zijn.
Maar.. PDO kun je ook zonder classes gebruiken?
Dat 'enkel met classes' sloeg op het feit dat PDO zelf uit classes bestaat en niet uit procedurele code. Hoe je het verder aanroept maakt natuurlijk geen donder uit. Php gaat niet bepalen of jij in OOP moet werken of niet.
Mmm.. Waarom werken mensen dan met classes? Omdat het handiger is ofzo?
Classes bieden inderdaad voordelen. Het gaat te ver om hier helemaal te vertellen wat classes allemaal voor voordelen hebben en hoe je ze kunt gebruiken. Daar zijn wel boeken en tutorials over geschreven.
Je kunt een class een beetje zien als een losstaand programma zoals je ook op je pc hebt. Neem nou bijvoorbeeld Kladblok. Je kunt dit programma meerdere keren openen en ze kunnen allemaal een andere inhoud weergeven. Echter is het toch echt maar één programma die in de windows directory opgeslagen is. iedere keer wordt dat programma geladen, alleen krijgt kladblok de ene keer de instructie op 'leesmij.txt' te openen en de andere keer de instructie om 'verzineenswat.txt' te openen. Dit noemen we instantiëren. Ieder Kladblok venster noemen we dan een instantie. elk venster heeft dezelfde eigenschappen. (het lettertype, menu enz is allemaal het zelfde) maar elk venster kan een andere inhoud hebben. Zo ook met classes:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
class User {
private $name;
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
};
$user1 = new User();
$user2 = new User();
$user3 = new User();
$user1->setName('Henk');
$user2->setName('Piet');
$user3->setName('Klaas');
echo $user1->getName();
echo $user2->getName();
echo $user3->getName();
?>
class User {
private $name;
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
};
$user1 = new User();
$user2 = new User();
$user3 = new User();
$user1->setName('Henk');
$user2->setName('Piet');
$user3->setName('Klaas');
echo $user1->getName();
echo $user2->getName();
echo $user3->getName();
?>
Erwin H op 23/07/2013 18:27:10:
Nee Reshad, PDO kan je enkel met classes gebruiken, maar dat maakt het nog geen OOP. OOP wil zeggen dat alles 'object georienteerd' is. Als de rest van je applicatie niet volledig in objecten gebouwd is dan is het dus geen OOP. Daarmee zou dan ook de vraag van de TS beantwoord moeten zijn.
Lijkt me niet dat iemand een webapp volledig OOP schrijft, er zijn vaak stukjes waar het totaal overbodig is om OOP te gaan. 100% OOP in php komt bijna nooit voor in mijn mening.
2) dat doet nog niets af aan het feit dat als je links of rechts een paar classes gebruikt je nog geen OOP applicatie hebt.
Het lijkt me overbodig als je alleen iets wilt fetchen om daarvoor een hele functie te schrijven?
Gewoon SELECT * FROM users WHERE id = $_SESSION['id'] bijvoorbeeld,
Erwin H op 23/07/2013 19:12:29:
Dat 'enkel met classes' sloeg op het feit dat PDO zelf uit classes bestaat en niet uit procedurele code. Hoe je het verder aanroept maakt natuurlijk geen donder uit. Php gaat niet bepalen of jij in OOP moet werken of niet.
Ja dat bedoelde ik dus! :p verkeerd uitgelegd weliswaar
Stijn Langezaal op 24/07/2013 13:29:41:
Mm..
Het lijkt me overbodig als je alleen iets wilt fetchen om daarvoor een hele functie te schrijven?
Gewoon SELECT * FROM users WHERE id = $_SESSION['id'] bijvoorbeeld,
Het lijkt me overbodig als je alleen iets wilt fetchen om daarvoor een hele functie te schrijven?
Gewoon SELECT * FROM users WHERE id = $_SESSION['id'] bijvoorbeeld,
Als je zo'n gedachtegang hebt moet je in elk geval niet aan OOP gaan denken. OOP staat niet voor 'even snel de makkelijkste manier', maar voor herbruikbaarheid van je code en onderhoudbaarheid van je applicatie(s).
Dat heeft enkel maar voordelen
Als stelregel kan je nemen dat alles dat langer dan 10 regels code is beter opgedeeld kan worden in 1 of meerdere functies.
Zolang PHP het maar uit z'n hoofd haalt om procedural code te gaan verwijderen in de toekomst..
Bij de aankondiging van PHP6 leek het er op alsof ze hopen 'rommel', 'pruts-functies', de mysql_ functies ... gingen verwijderen.
Het klonk (in mijn oren) toen als: "de prutsers zullen niet mee kunnen; die zullen met php5 achter moeten blijven"
Het is er niet van gekomen.
Het lijkt er op dat men die grote groep mensen toch niet wil achterlaten.
In procedurele code zijn classes en functions heel handig.
OOP is een denkwijze.
Het heeft niets met php van doen.
Je hoeft geen OOP applicatie te maken.
Je kan het. Ook al is de oo denkwijze er (nog) niet, dan is in een class en functions schrijven wel een handige opstap.
Scheelt je straks veel extra oefenen.
Stijn Langezaal op 24/07/2013 17:21:41:
Ik sla de classes en functies over.
Zolang PHP het maar uit z'n hoofd haalt om procedural code te gaan verwijderen in de toekomst..
Zolang PHP het maar uit z'n hoofd haalt om procedural code te gaan verwijderen in de toekomst..
Dat je classes overslaat, dat kan. Maar functies? Stijn jongen, Programmeren zonder functies is waanzin. Waarom ga je niet lekker wat anders doen? Of neem eens de moeite om iets te proberen als je dan toch perse met PHP bezig wilt blijven.