OO-design problemen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

Bekijk vacature »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »
Lasse

Lasse

20/02/2008 14:03:00
Quote Anchor link
Hallo,

Ik ben bezig met het (ter oefening) ontwerpen van een forum in OOP. Nu heb ik twee problemen, en ik wil daar graag jullie oplossing/visie van horen:

1: Een heleboel klassen maken gebruik van PDO. Aangezien ik in PDO geen singleton heb gevonden zoek ik nu naar een andere oplossing om geen overdreven veel verbindingen met de database te maken:
-Ik kan een nieuwe klasse maken die PDO extend, en waar wel een singleton in zit
-Ik kan gebruik maken van persistente connecties, maar ik weet niet tot in hoevere dat handig is
-Ik kan een soort register klasse maken, maar dat heeft ook niet mijn voorkeur...

Heeft iemand hier nog een andere oplossing voor, of wil iemand mij zeggen waarom één van de drie hierboven beschreven oplossingen het beste zijn?

Probleem 2:
Stel ik heb de klasse Topic. Die heeft een compositieverbinding met de klasse Post. Dat houd dus in dat in de klasse topic een array moet zitten waarin alle posts zijn opgeslagen (en uiteraard bijbehorende methoden). In de klasse Post moet een method zitten waar de juiste instantie van Topic in zit (of is dit niet nodig?).
Als ik nu een nieuwe post wil defineren, doe ik dat dan via een methode createPost() (of iets dergelijks) in klasse Topic? Als ik dat namelijk niet doe, en ik maar gewoon rechtstreeks een new Post, dan moet ik hem daarna nog registreren bij een instantie van Topic.
En geldt dan ook dat ik bij het verwijderen van een Post, gewoon een functie deletePost() aanroep? Want anders verwijder ik vrolijk een Post, en dan staat hij nog wel geregistreerd in de instantie van Topic.

Ik hoop dat mijn verhaal een beetje duidelijk is, en alvast bedankt voor het antwoord!
Gewijzigd op 01/01/1970 01:00:00 door Lasse
 
PHP hulp

PHP hulp

15/01/2025 23:19:54
 
Bo az

Bo az

20/02/2008 14:33:00
Quote Anchor link
Singleton voor een database klasse zou misbruik van het singleton pattern betekenen. Singleton heb je bijna nooit nodig, je mag het alleen gebruiken als je zeker weet dat je maar één instantie van een klasse krijgt, maar wie zegt je dat je maar 1 instantie van PDO mag maken?

Persoonlijk zou ik 'm zo-ie-zo in een registery zetten omdat je 'm dan meteen overal tot je beschikking hebt.
 
Slurp

Slurp

20/02/2008 14:57:00
Quote Anchor link
SIngelton zorgt er voor dat je maar 1 database instatie kan aanmaken. DUs het kan best. OF maak jij altijd per connectie een nieuwe instantie aan?
Dus het is geen misbruik maar juist goed gebruik als je er wilt voor zorgen dat je per instantie maar 1 connectie wilt ;)
 
Bo az

Bo az

20/02/2008 15:22:00
Quote Anchor link
@Slurp, nee dat is het niet, singleton zorgt er voor dat je maar 1 connectie KAN maken, als je bijvoorbeeld ook een connectie wil maken met een postgresql database kan dat niet meer door het singleton pattern. Of als je ook met een andere mysql database wil connecten kan dat niet meer.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Lasse

Lasse

20/02/2008 16:58:00
Quote Anchor link
@Boaz: Dat is niet helemaal waar, want je kunt altijd rechtstreeks de constructor aanroepen, maar verder heb je inderdaad wel gelijk.

Maar hoe zit het dan met een persistente verbinding? In principe kan je die ook wel gewoon gebruiken toch?

En weet iemand nog het antwoord op mijn tweede probleem?
 
Jelmer -

Jelmer -

20/02/2008 17:07:00
Quote Anchor link
Dat zou je eens moeten testen. Met de SQL query 'SHOW PROCESSLIST' kan je kijken hoeveel verbindingen er nog open staan, en door te hameren op je server met bijvoorbeeld apache ab en kijken wanneer hij het opgeeft.

Wat je ook nog kan doen is in plaats van een register gebruiken een Factory voor je klassen (of meerdere factories) gebruiken om de instanties te maken, en de instanties direct te voorzien van een verwijzing naar de instantie van PDO. M.a.w de instantie van PDO door de constructor heen drukken zodat je wel overal maar 1 instantie gebruikt, en vervolgens het 'new Instantie($PDO)' gebeuren laten afhandelen door een aparte klasse/method/functie die die instantie van PDO tot z'n beschikking heeft zodat hij die kan uitdelen aan de nieuw aan te maken instanties.
 
Lasse

Lasse

20/02/2008 17:56:00
Quote Anchor link
@Jelmer: Dat is wel een goed idee (beide). Mag ik weten wat je zelf gebruikt?

En wil er ook nog iemand kijken naar mijn tweede probleem, want ik weet gewoon niet zeker of ik het op die manier goed doe...

Alvast bedankt voor alle reacties!
 
Jelmer -

Jelmer -

20/02/2008 19:04:00
Quote Anchor link
Ik gebruik zelf eigenlijk alleen toegang tot de database in mijn controllers en models. De controllers worden aangemaakt vanuit een centrale klasse, IHGApplication, welke ook de database-instantie beheert. Dus die geef ik mee bij het aanmaken zodat ik die vanuit de controller kan raadplegen. De models haal ik via een method uit de database-klasse, dus op dat moment wordt er ook een verwijzing naar die database meegegeven aan de models. Of ik maak ze aan zonder database, en wanneer ik Model::save aanroep, geef ik een instantie van de database mee (die heb ik immers in de controller tot mijn beschikking, en alleen daar zal ik waarschijnlijk de method save() aanroepen)

Ik probeer nu zelf op het moment zo veel mogelijk instanties mee te geven. In het verleden heb ik veel singleton gebruikt, maar dat beviel achteraf niet zo goed (altijd maar 1 instantie, en wanneer je een soort semi-singleton gebruikte, wist je niet meer welke instantie je nu voor je neus kreeg, en waar geef ik de verbindinggegevens mee?) En ook het register-pattern heb ik geprobeerd, maar dan was het vaak maar de vraag of de database al beschikbaar was, en als ik hem vooraf initialiseerde en registreerde, was het maar de vraag of hij wel nodig was. Daarnaast had je relatief weinig controle over welke database hij nu pakte. Ik gebruik bijvoorbeeld meerdere databases, vaak een MySQL of andere standaard-database, en een SQLite voor de cache of de configuratie. Maar dat wisselde nog wel eens (experimenteren e.d.) dus vind ik het tegenwoordig wel handig als ik veel controle over welke database meegegeven wordt, en vind ik het belangrijk dat ik meerdere databases tegelijkertijd kan aanspreken.
 
Lasse

Lasse

20/02/2008 19:25:00
Quote Anchor link
Maar die IHGApplication kun je ook tot de controller toch? Maar waarom zou je de database in de controller nodig hebben? Je hebt hem alleen in het Model nodig toch? Dus eigenlijk zeg je: Maak in je controller een instantie van PDO, en geef die bij het instantieren van een klasse steeds door (via de constructor ofzo?).
 
Bo az

Bo az

20/02/2008 19:48:00
Quote Anchor link
Hoe initialiseer je meerdere models die uit de database komen als je dat niet via de controller doet? Als je voor ieder model een eigen query gaat uitvoeren ben je nogal inefficiënt bezig.
 
Lasse

Lasse

20/02/2008 20:31:00
Quote Anchor link
Stel ik heb een klasse Topic, en daar wil ik alle Posts van hebben. Dan roep ik toch een method van Topic aan, en die gaat alle informatie uit de database halen (zo heb ik het tenminste geleerd). En aangezien Topic onder het type Model valt...
 
Jelmer -

Jelmer -

20/02/2008 23:56:00
Quote Anchor link
Ik gebruik de database soms vanuit mijn controllers redelijk direct om een wat geavanceerdere query te draaien. Bijvoorbeeld een overzicht van de laatste tien posts van persoon a, die gepost zijn in een topic waar persoon b ook een post heeft geplaatst. Aangezien die query maar op 1 plek wordt uitgevoerd vind ik het zelf niet nodig om hem op te nemen in een method in een of andere factory (die je models opzoekt) mede omdat hij zo specifiek voor dat ene probleem is.

In mijn IHGApplication initialiseer ik een zootje klassen. Helpers, registery, identificatie, configuratie. En dus een database-verbinding (onderdeel van configuratie :) ) Vanuit de IHGApplication instantie wordt dan de URL omgezet in een aanroep naar een Controller-klasse & method, met argumenten. Bij het instantiëren van de controller geef ik de instantie van IHGApplication mee, zodat ik binnen de controller de helpers, configuratie en database e.d. kan gebruiken.

Vanuit de controller wil ik nu bijvoorbeeld 10 personen met een L in de naam opzoeken. Dan maak ik daarvoor een SQL-query, en die prop ik in mijn aangepaste PDO::prepareFor. Als 2e argument geef ik een model waarin de resultaten moeten worden gestopt mee. PDO vraagt nu mijn 10 mensen op, en maakt daar 10 instanties van mijn model voor aan. En geeft bij het aanmaken een verwijzing naar zichzelf mee, zodat ik binnen de models ook een verwijzing naar de goede database heb. Ze komen er immers net uit!

Voor vaker voorkomende queries, bijvoorbeeld 'vind model waarvan primary key = a' gebruik ik wel een simpele aanroep naar het model, maar op zo'n mannier dat de 'factory' eerst wordt aangemaakt door de controller (via een parent-klasse met dit soort handige methods) die dus weer de instantie van de huidige database kan meegeven. $this->models->Persoon->findById(14); Via __get kan je een heleboel gemene trucjes uithalen :) Weer wordt de data via de PDO instantie van IHGApplication (via de controller) gebruikt, en dus weer krijgen alle models een verwijzing naar de database. Dus ik zou in een model Topic nu gewoon findPosts kunnen maken, hij heeft al toegang tot de database.

Let overigens wel op dat je niet alle SQL wilt weglaten of genereren. In mijn idee is dat niet echt handig achteraf. Het staat misschien wel netjes, en in het begin levert het kortere code op, maar wanneer je nu een extra veld wilt selecteren, of een JOIN erbij wilt maken, of een iets ingewikkeldere WHERE-voorwaarde wilt opstellen gaat dat echt enorm onhandig worden. Daarnaast veranderen de queries amper, en is het dus eigenlijk overbodig om ze iedere keer opnieuw te genereren. Wat wel een goeie gewoonte is is om de veelgebruikte queries in methods van een soort factory onder te brengen, zodat je gemakkelijk deze queries kan aanpassen en verbeteren, en je niet gaat kopiëren en plakken. Zodra je dat gaat doen, gaat er waarschijnlijk iets mis. Knippen en plakken is daarentegen weer wel een goeie handeling, want dat betekent dat je constant je indeling zit door te rekenen en te verbeteren ;)

edit: jezus, kan ik serieus geen korte posts meer schrijven tegenwoordig?
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Frank -

Frank -

21/02/2008 01:48:00
Quote Anchor link
Quote:
Daarnaast veranderen de queries amper
Gebruik voor dat soort zaken een VIEW, dat maakt de SQL in je PHP-code een heel stuk eenvoudiger.

Daarnaast is een VIEW eenvoudiger te optimaliseren, hier zijn prima indexen op te maken, je weet dat ze niet zo maar veranderen. Dit komt de performance zeker ten goede.

Met VIEW's kun je eveneens de rechten op de database beter gaan regelen, dat zorgt weer voor meer veiligheid, ook altijd een belangrijk onderwerp.
 
Lasse

Lasse

21/02/2008 12:15:00
Quote Anchor link
@jelmer: Je hebt inderdaad een punt als je zegt dat je 'speciale' querys uitvoert in de controller.

Maar jij werkt waarschijnlijk met één index bestand voor je hele website, waar je dan de juiste controller in included? Persoonlijk houd ik meer van de aanpak dat je verschillende functies van de website ook echt onderbrengt onder meerdere rechtstreeks aan te roepen pagina's. Daarom zal ik dus die IHGApplication niet nodig hebben, want de controller staat gewoon meteen al in de pagina. En het initialiseren van services waar jij het over hebt kan dan gewoon in de desbetreffende controller gebeuren. Maar dat is denk ik maar net welke stijl je preffereert.

Dank jewel voor je uitleg... Daar heb ik heel wat aan.

@pgFrank:
Een view gebruiken is inderdaad ook een goed idee. Bedankt voor de tip!
 
Lasse

Lasse

25/02/2008 20:58:00
Quote Anchor link
Hier ben ik weer, met een ander probleem:

Stel ik heb de klasse Topic. Deze gaat een compositie aan met de klasse Post. Dat houd dus in dat de klasse Topic een variabele heeft met instanties van Post. Het probleem is nu: Wanneer haal ik welke data op uit de database...
Ik kan bijvoorbeeld meteen als ik een instantie van Topic aanmaak alle Posts ook uit de database halen. Dat met het risico dat al die Post instanties helemaal niet gebruikt gaan worden. Ook kan ik een specifieke post pas uit de database halen als hij ook echt nodig is (bv bij het aanroepen van $topic->nextTopic();). Het nadeel is dan dat ik allemaal aparte query's nodig heb, wat ook niet echt meehelpt voor de performance...

Hoe zouden jullie dit aanpakken? Alvast bedankt voor de hulp.
 
Jelmer -

Jelmer -

27/02/2008 08:45:00
Quote Anchor link
"Wanneer je ze nodig hebt" lijkt mij het meest logische antwoord. Ik zou een 'getter' voor je posts maken die de array met posts teruggeeft. Is de array nog niet intern geset, dan haal je ze op uit de database.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class Topic {
    protected $posts;
    
    public function getPosts()
    {

        if(is_null($this->posts)) {
            $stmt = $pdo->prepare nogwat
            $this->posts = $stmt->fetchAll();
        }

        
        return $this->posts;
    }
}

?>

Nu worden de posts alleen opgehaald wanneer ze voor het eerst nodig zijn. Daarna staan ze in het object zelf en is de database niet meer nodig.

Eventueel kan je nog een aantal en een offset als parameter meegeven aan getPosts, zodat hij daarmee een LIMIT-statement vult. Stel dat je dan een topic hebt met 100 posts en je wil er maar 20 weergeven, dan kan je die andere 80 ongeroerd laten. Het is dan wel handig om ook deze 2 parameters even op te slaan ergens, zodat je kan weten of je meer posts uit de database moet halen of dat de $posts-array vol genoeg is bij een volgende aanroep.
 



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.