Beste php-ers,

Ik ben net begonnen met mijzelf te verdiepen in classes in php. Ik wil graag mijn meest gebruikte query's in een klasse verzamelen zodat ik deze steeds kan hergebruiken bij verschillende klanten.

Nu is mijn vraag eigenlijk of ik op de goede weg ben en wat er eventueel aangepast/verbeterd kan worden aan mijn klasse zodat deze zowel veilig als juist is.

Hierbij ook de klasse zoals ik hem nu heb:


<?php
require("../Config/Variabelen.php");
// Klasse definiƫren:
class Nieuws{
    // Variabele voor het nieuwsid declareren:
	private $NieuwsId;

    // Constructor in de stijl van PHP 5
    public function __construct(){
		$this->NieuwsId;
    }
	//
    public function id_instellen($int){
        if(is_numeric($int)){
            $this->NieuwsId = $int;
		}
    }
	//
	public function AlleNieuws(){
		$resultaat = database_query("SELECT * FROM blogs WHERE published='1' ORDER BY id DESC");
		while($row = database_fetch_array($resultaat)){
			$Titel = TekstUitDatabase($row["titel"]);
			$Datum = TekstUitDatabase($row["datum"]);
			$Datum = date("d-m-Y H:i", $Datum);
			$Tekst = TekstUitDatabase($row["tekst"]);
			$Tekst = substr(strip_tags($Tekst), 0, 150)."...";
			
			echo "<h1>".$Titel."</h1><span class=\"datum\">".$Datum."</span><br /><br /><p>".$Tekst."</p><p><a href=\"".GLB_Website."Nieuws/".$row["id"]."/".str_replace(" ", "_", $row["titel"]).".html\">Lees meer &raquo;</a></p><span class=\"content_lijntje\">&nbsp;</span>";
		}
	}
	//
	public function NieuwsId(){
		if(!isset($this->NieuwsId)){
			exit("<br /><b>Fout:</b> Er is geen id meegegeven.<br />");
		}
		else{
			$resultaat = database_query("SELECT * FROM blogs WHERE id = ".$this->NieuwsId."");
			while($row = database_fetch_array($resultaat)) {
				$Titel = TekstUitDatabase($row["titel"]);
				$Tekst2 = TekstUitDatabase($row["tekst"]);
				$Tekst1 = nl2br($Tekst2);
				$Tekst = ubb(smiley($Tekst1));
				$Datum = TekstUitDatabase($row["datum"]);
				$Datum = date("d-m-Y H:i", $Datum);
				$Bron_naam = TekstUitDatabase($row["bron_naam"]);
				$Bron_url = TekstUitDatabase($row["bron_url"]);
				$Gebruikersid = TekstUitDatabase($row["poster_id"]);
				$Categorie = TekstUitDatabase($row["categorie"]);
				$Schrijver = TekstUitDatabase($row["poster"]);
				$ReactiesToegestaan = $row["reacties"];
				
				echo "<h1>".$Titel."</h1><span class=\"datum\">".$Datum."</span><br /><br /><p>".$Tekst."</p><span class=\"content_lijntje\">&nbsp;</span><p>Gepost door: ".$Schrijver." - Bron: <a href=\"".$Bron_url."\">".$Bron_naam."</a><br />Categorie: ".$Categorie."<br /><br />Reacties (".$reactiecount.")</p>";
			}
		}
	}
	//
}


Nieuws::AlleNieuws();	// Werkt naar behoren

// Nieuw object maken met de klasse:
$Nieuwsbericht = new Nieuws;
$Nieuwsbericht->id_instellen("2");
$Nieuwsbericht->NieuwsId();
?>
in echt OOP gaat het nog een stuk verder denk ik...

class Lode_Sql_Driver_Mysql{}
class Lode_Sql_Driver_Mysqli{}
class Lode_Sql_Driver_Pdo_Mysql{}
abstract class Lode_Sql_Adapter{}
abstract class Lode_Sql_Adapter_Mysql extends Lode_Sql_Adapter{
public function __construct(Lode_Sql_Driver $driver){}
}
interface Lode_Model_Interface{}
abstract class Lode_Sql_Model implements Lode_Model_Interface{
public function __construct(Lode_Sql_Adapter $adapter)
}

en dan hebben we nog niks eigenlijk... ook results en statements kun je heel goed abstraheren...
Je kan in theorie nog veeeeel verder door abstraheren, maar of je er in de praktijk ook gebruik van gaat maken, of dat je alleen maar overbodig veel complexiteit introduceert... Het ligt eraan waar en waarvoor je programmeert.

Reageren