PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Artikel-Klasse


MadMan2k
2005-02-19, 12:49:28
Ich versuche mein CMS Objektorienterter zu gestalten, doch da heb ich mich irgendiwie verrant - glaube ich zumindest.

Hier meine Artikel-Klasse, die den Inhalt einer Seite aus der DB holt und diesen dann formatiert ausgibt:


class Article extends ModuleCommon
{
var $id;
var $content;
var $page;
var $pager;
var $pages;

function Article() {
if(!isset($_GET['id'])) {
$this->error = new Error(L_NO_PARAM);
return false;
}

$this->id = (int)$_GET['id'];
$this->page = isset ($_GET['page']) ? (int)$_GET['page'] : 1;
$this->content = $this->fetchContent();
$pages = $this->fetchPages();

$this->pager = new Pager($pages, $this->page);
}

function fetchContent() {
//..
}

function fetchPages() {
//..
}

function render() {
echo '<h2>'. $this->content['title'] ."</h2>\n";

echo $this->content['text'];

$this->pager->render();
}
}

$seite = new Article;


ist es sinnvoll/ guter Stil alles in den Konstruktor zu stopfen?
wie könnte man das ganze eleganter Lösen?

clm[k1]
2005-02-19, 13:13:01
ich würde:

1.) die get-requests nicht in die klasse einbauen, sondern vorher abfragen und dem konstruktor übergeben
2.) je nach dem wie die per get übergebenen variablen genutzt werden, diese in ein htmlentities($_GET[], ENT_QUOTES) packen (aus sicherheitsgründen)

vor allem punkt 1 solltest du überdenken, das macht die ganze sache sonst recht unflexibel.


just my 2 cent
clm[k1]

TheRealTentacle
2005-03-09, 11:41:25
Gibt es irgendwo im Netz ein gutes Tutorial zur OOP mit PHP?

Welche vorteile bieten mir Klassen im vergleich zu Normalen funktionen?

MadMan2k
2005-03-09, 13:20:56
OOP:
http://de.wikipedia.org/wiki/Oop

Tutorial:
http://www.php.net/manual/de/