Hi!
class siteBuilder {
protected $html; // warum sollte das public sein?
Warum nicht?
Weil die Getter-Methode dann sinnfrei ist. Man könnte hier auch ein wenig PHP-Magie anwenden und __get benutzen.
Oder auch: warum protected und nicht private?
Das ist eine Design-Frage - wenn die Klasse nicht bestimmbar final ist, wähle ich immer protected, da evtl. geerbt werden wird.
Es gibt keine Verordnung, dass Eigenschaften nicht öffentlich sein dürfen.
Wo habe ich denn verordnet?
Ebenso gibt es keine, dass auf Eigenschaften nur über Zugriffsmethoden zugegriffen werden darf.
Es ist aber eine Getter-Methode im vorliegenden Fall vorhanden, oder?
Inwieweit das eine oder andere sinnvoll ist, hängt von der Aufgabenstellung ab, die uns jedoch nicht bekannt ist.
Ja - ACK! Mein Beitrag war auch nur als Vorschlag und Hilfestellung beim Bau der *ersten* Klasse zu verstehen und nicht als Dogma;-)
public function getHTML($template) {
// hier fehlt eine Prüfung, ob $template ok ist!!"ok" in welcher Hinsicht?
Gültig, zulässig - das sollte aber OP nachfragen denn Dir untetrstelle ich, dass Du weißt was ich meine.
public $html = file_get_contents('template/'.$template);
Diese Zeile ist weiterhin fehlerhaft. $this->html = ...
Stimmt - die habe ich 'vergessen' bzw. überlesen.
venty: Hast du auch daran gedacht, dass der Dateizugriff aus vielerlei Gründen misslingen kann?
Ich habe daran gedacht, deshalb mein Hinweis.
public function returnHTML() {
return $this->html; // $this ist wichtig!!Ja. Was ist allerdings, wenn returnHTML() aufgerufen wird bevor getHTML() ein Template besorgt hat.
Da fehlt noch ein Error-Handling, ja!
Außerdem wäre zu überlegen, wie sinnvoll es ist, den Zugriff so zu trennen.
Ich habe OP so vertsanden, dass das Beispiel zu Lernzwecken dienen soll - "erstelle das erste mal eine klasse".
off:PP
"You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)