2009-07-26 7 views
0

ive erstellt eine MVC, die diese Ebene der Organisation hat, soweit die Ordner und Einstellungen Dateien gehen.Was ist Ihre Methode der Verzeichnisse mit in einem Stamm

+[admin] 
-[js] 
-[css] 
-[images] 
-[classes] 
--list of php classes 
-[includes] 
--config.php (includes db connection str 
--functions.php (php functions) 



--root--- 

[js] 
[css] 
[images] 
[classes] 
--list of php classes 
-[includes] 
--config.php (includes db connection str 
--functions.php (php functions) 

das Problem, das ich mit dieser Struktur habe, ist, wie Sie der Administrationsbereich hat seine eigenen Ordner von Klassen sehen, Funktionen und einer db-Konfigurationsdatei.

dann die Wurzel für die anderen Seiten hat seinen eigenen Satz von Seiten für die Klassen, Funktionen und DB-Verbindung (die die gleiche wie Admin ist)

ive versucht, nur einen Ordner für Klassen und einer anderen für enthält und so Der Admin-Bereich und die Root-Seiten teilen sich alle, aber das Ergebnis wird zu einem Durcheinander von Includes wie einem Spinnennetz.

die Methode der versucht, einschließlich ive ist

include_once (dirname (FILE) ./ Verzeichnis/...) und das, was tut, ist, wenn im Inneren eines Ordners und im eine Datei enthalten, der erwiesenermaßen ist eine Ebene höher in der aktuellen Seite wird es nicht funktionieren. und anstatt es mit dem Hauptstammverzeichnis zu verwenden, enthält es auch den Ordner im Inneren. das kommt also nicht gut an.

also, wenn dies war meine Wurzel: d:/wamp/www/website/ und ich war mit etwas von der Hauptwurzel in eine Datei innerhalb eines Verzeichnisses genannten Funktionen der dirname (FILE) ein eigentlich hätte Wert von d: \ wamp \ www \ Website \ Funktionen \

was ist eine gute Methode, Dateien ohne witout in ein Durcheinander von Fehlern zu bekommen versuchen, herauszufinden, was los ist.

dank

Antwort

1

versuchen, wie dies etwas, und definiert es in einer zentralen Konfigurationsdatei.

Dies gibt eine einzige Konstante für alle Ihre Pfade, dann definieren Sie einige andere Konstanten, wahrscheinlich eine für jeden Ordner als ROOT_CLASSES und ADMIN_CLASSES, mit den entsprechenden Dateipfaden angefügt. Dann ist es wirklich einfach, Sachen aufzunehmen. Beschreibe es einfach mit der Konstante und füge den Dateinamen hinzu.

Wenn dies in der Konfigurationsdatei zusammen mit anderen Deklarationen vorhanden ist, müssen Sie sich keine Gedanken darüber machen, sie später zu definieren.

+0

Ich dachte daran, diese Variablen in php.ini zu definieren, wie würde ich das tun? –

+0

Sie können das nicht tun. php.ini definiert, wie PHP läuft, nicht die Konstanten, die es hat. –

0

So gestalte ich so ziemlich alle meine benutzerdefinierten Websites.

  • [site] Dieses Verzeichnis hat nur einen Dateiindex.PHP und ist die Domain-Root
    • [js]
    • [CSS]
    • [Bilder]
  • [model]
  • [Ansicht]
  • [Steuerung]
  • [lib] - 3rd-Party-Code, PHPMailer und so
  • [Config]
  • [admin]
    • [js]
    • [CSS]
    • [Bilder]
    • [model]
    • [Ansicht]
    • [Steuerung]

Ich verwende __autoload zum Einschließen von Dateien. Es gibt eine Reihe von Möglichkeiten, um die Leistung zu optimieren, und Sie müssen sich nicht um Includes kümmern.

Ich habe nur Admin-spezifischen Code unter Admin so Dinge wie jQuery, die sowohl von öffentlichen Zugang und Admin-Zugriff verwendet wird geht in site/js.

+0

Welche Art von Zeug gehen in Model, View und Controller? –

+0

Model-, View- und Controller-Klassen, die ich mir vorstellen sollte :) – Etzeitet

Verwandte Themen