OO-design problemen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Senior Javascript developer

Functie Het platform is gebouwd in een moderne JavaScript stack, die gebruikt maakt van:  React.js  Redux  TypeScript  Node.js  Google Cloud functions (node.js)  Semantic UI Alle code wordt getest en beoordeeld door collega developers. De continuous integration pipeline maakt het mogelijk om elke dag waarde te leveren aan hun klanten. Het ontwikkelproces is pragmatisch en gebaseerd op Scrum. Wat je zult doen: Ten eerste kun je nadrukkelijk jouw eigen stempel drukken op de technologie, het product en de cultuur van het bedrijf. Je bent bezig met het uitwerken van de architectuur van nieuwe functionaliteiten op

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

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

23/11/2024 14:12:46
 
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.