Interesse in Active Record?

Gestart doorOne2xs37 reacties86 weergaven

38 berichten · pagina 3 van 3

One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Mij lijkt het toch handiger werken als je $connectie->Uitvoeren() gebruikt dan $ding->dang()->doe()->dit()->uitvoeren(); emo
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Nielsie schreef:
Mij lijkt het toch handiger werken als je $connectie->Uitvoeren() gebruikt dan $ding->dang()->doe()->dit()->uitvoeren(); emo
Het is nog steeds Active Record, niet één of andere rare db class
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Raaoul schreef:
JOINS moet je obviously nooit doen met query builders als dit doen. Ingewikkelde querys kun je ook gewoon zelf maken met ->sql(). Mocht je dan gebruik willen maken van iets mooiere functies als ->find(), ->create(), ... kan dat nog altijd. Niemand verplicht je tot iets.

Wil je gewoon iets simpel ophalen, dan hoef je zelf niet altijd SQL te schrijven. Het is altijd wel netter om een wrapper rond zulke dingen te schrijven.

Daarom dat er ook iets bestaat als ActiveRecord en daarom ook dat AR geïmplementeerd zit in vele populaire frameworks.
Dan moet je met relations gaan werken smile Dan heb je ingebouwde Joins. Of eigenlijk gebruik je dan helemaal geen Joins. Hij doet 2 queries, maar het maakt hem wel een stuk flexibeler smile
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Rik schreef:
Maar waarom zou je dan niet gewoon

$user->addMoney(10);

Doen in plaats van

$user->find(...)->update(money, +10);
Omdat user een table is, en geen user op zich. Hierover gaat dit topic niet!!!
Een Table dient om rechtstreeks in verbinding te zijn met de database en dan acties uit te voeren. Wil je een coole laag zoals ->addMoney(), maak dan gebruik van Models en gebruik die Table dan in je models.

Iets als dit is al af. Enige aanpassingen/opmerkingen?

[COLOR= #0000BB]<?php
    $dbTable[/COLOR] [COLOR= #007700]= new[/COLOR] User[COLOR= #007700]([/COLOR]Database[COLOR= #007700]::[/COLOR]getDatabaseWithDefaultAdapter[COLOR= #007700]());[/COLOR]
        
    [COLOR= #0000BB]$select[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$dbTable[/COLOR][COLOR= #007700]->[/COLOR]select[COLOR= #007700]();[/COLOR]
        
    [COLOR= #0000BB]$select[/COLOR][COLOR= #007700]->[/COLOR]where[COLOR= #007700]([/COLOR][COLOR= #DD0000]username = ?[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]Raoul[/COLOR][COLOR= #007700]))->[/COLOR]order[COLOR= #007700]([/COLOR][COLOR= #DD0000]id DESC[/COLOR][COLOR= #007700]);[/COLOR]
        
    [COLOR= #0000BB]$fetch[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$select[/COLOR][COLOR= #007700]->[/COLOR]fetch[COLOR= #007700]();[/COLOR]
        
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$fetch[/COLOR][COLOR= #007700]->[/COLOR]username[COLOR= #007700];[/COLOR]
?>
0
Berichten
3.074
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja, ziet er goed uit, kan niet wachten tot de release!
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Nog een update! Saven kan nu direct via het db table item zelf.

[COLOR= #0000BB]<?php
$dbTable[/COLOR] [COLOR= #007700]= new[/COLOR] User[COLOR= #007700]([/COLOR]Database[COLOR= #007700]::[/COLOR]getDatabaseWithDefaultAdapter[COLOR= #007700]());[/COLOR]

[COLOR= #0000BB]$user[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$dbTable[/COLOR][COLOR= #007700]->[/COLOR]find[COLOR= #007700]([/COLOR][COLOR= #0000BB]21[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$user[/COLOR][COLOR= #007700]->[/COLOR]username [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]Jan[/COLOR][COLOR= #007700];[/COLOR]

[COLOR= #FF8000]// nu:[/COLOR]

[COLOR= #0000BB]$user[/COLOR][COLOR= #007700]->[/COLOR]save[COLOR= #007700]();[/COLOR]

[COLOR= #FF8000]// vroeger:[/COLOR]

[COLOR= #0000BB]$dbTable[/COLOR][COLOR= #007700]->[/COLOR]save[COLOR= #007700]([/COLOR][COLOR= #0000BB]$user[/COLOR][COLOR= #007700]);[/COLOR]

?>


Ennnnn ook een nieuwe functie, all(), haalt zoals de functienaam al zegt, alle rijen op.

[COLOR= #0000BB]<?php[/COLOR]

[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbTable[/COLOR][COLOR= #007700]->[/COLOR]all[COLOR= #007700]() as[/COLOR] [COLOR= #0000BB]$user[/COLOR][COLOR= #007700])
{[/COLOR]
  [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$user[/COLOR][COLOR= #007700]->[/COLOR]username[COLOR= #007700];
}[/COLOR]

?>
0
Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kun je eens het script online zetten? yummie Ik ben in ieder geval wel nieuwsgierig yummie
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Jenner schreef:
Kun je eens het script online zetten? yummie Ik ben in ieder geval wel nieuwsgierig yummie
De classes gebruiken heel wat andere classes waardoor ik het niet zomaar als een los script online kan zetten. Nog eventjes geduld. smile
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren