Hallo,
ich möchte mir von euch einmal erklären lassen, wie man sein Projekt am besten strukturiert.
Momentan habe ich folgende Klassen in PHP:
Class: Base
Class: Base -> User
Class: Base -> User -> LicenseManager
Class: Base -> User -> LicenseManager -> License
Nochmal erklärt:
Klasse Base ist halt die Basisklasse.
Diese Base-Klasse includiert ein anderes Dokument mit der Klasse User und diese wiederum die Klasse LicenseManager und diese License.
Klasse License bekommt beim initialisieren das Objekt von LicenseManager und LicenseManager beim initialisieren das Objekt von User und so weiter.
Die Base Klasse liegt im Ordner Base, dann gibts nen Ordner der nennt sich structures wo sich die User.php und die License.php drin befinden.
Die LicenseManager Klasse liegt im Ordner Base -> includes.
Meine Ordnerstruktur ist also folgende:
Base
|--->Base.php
|
|----includes
|----|--->LicenseManager.php
|
|----structures
|----|--->User.php
|----|--->License.php
So, und der ganze Ordner Base liegt in dem Verzeichnis "v3" auf meinem WebSpace.
Im Ordner v3 sind aber noch andere Ordner als Base. Zum Beispiel der Ordner gw2mh.
Darin befindet sich eine login.php.
In der login.php würde ich gerne die Base.php inkludieren.
Bedeutet ich habe in der login.php folgendes Statement verwendet:
Um in der Base.php jetzt die User.php einzubinden muss ich folgendes machen:
Wie man hier erkennen kann bedeutet das, dass die ganzen Klassen immer vom Hauptdokument (in diesem Fall login.php) abhängig sind.
Das Problem hierbei ist jetzt nämlich folgendes:
Wenn ich jetzt die Base.php von woanders inkludieren möchte stimmt die Pfadangabe nicht mehr.
Versuche ich die Base.php z.B. von hier zu inkludieren:
v3/login.php und nicht v3/gw2mh/login.php (wie vorher)
dann bin ich ja ein Verzeichnis zuvor und alle Pfadangaben in den Klassen stimmen nicht mehr.
Ich finde diese relativen Pfadangaben sind garkeine relativen pfadangaben in PHP. Das ist totaler schrott.
Man ist in dieser Ka**sprache nur mit Problemen umgeben die es in anderen Sprachen nie gegeben hätte.
Könnte mir vielleicht ne Einleuchtung geben wie ich das vernünftig löse?
Würde es etwas ändern wenn ich vom Hauptskript (login.php) direkt ALLE klassen inkludiere? Also nicht User.php in Base.php inkludieren sondern Base.php, User.php und die ganzen anderen im login.php Dokument?
Hoffe jemand kapiert was ich meine sonst bin ich echt durch mit dem Dreck.
Danke im Voraus
ich möchte mir von euch einmal erklären lassen, wie man sein Projekt am besten strukturiert.
Momentan habe ich folgende Klassen in PHP:
Class: Base
Class: Base -> User
Class: Base -> User -> LicenseManager
Class: Base -> User -> LicenseManager -> License
Nochmal erklärt:
Klasse Base ist halt die Basisklasse.
Diese Base-Klasse includiert ein anderes Dokument mit der Klasse User und diese wiederum die Klasse LicenseManager und diese License.
Klasse License bekommt beim initialisieren das Objekt von LicenseManager und LicenseManager beim initialisieren das Objekt von User und so weiter.
Die Base Klasse liegt im Ordner Base, dann gibts nen Ordner der nennt sich structures wo sich die User.php und die License.php drin befinden.
Die LicenseManager Klasse liegt im Ordner Base -> includes.
Meine Ordnerstruktur ist also folgende:
Base
|--->Base.php
|
|----includes
|----|--->LicenseManager.php
|
|----structures
|----|--->User.php
|----|--->License.php
So, und der ganze Ordner Base liegt in dem Verzeichnis "v3" auf meinem WebSpace.
Im Ordner v3 sind aber noch andere Ordner als Base. Zum Beispiel der Ordner gw2mh.
Darin befindet sich eine login.php.
In der login.php würde ich gerne die Base.php inkludieren.
Bedeutet ich habe in der login.php folgendes Statement verwendet:
Um in der Base.php jetzt die User.php einzubinden muss ich folgendes machen:
Wie man hier erkennen kann bedeutet das, dass die ganzen Klassen immer vom Hauptdokument (in diesem Fall login.php) abhängig sind.
Das Problem hierbei ist jetzt nämlich folgendes:
Wenn ich jetzt die Base.php von woanders inkludieren möchte stimmt die Pfadangabe nicht mehr.
Versuche ich die Base.php z.B. von hier zu inkludieren:
v3/login.php und nicht v3/gw2mh/login.php (wie vorher)
dann bin ich ja ein Verzeichnis zuvor und alle Pfadangaben in den Klassen stimmen nicht mehr.
Ich finde diese relativen Pfadangaben sind garkeine relativen pfadangaben in PHP. Das ist totaler schrott.
Man ist in dieser Ka**sprache nur mit Problemen umgeben die es in anderen Sprachen nie gegeben hätte.
Könnte mir vielleicht ne Einleuchtung geben wie ich das vernünftig löse?
Würde es etwas ändern wenn ich vom Hauptskript (login.php) direkt ALLE klassen inkludiere? Also nicht User.php in Base.php inkludieren sondern Base.php, User.php und die ganzen anderen im login.php Dokument?
Hoffe jemand kapiert was ich meine sonst bin ich echt durch mit dem Dreck.
Danke im Voraus