Versio

Tips beginnen met OOP

Overzicht Reageren

Jonathan -

Jonathan -

09/10/2008 13:08:00
Quote Anchor link
Hallo,

Ik ben al een jaar geleden me gaan verdiepen in OOP, ondertussen heb ik ook gekeken naar het MVC-model en bestaande frameworks als Zend Framework en CakePHP, en nu wil ik de stap eindelijk maken om ermee te beginnen.

Ik heb erg veel wijze berichten gelezen van Jelmer, waaruit ik ook heb besloten dat het systeem dat Jelmer altijd gebruikt/aanraadt wel erg handig is, ik zou het wel willen gaan gebruiken. Ik doel daarbij op één Store-classe, en één classe per object. Iets duidelijker is dit misschien:
Quote:
BerichtenStore
- new
- getById
- save

Bericht
- getNaam
- setNaam
- getBericht
- setBericht

Ik vroeg me ook nog af hoe je dit opslaan doet, om zo efficiënt mogelijk (zo weinig mogelijk query's) te werk te gaan. Moet je tijdens het ophalen de gegevens kopiëren in een array van de Store, en tijdens het opslaan controleren welke rijen en welke kolommen veranderd zijn, en die dan updaten?
Hmm, ik bedenk me net, is het niet slimmer om gewoon bij iedere aanroep van setXxx ergens op te slaan dat dat gewijzigd is, en dat de Store-classe dat uit kan lezen?

Ik twijfel nog of ik het MVC-model hier (volledig) in wil verwerken, ik zou dus graag van jullie willen weten of ik de opzet hierboven éénvoudig met het MVC-model kan combineren. Een codevoorbeeldje of een duidelijke uitleg zijn gewenst ;-)

Graag dus jullie tips, raad, en alles wat ik moet weten om met OOP van start te gaan.

Alvast bedankt!

Groeten,
Jonathan
Gewijzigd op 01/01/1970 01:00:00 door Jonathan -
 
PHP hulp

PHP hulp

25/05/2012 16:31:08
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
PHP erik

PHP erik

09/10/2008 14:48:00
Quote Anchor link
Wat wil je precies met een "Store"-object?

Ik zou eens Googlen naar Data Access Objecten (DAO's), Data Service Objecten (DSO's) en Data Objecten. Kijk ook eens naar Zend_Db_Table en Zend_Db_Table_Row (die implementeren bepaalde design patterns) en de opbouw van ActiveRecord.

Wat betreft MVC; de M is niet echt gedefinieerd in het principe MVC. Dus een opzet met data-objecten is erg nuttig voor de M van MVC.
 
Jonathan -

Jonathan -

09/10/2008 16:30:00
Quote Anchor link
Ik ben op MSN overtuigd door PHPerik om Zend Framework te gaan gebruiken, dus...
 
PHP erik

PHP erik

09/10/2008 18:45:00
Quote Anchor link
Kijk in dat geval goed naar Zend_Db_Table en Zend_Db_Table_Row. Dan heb je in ieder geval je data abstraction snel geregeld, dan hoef je in principe nog maar 1 laag tussen je controller en Zend_Db_Table-objecten. Namelijk je data access layer, zodat je niet afhankelijk bent van 1 vorm van data (database) maar ook XML of iets anders kan gebruiken. Maak nooit query's IN je controller en probeer dataobjecten direct door te geven aan je view zodat je niet je model, view en controller alle 3 hoeft aan te passen als er bijvoorbeeld een record bijkomt.

Dus niet:

Controller:
$data = $model->getSomeShit();
$view->assign('title', $data['title']);
$view->assign('page', $data['page']);
//etc

Maar wel:
$data = $model->getSomeShit();
$view->assign($data);

Hierbij kan je view even goed Smarty zijn of een ander systeem dan Zend_View (al zou ik dan een Smarty implementatie van Zend_View maken/gebruiken).
Gewijzigd op 01/01/1970 01:00:00 door PHP erik
 



Overzicht Reageren

Get Adobe Flash player