eigen framework / beheersysteem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 ... 8 9 10 11 12 volgende »

Ozzie PHP

Ozzie PHP

24/01/2011 21:48:22
Quote Anchor link
Mar cel op 24/01/2011 21:31:42:
...er wordt door de gebruikers met de moeilijkste termen gegooid. Zou je niet eerst even met de basis beginnen van het programmeren in OO, voordat je begint aan geavanceerde MVC-frameworken?


Correct, ik ga beginnen met de simpele variant, die van phppro... maar heb een project tussendoor dus gaat niet zo snel als ik zou willen. Maar in de tussentijd kabbelt de discussie lekker voort en heb ik straks hopelijk een hoop input. Weet je antwoord op mijn vraag over de fietsen?
 
PHP hulp

PHP hulp

20/04/2024 15:14:49
 
Pim -

Pim -

24/01/2011 21:59:58
Quote Anchor link
Quote:
- van alle 50 fietsen een object maken? (waarin behalve de naam, prijs en plaatje ook een omschrijving en specificaties zijn opgenomen. Met andere woorden je laadt dus veel te veel informatie in)
- van alle 50 fietsen een object maken, maar niet alle gegevens inladen?
- gewoon de relevante gegevens uit de database ophalen en in een array zetten en dus niet met objecten werken?

Tsja... Ik vind persoonlijk het omgaan met 'Domain Objects' in een database een van de lastigste dingen om mooi/goed te doen.

Optie 1 sowieso niet. Optie 3 kan, maar is niet OOP. Optie 2 is het mooist.

De makkelijkste optie hiervoor is het Active Record. Het object houdt dan zelf de relatie met de DB in stand. Dit heeft als nadeel dat je lastiger kan (Unit) testen en dat dat object dan 2 taken heeft: het zijn van een fiets en het zijn van het opslagmechanisme voor die fiets.

Mooier en ook makkelijk is de Datamapper. Een mapper regelt dan de opslag, de fiets zelf niet.
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:06:59
Quote Anchor link
He... ik begrijp in 1x je uitleg :) Ik ga vooruit! Wat is en hoe werkt een Datamapper dan?

Met Active record bedoel je zoiets als:

$fiets->load('23231') waarbij 23231 het artikelnummer is?



ps... laatst zie iemand hier dat wanneer je een waarde in een database opslaat als INT, je deze waarde alleen als INT moet opslaan op het moment dat je er mee wilt gaan rekenen. Geldt dat voor een artikelnummer eigenlijk ook? Het is een getal, maar je gaat er niet mee rekenen. Wordt het dan $fiets->load(23231) of $fiets->load('23231')?
 
Pim -

Pim -

24/01/2011 22:11:38
Quote Anchor link
Als het goed is, let je DB laag op die types. Daar moet je je verder niet druk om maken.
Active Record:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$user
= User::load($id) // Gaat statisch het netst
$user->save();
?>

Datamapper
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$mapper
= new UserMapper;
$user = $mapper->load($id);
$mapper->save($user);
?>
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:18:37
Quote Anchor link
Die uitlegjes van jou worden steeds duidelijker Pim :)

Ik denk dat ik dan toch de voorkeur geef aan de Active Record methode. Dat voelt voor mij natuurlijker aan dan zo'n datamapper.

"Als het goed is, let je DB laag op die types. Daar moet je je verder niet druk om maken."

Maar gewoon vanuit de logica gezien... moet je een artikelnummer behandelden als een int of een string? Hoe moet ik 'm meegeven aan de load functie: zo $fiets->load(23231) of zo $fiets->load('23231')?
 
Pim -

Pim -

24/01/2011 22:25:50
Quote Anchor link
Logisch gezien is het natuurlijk een getal, maar als het goed is, maakt het niet uit wat je gebruikt.
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:29:35
Quote Anchor link
Oke, mijn vraag was ontstaan omdat iemand laatst zei dat wanneer je zoiets opslaat in een database je niet INT moet gebruiken, maar varchar. Zijn opmerking hierbij was dat je alleen iets als INT moet opslaan als je van plan bent om er mee te gaan rekenen. Deel jij die mening? En zo ja... zou je dan bij de functie aanroep het art.nr. ook niet als string moeten meegeven. Please help me out.
 
Pim -

Pim -

24/01/2011 22:34:15
Quote Anchor link
Nee. Als vuistregel kan je het best aannemen dat MySQL goed werkt ( ;) ) en dat je dus gewoon de types moet gebruiken waar ze voor bedoelt zijn. Getallen sla je dus op als INT.
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:40:23
Quote Anchor link
Tja, dit maakt het verwarrend... zie de quote hieronder uit een ander topic:

John D op 03/01/2011 15:24:33:
Ga je rekenen met telefoonnummers ? Telefoonnummer A + 10x Telefoonummer B ??
Niet rekenen met de data dan geen rekenkundige tabel attributen gebruiken zoals INT, FLOAT etc. Voor huisnummers, telefoonnummers, burgerservicenummers, rijbewijsnummers, paspoortnummers, BTW nummers, KvK nummers altijd VARCHAR gebruiken.


De een zegt dit, de ander zegt dat. Wat moet ik nu voor waarheid aannemen?
 
Pim -

Pim -

24/01/2011 22:46:58
Quote Anchor link
John heeft daar gelijk, maar er is een verschil tussen ids en andere gewone cijfers en (eeeeh) nummers uit de buitenwereld. Bij die nummers gaat niet om de waarde van het getal, maar om de tekens achter elkaar. Vaak is het dan ook belangrijk dat alle nullen behouden blijven. Ids zijn echter gewoon rangnummers in je DB, INTs dus.

Ook is de opslag van een INT (veel) efficiënter dan een varchar.
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:51:24
Quote Anchor link
Bij een id / artikelnummer gaat het toch ook niet om de waarde van het getal? :-s
Dat is toch ook gewoon een rits cijfertjes achter elkaar?
 
Pim -

Pim -

24/01/2011 22:54:40
Quote Anchor link
Nee, want het volgende ID is het vorige + 1
 
Ozzie PHP

Ozzie PHP

24/01/2011 22:59:04
Quote Anchor link
Oke, maar dat geldt niet voor een artikelnummer...?
 
Pim -

Pim -

24/01/2011 23:03:59
Quote Anchor link
Volgens mij is een INT nodig om een auto-increment te hebben. Als je dat wil, heb je dus sowieso een INT nodig. Als je een artikel-nummer 'van buiten' haalt geldt hetzelfde als voor telefoonnummers: dat je de exacte volgorde van de tekens wil behouden, mochten er 0len voor zitten of streepjes erin.
 
Ozzie PHP

Ozzie PHP

24/01/2011 23:07:57
Quote Anchor link
Hmmm... samenvattend kunnen we dus zeggen:

- id's => INT
- aantallen => INT
- identificatiecodes => varchar
Gewijzigd op 24/01/2011 23:17:28 door Ozzie PHP
 
Pim -

Pim -

24/01/2011 23:13:19
Quote Anchor link
Ja, dat kan zo wel. Hoewel 'getallenreeksen' eigenlijk ook intergers zijn. Codes vind ik beter...
 
Ozzie PHP

Ozzie PHP

24/01/2011 23:17:09
Quote Anchor link
Ik pas het aan in identificatiecodes! Dat vind ik wel een goede :)
 
Niels K

Niels K

25/01/2011 22:46:58
Quote Anchor link
Even een ander puntje, probeer te werken met de zo gezegde 'environment variabele'. Houd daar in je configuratie object rekening mee.

[/tip]
 
Ozzie PHP

Ozzie PHP

25/01/2011 22:54:14
Quote Anchor link
Dank Niels... zou je het kunnen toelichten? Ik heb namelijk geen idee waar dit over gaat.
 
Th van

Th van

26/01/2011 10:11:16
Quote Anchor link
Volgens mij is dit al wat verduidelijkend: http://en.wikipedia.org/wiki/Environment_variable
 

Pagina: « vorige 1 2 3 ... 8 9 10 11 12 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.