[PHP] Was kann ich besser coden! Benötige Hilfe!

Grave-Digger

Banned
Registriert
Juni 2005
Beiträge
253
Hiho!

Ich hab hier mein newwscript und das ich völlig schlampig gecodet finde ich! Ich habs halt selbst so gemacht!

Könntet ihr mir Tips geben wie ich den PHP code vom HTMl trennen kan?

Hier mal der code:

*HIER IST DER PHP SOURCE CODE*

Danke schonmal!

Könntet ihr mir vllt erklären wie ich einen Template Parser code? :king:
 
OOP - lesen und halbwegs verstehen

Nach diesem Prinzip baust du eine Klasse für News.
Die Klasse könnte folgendermassen aufgebaut sein:
PHP:
# konstruktor
CNews::CNews($database_handle)
#zum speichern von newseinträgen
CNews::hinzufuegen($ueberschrift, $text, $author)
/* gibt array mit news zurück
news (
  id,
  titel,
  ...
)*/
CNews::holen($reihenfolge = 'time DESC', $offset = 0, $limit = 10)

Jetzt hast du das News-Modul einfachst gekapselt. Du musst zum News holen und in einen Array-Speichern nur noch folgendes aufrufen
PHP:
$news = $News->holen();
print_r($news);

Bei den Templates gibt es 2 Ansätze:
  • Ein Template wo Platzhalter für die Variablen gibt, welche ersetzt werden müssen z.B.
    Code:
    <div><h3>%NewsTitel%</h3></div>
    Hierfür brauchst du einen Templateparser (beispiel).
  • Ein Template dass Echo-Anweisungen an den entsprechenden Stellen hat z.B.
    Code:
    <div><h3><?php echo $tpl_news_titel; ?></h3></div>

Ich persönlich finde die 2. Methode besser, weil sie weniger Rechenzeit und weniger Arbeitsspeicher verbraucht.

Die 2. Lösung würde dann z.B. so aussehen:

PHP:
include_once 'db.php';
#weitere includes


include_once 'head.tpl';
$DB = mysql_connect(...);

$News = new CNews($DB);

$posts = $News->holen();

foreach($posts as $Eintrag) {
    list($tpl_news_titel, ...) = $Eintrag;

    include 'news.tpl';
}

include_once 'foot.tpl';
 
Schau dir mal für Templates Smarty an.
Es ist eine sehr mächtige Template-Engine, die den Code in PHP übersetzt. Du hast also keine besonderen Performanceeinschränkungen.
Für den Einstieg ist es auch ganz gut dokumentiert.

Das mit dem Objektorientierten Ansatz ist sicherlich auch nicht schlecht, auch wenn du bei der Namenswahl von ein paar Variablen vielleicht auf PHP5 Kompatibilität achten solltest.

Viel Erfolg mit deinem sauberen Code! :daumen:

Links, die nicht unterstrichen sind, sieht man ja fast nicht :rolleyes:
 
Zurück
Oben