OOP database class + error class

  • Beste,


    Momenteel probeer ik een site te schrijven in oop in samenwerking met een template parser.


    Nu wil ik een database class en error log class gaan implementeren in de site.


    Wat is een goede manier om deze 2 dingengoed aan te roepen in mijn classes.


    Momenteel maak ik een connectie buiten de class, en zorg dat hij aan de constructor wordt meegegeven. Maar is er misschien ook een manier om beide zonder aan een constructor mee te geven te laden.


    Hier was ik wel benieuwd naar.


    Met vriendelijke groet,


    Luc

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Je kan het singleton pattern implementeren.


    Het komt neer op een private/protected constructor. Een statische variabele waar je de enige instantie van de connectie in opslaat en een statische methode die een nieuw object aanmaakt als dat nodig is, opslaat in de statische variabele en deze daarna returned.
    Er zijn genoeg voorbeelden van te vinden.

  • Bedankt heb nu zo'n registry class gevonden en bewerkt in mijn applicatie.


    Wat mij betreft mag dit topic op slot maar als iemand anders nog ideeen heeft of tips om goed in classes te schrijven etc hoor ik dat graag is trouwens ook interresant voor anderen



    EDIT:
    Momenteel kan ik de registry nog altijd niet aanroepen in een andere class.


    Code
    Class Db
    {
        public function connect()
        {
               $registry->log->set("connectie aanmaken");
        }
    }


    Hopelijk kunnen jullie me ermee helpen.

  • Een registery of bootstrap classe is de classe waar je vaak je applicatie mee begint, in dit bestand sla je al je objecten in op waardoor je deze door heel je applicatie kan oproepen.
    Dit kan met een singleton pattern wat Darsstar zegt, of met getters en setters. Hierbij heeft elke methode zijn voor- en nadelen.
    Het singleton pattern is Stefan.J zegt alleen niet aan te raden, maar is mogelijk omdat het allen voor het aanroepen is van je library.


    Een heel basic maar slecht voorbeeld
    application.php


    index.php (die van je applicatie)

    PHP
    require('application.php');
    $app = new Application();
    
    
    $app->db; //om je database aan te roepen


    Mocht je hiervan het principe niet snappen is OOP denk ik nog een te grote stap voor je. Dan raad ik je aan om een tijde te gaan kloten met Java of C# omdat je hierin goed het pricipe van OOP aanleerd.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!