• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. Advanced Programming

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

[OO] Voorbeeld class

  • Patrick
  • 29 maart 2010 om 17:30
  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 29 maart 2010 om 17:30
    • #1

    Nou even voor mensen om te controleren of ik een beetje OO kan denken werd bij aangeraden dit te doen door een blog systeem onder te verdelen in een classes dus dat doe ik an maar ook:

    PHP
    class User { 
    
    
    public function register () {}
    public function login () {}
    public function settings () {}
    
    
    }
    
    
    class Blog {
    
    
    public function create_item () {}
    public function add_reply () {}
    public function get_overview () {}
    
    
    }
    
    
    class Validate {
    
    
    public function validate_get () {}
    public function validate_post () {}
    
    
    }
    
    
    class Database {
    
    
    public function __construct () {}
    public function SqlQuery () {}
    public function SqlFetchQuery () {}
    public function __destruct () {}
    
    
    }
    Toon Meer

    dit is natuurlijk basic, bij database class kan er natuurlijk veel meer bij maar dit is het basis idee ervan, opmerkingen altijd gewenst onderbouw ze wel, als de structuur goed is ga ik het uitbouwen :)

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dein
    Master
    Berichten
    2.614
    • 29 maart 2010 om 17:39
    • #2

    Ik ben zelf ook niet goed in OOPHP maar waarom ga je dit doen:

    PHP
    class User {  
    
    
    public function register () {} 
    public function login () {} 
    public function settings () {} 
    
    
    }

    Die functie settings vind ik persoonlijk maar raar, waarom ga je settings in een functie steken? Ik zou het eerlijk gezegd zo doen:

    PHP
    class User_settings extends User { }


    En dan zou je in principe die functies op protected kunnen zetten.

    Om eerlijk te zijn is dit nog geen OO maar eerder classes en functies maken, OO is een denkwijze die hier nog niet echt klopt.

    Verklein je links met http://url2s.nl

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 29 maart 2010 om 17:41
    • #3

    Daarom post ik dit, om mensen zoals jullie ervoor kunnen zorgen dat ik dat wel ga doen :3

  • Dein
    Master
    Berichten
    2.614
    • 29 maart 2010 om 17:52
    • #4

    Ik zou zeggen ga eens in de source code van Wordpress of een andere open source kijken en leer daaruit, het is allemaal strict OOP dus de beste manier om iets te leren, de verschillende functies e.d kun je via de PHP.net site opzoeken.

    Ik denk dat die methode het beste werkt om OO denkwijze te begrijpen. Uiteraard is veel lezen en doen ook een manier.

    Verklein je links met http://url2s.nl

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 29 maart 2010 om 20:35
    • #5
    Citaat

    Om eerlijk te zijn is dit nog geen OO maar eerder classes en functies maken, OO is een denkwijze die hier nog niet echt klopt.

    Er wordt veel gezegd dat OO een denkwijze is. Daar ben ik het niet mee eens. Om goed object georiënteerd te programmeren moet je op een andere wijze denken, maar dat is iets anders dan wanneer object oriëntatie een denkwijze zou zijn.

    Objecten
    Wanneer je goed object georiënteerd wilt kunnen programmeren moet je weten wat een object, een eigenschap en een methode is. Object is eigenlijk gewoon een object, zoals de naam als zegt. Bijvoorbeeld een auto, een huis, een computer en een fiets. Wanneer je een website maakt zou dat betekenen dat objecten bijvoorbeeld een gebruiker is, een database, een databasetabel (!) en een reactie op een forum.

    Methodes
    Methodes zijn actief die met het object kunnen worden uitgevoerd. Een database kan bijvoorbeeld een query uitvoeren, en een reactie kan worden verwijderd, toegevoegd of worden beoordeeld.

    Eigenschappen
    Daarnaast heeft een object eigenschappen. Eigenschappen zijn waardes die afhankelijk zijn van de instantie van dat object. Een gebruiker kan bijvoorbeeld als eigenschappen een gebruikersnaam e-mail en voornaam hebben. Maar ook kan een gebruiker als eigenschappen zijn forum reacties hebben. Deze reacties zijn vervolgens dan zelf ook weer objecten, dit licht dan ook iets ingewikkelder. Een database heeft als eigenschappen bijvoorbeeld de naam, het aantal uitgevoerde query's en een type. Maar NIET het resultaat van de uitgevoerde query, tenslotte kan één database meerdere query's uitvoeren en dus meerdere resultaten opleveren. De resultaten zullen dus ook weer object op zich zijn (die wel weer toe kunnen behoren aan het database object).

    Ik hoop dat ik dat een beetje duidelijk heb kunnen maken zo.

    De wijziging die dein voorstelt zal ik dan ook niet doorvoeren. Hij breid 'User' uit met 'User_Settings' terwijl 'User_Settings' geen 'User' is, maar iets heel anders. 'Administrator' kan bijvoorbeeld wel 'User' uitbreiden, tenslotte is een administrator een gebruiker.

    De user settings zijn denk ik de eigenschappen van de gebruiker, deze zou ik dus ook als eigenschappen in het object definiëren.

    Daarnaast zou ik nog een object item, reply en database result toevoegen.

    Ik zou je willen adviseren in je ontwerp ook de proporties (eigenschappen) toe te voegen, zo kunnen wij beter zien of je met een goed ontwerp van start gaat.

    Een interessante manier om dit soort applicaties te ontwerpen is UML. Echter denk ik dat dat voor dit topic veel te ver gaat.

    Ik ben benieuwd wat je er van maakt, en je kunt dus zeker nog feedback verwachten. Succes!:cheer:

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 29 maart 2010 om 20:49
    • #6

    Nee valt best mee, al hoewel UML ik wel de goedkope versie vind van normaliseren, maar goed normaliseren heb je echt een heel plan voor nodig voor je zoiets gaat beginnen en aangezien voor mij dit meer een test projectje is zodat ik OOP leer is dat niet echt handig naar mijn mening

    Nieuwe reactie samengevoegd met originele reactie op 29.03.10 23:10:53:
    We gaan even class voor class afwerken:

    PHP
    class user { 
        
        
        public function __construct ( )
        {
            if ( ! $db->connect ( ) )
            {
                
                $db->connect ( );
                
            }
        }
        
        public function register ($username, $password, $email)
        {
            
            
            
        }
        public function login ($username, $password)
        {
            
            
            
        }
        public function settings ( $username, $setting, $value ) 
        {
            
            
            
        }
    
    
    }
    Toon Meer

    userclass comments?

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 30 maart 2010 om 09:09
    • #7

    Vraagje aan jou: Waar wil jij $db vandaan halen?
    Is het niet slimmer om de user class te extenden naar db class?

    En verder zou ik denk zelf login, register in een auth class zetten.
    Dingen zoals settings dan weer in de user class. ;)

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 30 maart 2010 om 09:20
    • #8

    Waarom extenden vanuit de database, je kan hem toch ook gewoon de rechten mee geven doormiddel van public want als je hem nu extend, kan je hem later niet meer gebruiken want dan heb je weer dezelfde user class nodig en moet je hem weer aanpassen en aangezien het hele OO idee is dat je het kan herbruiken zonder aanpassen is dat dus niet echt handig.

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 30 maart 2010 om 16:05
    • #9
    Citaat

    Is het niet slimmer om de user class te extenden naar db class?


    Een gebruiker is niet bepaald vergelijkbaar met een database.

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 30 maart 2010 om 19:07
    • #10

    Mijn commentaar: Properties!

    Ik zou het meer doen in de trend van:

    PHP
    <?php
    
    
    class user { 
    	protected $db;
    
    
    	protected $data = array(
    		'username' => '', 
    		'password' => '', 
    		'email'    => '',
    	);
        
        
    	public function __construct (array $values = array())
    	{
    		$db->connect();
    
    
    		if(!empty($values)) {
    			$this->values($values);
    		}
    	}
        
    	public function register ()
    	{
    		if(empty($data['username']) OR empty($data['password']) OR empty($data['email'])) {
    			throw new Exception('Not all values are set.');
    		}
            
    		//Registreren
    	}
    
    
    	public function values(array $values) {
    		foreach($values as $key => $value) {
    			if(array_key_exists($key)) {
    				$data[$key] = $value;
    			}
    		}
    	}
    
    
    	public function login()
    	{
    		if(empty($data['username']) OR empty($data['password'])) {
    			throw new Exception('Username and password has to be set.');
    		}
    		
    		//Inloggen
    	}
    	
    	/**
    	* Ik heb deze laten staan, maar snap niet helemaal wat je me deze functie wil.
    	*/
    	public function settings ($setting, $value ) 
    	{
    		
    		
    	}
    
    
    }
    
    
    ?>
    Toon Meer
  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 30 maart 2010 om 21:36
    • #11

    @Killingdevil
    Ik dacht dat ongevangen Exceptions zorgden voor een warning?
    Dat is bij mij meestal het geval tenminste...

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 30 maart 2010 om 22:01
    • #12

    Richard op wat voor manier gebruik jij de exception dan?
    Je kan het ook op deze manier gebruiken:

    PHP
    try
    {
         if(empty($_POST['naam']))
         {
             trow new Exception('Er is geen naam opgegeven.');
         }
    }
    catch(Exception $e)
    {
       echo $e->getMessage();
    }
    Toon Meer

    Zolang jij eigenlijk de exception echo't via bijv. zo'n catch dan moet hij het gewoon doen?

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 30 maart 2010 om 22:05
    • #13
    PHP
    <?php
    
    
    $user = new User(array('username' => 'Darsstar', 'email' => '[email protected]'));
    
    
    
    
    try
    {
    	$user->register();
    	mail(blabla); // wordt al niet meer uitgevoerd
    	header('Location: woef.php;');
    }
    catch(Exception $e)
    {
    	// zorg dat de fout wordt weergeven
    }
    Toon Meer

    Wat ik duidelijk probeer te maken:
    Dan moet je de Exceptions maar vangen!
    Natuurlijk hoef je Exceptions niet op deze manier te gebruiken.

    miauw!

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 31 maart 2010 om 00:30
    • #14

    Dank je Darrstar. Je zegt precies wat de bedoeling is.

    Exceptions hoef je niet in de functie zelf af te vangen (dat zou een leuke zijn, hoe kun je dan ooit een exception gooien?). De manier waarop ik ze in het voorbeeld heb gezet zijn ze nuttig om foutmeldingen te tonen of de code af te kappen als de actie niet lukt. Een makkelijkere en duidelijkere flow dan wanneer je FALSE of TRUE zou retourneren.

    Maar dat geeft Darsstar al heel mooi aan met zijn voorbeeldcode.:)

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 31 maart 2010 om 09:39
    • #15
    Citaat van Killingdevil

    Dank je Darrstar. Je zegt precies wat de bedoeling is.

    Exceptions hoef je niet in de functie zelf af te vangen (dat zou een leuke zijn, hoe kun je dan ooit een exception gooien?). De manier waarop ik ze in het voorbeeld heb gezet zijn ze nuttig om foutmeldingen te tonen of de code af te kappen als de actie niet lukt. Een makkelijkere en duidelijkere flow dan wanneer je FALSE of TRUE zou retourneren.

    Maar dat geeft Darsstar al heel mooi aan met zijn voorbeeldcode.:)


    Ik denk dat je dat er beter direct even bij kon zetten dan. Veel mensen hier weten waarschijnlijk niet eens wat een exception is.

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 31 maart 2010 om 16:29
    • #16

    Dan kan ik er dus ook beter direct bijzetten wat een klasse is? En hoe waar je de accolades op je toetsenbord vind?

    Als het niet duidelijk is kun je vragen.:) Daarnaast weet het internet gigantisch veel.(b)

  • Dein
    Master
    Berichten
    2.614
    • 31 maart 2010 om 18:09
    • #17

    Dit topic is wel interessant voor de beginnede OOP'ers, even een highlight voor maken(is nog eens lang geleden trouwens :p)?

    Verklein je links met http://url2s.nl

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 1 april 2010 om 21:25
    • #18
    Citaat van Killingdevil

    Dan kan ik er dus ook beter direct bijzetten wat een klasse is? En hoe waar je de accolades op je toetsenbord vind?

    Als het niet duidelijk is kun je vragen.:) Daarnaast weet het internet gigantisch veel.(b)


    Misschien is het handig als je meteen onder alle posts de gehele qwerty keyboard layout zet :p

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design