Zum Inhalt springen

[PHP] OOP - Klasse in eigene Datei... aber wie?


Empfohlene Beiträge

Hi,

also ich habe eine Klasse geschrieben, die recht lang wurde (ca 500 Zeilen). Nun wollte ich die der Übersicht halber in eine eigene Datei packen und in einer anderen Datei die Objekte erzeugen. Hatte gedacht, ich könne über require() die Klasse-Datei einbinden, aber leider kommt dann immer beim Erzeugen eines Objektes ein Fehler, dass die Klasse nicht gefunden wurde.... wie mache ich das nun? Ich stehe auf m Schlauch... *urgs*

Beispiel wie ich es dachte:


klasse.php:


class MeineKlasse

{

      var x

      ....

}


inhalt.php:


require('klasse.php');

...

objekt1 = new MeineKlasse();

Und das geht nicht über require() ... :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

muss auch.... habe aber mal meinen browser geschlossen, cache geleert und dann nochmal aufgerufen... dann gehts .... sehr strange.

aber dankeschön :))))

Während der Entwicklung einer Seite immer den Reload mit CTRL + F5 machen, dann leert er den Cache vorher.

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

CTRL + F5

Den Shortcut kannte ich noch gar nicht, danke :)

500 Zeilen sind definitiv zu lang.

Warum denn? Ich finde, man solle die Klassen nach Aufgaben definieren. Wenn eine Klasse eine umfangreiche Aufgabe hat und es viele Attribute gibt (dementsprechend auch viele Getter/Setter), man noch viel dokumentiert (ich z.B. schreibe über jede Methode einen schön formatierten 5-Zeile zur Aufgabe der Methode), dann ist das doch ok.

Als Beispiel nur mal eine Klasse, die die Kommunikation mit einem Datenbankserver übernimmt. Wenn du dort alle von PHP unterstützen Datenbanken ansprichst (quasi als universelle DB-Klasse), Exceptions abfängt, Error-Handling etc. dann kommt man schnell auf die Länge.

Man sollte doch nicht alleine die Länge einer Datei als Kriterium nehmen für eine Klasse sondern die Aufgaben. Wenn eine Klasse mehrere Aufgaben hat, dann muss man auslagern - aber wenn nicht dann halt ich es nicht gerade für sinnvoll.... so long... :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

(dementsprechend auch viele Getter/Setter),

Ich muss zugeben, dass ich in PHP bisher noch nicht objektorientiert programmiert habe, aber das OO Konzept ist mir schon geläufig. Wenn du sehr viele Getter und Setter benutzt, ist das u. U. schon ein Designproblem, denn dann kannst du auch prüfen, ob ein direkter Zugriff auf die Variable nicht sinnvoll wäre.

Als Beispiel nur mal eine Klasse, die die Kommunikation mit einem Datenbankserver übernimmt. Wenn du dort alle von PHP unterstützen Datenbanken ansprichst (quasi als universelle DB-Klasse), Exceptions abfängt, Error-Handling etc. dann kommt man schnell auf die Länge.

Genau das soll ja nicht passieren. Die Kunst besteht ja darin, erstmal die grundlegendsten Dinge in eine Klasse zu packen, und konkretere Klassen davon erben zu lassen. So gäbe es z. B. eine Klasse dbAccess, von der die Klasse mysqlAccess und oracleAccess erben würden. So hättest du die letzteren beiden Klassen schonmal nicht so extrem vollgestopft.

Man sollte doch nicht alleine die Länge einer Datei als Kriterium nehmen für eine Klasse sondern die Aufgaben. Wenn eine Klasse mehrere Aufgaben hat, dann muss man auslagern - aber wenn nicht dann halt ich es nicht gerade für sinnvoll.... so long...

Da hast du natürlich recht, aber bei 500 Zeilen gehen bei mir nur die Alarmglocken an. :)

Aber da ich das OO-Konzept von PHP 5 noch nicht so verinnerlicht habe und nicht weiss, wie konsequent man dort OO programmieren kann, kann ich dazu weiter erstmal nix sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich muss zugeben, dass ich in PHP bisher noch nicht objektorientiert programmiert habe, aber das OO Konzept ist mir schon geläufig. Wenn du sehr viele Getter und Setter benutzt, ist das u. U. schon ein Designproblem, denn dann kannst du auch prüfen, ob ein direkter Zugriff auf die Variable nicht sinnvoll wäre.

PFUI, PFUI, PFUI. Niemals nicht direkten Zugriff auf Variablen der Klasse *Hölle_Hölle_Hölle* ;-)

Wenn man zuviele getter und setter hat, dann ist das in PHP5 kein Problem mehr (Stichwort __get und __set) Das hilft ein wenig um die Menge zu lindern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man kann sich die Exceptions ins php4 schreiben, so wird man sich __get und __set bestimmt auch irgendwie selbst schreiben können.

Das würde mich sehr interessieren wie das geht.

Hast du dazu ein paar Links?

Sicherlich muss man dazu ein paar C libs selbst einbinden oder?

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das würde mich sehr interessieren wie das geht.

Hast du dazu ein paar Links?

Sicherlich muss man dazu ein paar C libs selbst einbinden oder?

Gruß,

Markus

Also die Exceptions in php4 hab ich bei der Blogging-Software pLog gefunden. Musste hier mal gucken. Da gibt es eine komplette Hirarchie an Klassen (im Delphi-Stil). Musste dir dann nur mal raussuchen. So wie es strukturiert ist, sollteste da keine großen Probleme haben, die zu finden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...