• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Overig
  4. Check-Me

Forum

  • [PROJECT] Gamekeuring.nl - Hét onafhankelijke keuringsplatform voor maffiagames & RPG's!

    frio 22 september 2026 om 16:40
  • Ictscripters / Koen

    Aaron 22 september 2026 om 15:07
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Lijno 19 september 2026 om 19:37
  • Kweekrijk - van stekje tot Imperium

    Lijno 14 september 2026 om 23:00
  • Crimora.nl

    Jeffrey.Hoekman 8 september 2026 om 18:49
  • Programmeren geocht die samen met mij maffiaskrill.com

    Dennii 2 september 2026 om 11:15
  • Gezocht mafiasnextkill

    mrsenati 1 september 2026 om 17:38
  • nieuwe game

    tigermaffia 27 augustus 2026 om 18:02

Marktplaats

  • [TE KOOP] CloutClubRPG.nl – Complete Maffia Rap & Street Clout RPG (Kant-en-klaar concept)

    Lijno 28 september 2026 om 18:48
  • Straatbaas.eu – complete Nederlandstalige en Engelstalige online maffia-RPG

    Syntax 25 september 2026 om 14:05
  • 402 Nieuwe Domeinnamen Augustus 2026

    shiga 19 september 2026 om 13:53

[Check] OOP class

  • J.Rijdes
  • 21 december 2013 om 17:06
  • J.Rijdes
    Elite members
    Berichten
    1.581
    • 21 december 2013 om 17:06
    • #1

    Hallo,

    Momenteel ben ik bezig met het oefenen van OOP programmeren. Ik heb nu een class gemaakt wat werkt, maar is het ook op de juist manier en gebruikt ik niet teveel overbodige dingen in mijn class? Graag hoor ik van jullie.

    Mijn script:

    PHP
    <?php
    
    
    include_once('connection.php');
    
    
    class Melding {
    
    
    	public $db;
    
    
    	public function __construct(){
    		$this->db = new Connection();
    		$this->db = $this->db->dbConnect();
    	}
    
    
    	public function showMeldingen() {
    		$st = $this->db->prepare("SELECT * FROM meldingen");
    		$st->execute();
    		$show = $st->fetchAll();
    
    
    		foreach($show as $row) {
    			echo "<b> " . $row['melding_titel'] . " </b> ";
    			echo "<br>";
    			echo nl2br($row['melding_eenheden']);
    			echo "<hr>";
    		}
    	}
    	public function postMelding($melding_titel, $melding_eenheden) {
    		if($melding_titel == "") {
    			return "Geen titel ingevuld.";
    		} elseif($melding_eenheden == "") {
    			return "Geen eenheden ingevuld";
    		} else {
    			$st = $this->db->prepare("INSERT INTO meldingen (melding_titel, melding_eenheden) VALUES (?, ?)");
    			$st->BindParam(1, $melding_titel);
    			$st->BindParam(2, $melding_eenheden);
    			$st->execute();
    		}
    	}
    }
    
    
    ?>
    Meer tonen

    Alvast bedankt.

  • Gast, wil je besparen op je domeinnamen? (ad)
  • Luc
    Software Engineer
    Berichten
    1.986
    • 22 december 2013 om 13:32
    • #2

    Waarom heb je $db public gemaakt?

    Voorkom in je class dat je gaat echo'en dat is niet super netjes.

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • WHMCSAddons
    Meester
    Berichten
    2.411
    • 22 december 2013 om 13:36
    • #3

    Met Luc eens, een variable die (ik vermoed) als database connectie gaat moet je binnen de class houden, erbuiten is niet nodig.

    private - Only the current class will have access to the field or method.
    protected - Only the current class and subclasses (and sometimes also same-package classes) of this class will have access to the field or method.
    public - Any class can refer to the field or call the method.

    http://stackoverflow.com/questions/1020…ted-programming

  • J.Rijdes
    Elite members
    Berichten
    1.581
    • 22 december 2013 om 17:16
    • #4

    Bedankt, dit ga ik gelijk aanpassen. Hoe kan ik dat met de echo beter oplossen? Door een return of een hele andere manier?

  • M.Beers
    Elite members
    Berichten
    460
    • 22 december 2013 om 18:45
    • #5
    Citaat van Wmdiensten

    Met Luc eens, een variable die (ik vermoed) als database connectie gaat moet je binnen de class houden, erbuiten is niet nodig.

    private - Only the current class will have access to the field or method.
    protected - Only the current class and subclasses (and sometimes also same-package classes) of this class will have access to the field or method.
    public - Any class can refer to the field or call the method.

    http://stackoverflow.com/questions/1020…ted-programming

    Nog een aanvullig hierop waarvan ik niet helemaal zeker weet of dit al doorgevoerd is in PHP maar vast en zeker gaat komen...
    Wanneer je geen public, protected of private gebruikt is het alleen toegestaan binnen de package waar je classe zich in bevindt. Vanaf PHP 5.3 kan je gebruik maken van packages in php namespaces genoemd.

    http://php.net/namespaces

    Citaat

    Bedankt, dit ga ik gelijk aanpassen. Hoe kan ik dat met de echo beter oplossen? Door een return of een hele andere manier?

    Het is gebruikelijk om je uitvoer/acties en je layout gescheiden te houden. Het meest gebruikte pattern is hiervan het MVC pattern. Dus eigenlijk echo je nooit wat maar return je de array die je vervolgens verwerkt in je layout/html bestanden.

    Dit was mijn spreekbeurt, zijn er nog vragen?

  • Victor
    Meester
    Berichten
    1.680
    • 22 december 2013 om 20:36
    • #6

    Een object georienteerde class hoor je te kunnen hergebruiken zonder de code aan te passen. Dat kan in dit geval niet. Mocht ik een Engelse site hebben, zou ik de meldingen moeten aanpassen. Misschien wil ik wel dat er helemaal geen melding komt, maar dat hij alleen wordt gelogd.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • Stefan.J
    Meester
    Berichten
    2.358
    • 22 december 2013 om 21:48
    • #7

    Alles wat hierboven wordt gezegd klopt, maar wat ik nog niet heb gehoord is dat je fundamenteel de fout in gaat.

    Een melding, wat kan die? Een melding kan denk ik niet een melding opslaan of alle meldingen weergeven. Een melding is in jouw geval een domeinobject en heeft vooral dingen en kan niet zozeer iets zelf doen. Een melding heeft bijvoorbeeld een titel en een bericht.

    De class hierboven is daarom ook de MeldingService, en niet de melding zelf.. En dat object hoor je ook te hebben!

  • J.Rijdes
    Elite members
    Berichten
    1.581
    • 22 december 2013 om 21:56
    • #8

    Bedankt allen. Ik heb even wat aanpassing gedaan en ben aan het nadenken hoe ik het beter zonder echo's of return's met tekst kan doen, maar met variabelen. Ik ben volgens mij een eindje op weg, maar ook op de goede weg?

    PHP
    <?php
    
    
    include_once('connection.php');
    
    
    class MeldingService {
    
    
    	private $db;
    
    
    	public function __construct(){
    		$this->db = new Connection();
    		$this->db = $this->db->dbConnect();
    	}
    
    
    	public function checkMeldingTitel($input, $error) {
    			if($input == "") {
    			return $error;
    			} else {
    				$error_count = 0;
    			}
    		}
    
    
    	public function checkMeldingEenheden($input, $error) {
    			if($input == "") {
    			return $error;
    			} else {
    				$error_count = 0;
    			}
    		}
    
    
    	public function saveMelding($melding_titel, $melding_eenheden, $error) {
    			if($error_count == 0) {
    			$st = $this->db->prepare("INSERT INTO meldingen (melding_titel, melding_eenheden) VALUES (?, ?)");
    			$st->BindParam(1, $melding_titel);
    			$st->BindParam(2, $melding_eenheden);
    			$st->execute();
    			} else {
    				return $error;
    			}
    		}
    	}
    }
    
    
    ?>
    Meer tonen
  • WHMCSAddons
    Meester
    Berichten
    2.411
    • 23 december 2013 om 00:29
    • #9

    Waarom maak je geen Class van je database en roep je alles door middel van 1 bestand die een autoload heeft ?

    http://php.net/autoload

Registratie

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

Nu registreren Aanmelden

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

  • 2 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
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