login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > PHP > [PHP] Fluent interfaces, de basis
Pagina:

Reacties op de tutorial [PHP] Fluent interfaces, de basis


Offline  lemoinet
Gepost op: 15 februari 2011 - 20:56
PHP gevorderde

in je tweede voorbeeld staat een fout. je bent return $this vergeten bij changeStock

Offline  valles10
Gepost op: 16 februari 2011 - 21:30
HTML interesse

Ik snap het nut of de bedoeling van die fluent interfaces niet echt...

Offline  Joost
Gepost op: 17 februari 2011 - 14:27
PHP expert

valles10 schreef:
Ik snap het nut of de bedoeling van die fluent interfaces niet echt...
Zoals ook in de tutorial staat, is het belangrijkste voordeel de leesbaarheid van je code. Een mooi voorbeeld is zo'n database query klasse die met fluent interfaces werkt:
  1. $query = new Query();
  2. $query->select('*')->from('tabel')->where('veld', 'value')->limit(10);
  3. $query->exec();


Een ander voorbeeld zou bijvoorbeeld het bewerken van afbeeldingen kunnen zijn:
  1. $image = new Image('image.png');
  2. $image -> setBorder('black')
  3. -> rotate(90)
  4. -> save();

Offline  Maarten
Gepost op: 18 februari 2011 - 12:42
Erelid

In feite klopt uw stock-methode niet, want ge kunt bij een bestelling een amount meegeven, en dan trek je altijd 1 item af van de stock... niet dat dat ook maar van enig belang is voor het punt van deze tutorial, maar als we kunnen zagen kunnen we het niet laten hé 

Offline  valles10
Gepost op: 18 februari 2011 - 17:51
HTML interesse

in deze 'tutorial' komt het erop neer dat je sinds php 5
$obj->function()->function()->function(); kunt doen 

Offline  dbe123
Gepost op: 09 september 2011 - 23:35
Lid

Misschien ook handig om uit te leggen, is dat je in PHP 5.3 ook gebruik kunt maken van de zogenaamde static:: methode.
Dit laat je toe om je Database Model ook nog modulair te maken.
Je maakt dus een DatabaseObject met de Common DB Queries, en laat de ander Classes (User, Stock, ...) deze Class extenden...

Offline  Thomas
Gepost op: 22 december 2013 - 22:33
Moderator

Ik ken dit principe als "chaining".

En ja, het kan handig zijn. Maar het moet wel hout snijden uiteraard .

Offline  Thomas
Gepost op: 04 september 2014 - 12:09
Moderator

De voorbeelden uit de tutorial zelf zouden in een transactie moeten staan, je wilt namelijk dat alle queries die achter deze methode-aanroepen steken worden uitgevoerd, of geen enkele. Dit moet een ondeelbare actie zijn om gegevensintegriteit in je database te waarborgen.

Daarnaast zijn, nu ik er over nadenk, deze voorbeelden niet echt realistisch. De orders die iemand plaatst zullen namelijk op voorhand niet (vaak) vaststaan . Het is waarschijnlijker dat je in een loop je sessie o.i.d. uitleest.

De voorbeelden van Joost hierboven daarentegen dekken de lading wat beter denk ik.

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2020 Sitemasters.be - Regels - Laadtijd: 0.076s