tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Steiner_B
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
2178
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hi,

    wow, mein erster Beitrag in dem "neuen Forum"!
    Dickes Kompliment!

    Aber nun zu meinem Problem

    Ich habe ein relativ umfangreiches Projekt mit einem Freund, in dem wir verschiedene Bereiche haben, zum Beispiel:

    - News
    - Profil
    ---- "Pinnwand"
    ---- Infos
    ---- Bands
    ---- Freunde
    - Bands
    ---- Mitglieder
    ---- Kalender
    ---- Biografie
    - Einstellungen
    ---- Passwort ändern
    ---- Email Benachrichtigungen
    - Rechtliches
    ---- Kontakt
    ---- Impressum
    ---- Disclaimer
    ---- AGB
    ---- FAQ

    und so weiter...
    Bisher habe ich folgende Ordner-Struktur

    - root
    -- include
    ----- classes, function, etc
    -- templates
    -- alle php-dateien


    Da es sehr unübersichtlich wird, wenn ich jetzt alle PHP-Dateien in den root-Ordner packe, wird es auf die Dauer sehr unübersichtlich (das stelle ich schon jetzt mit 25 Dateien fest...). Als Hilfe hab ich vor alles einen Prefix gemacht, z.B.: "profil_information.php"

    Das nervt mich aber doch ziemlich und es sieht auch irgendwo unschick aus

    Also dachte ich mir ich mache für die wichtigen Bereiche, die kompliziert sind und mit viel Unterdateien einen Ordner, so zum Beispiel:

    - root
    -- bands
    ---- index.php
    ---- members.php
    ---- calendar.php
    -- profile
    ---- info.php
    ---- friends.php
    ---- wall.php

    und so weiter.
    Doch jetzt habe ich 2 Probleme:

    -1- Wie kriege ich die Dateien aufgerufen? Sollte ich im root-Ordner eine Datei machen, die über die URL aufgerufen wird und per Parameter die entsprechende Datei aus dem Ordner liest? Oder doch htaccess?

    -2- Ich habe eine globale Konfigurationsdatei, in der Ordner-Pfade festgelegt sind.
    Wenn ich diese in zum Beispiel bands/info.php einbinde, stimmen diese Pfade ja nicht mehr.


    Könnt ihr mir Tips geben, wie ich dieses Problem am Besten lösen könnte?
    Das Projekt wird sicher nicht mit 50 Dateien auskommen wenn es einmal fertig gestellt ist und es soll ständig erweitert werden, ohne viel Fusch.



    Vielen Dank fürs Lesen und helfen!
    David
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  2. #2
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    -1- Wenn du Dateien direkt einbindest kannst du z.B.: einfach include('./bands/index.php'); einbinden

    -2- Hier ist es eine Möglichkeit in jeder Datei den Pfad zu root Verzeichnis zu hinterlegen.

    Datei bands/index.php
    PHP-Code:
    $RELPATH '../';
    include(
    'include_all.php'); 
    Datei include_all.php
    PHP-Code:
    include($RELPATH.'profil/info.php');
    ... 
     

  3. #3
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Danke für die schnelle Antwort.

    Das ist schon ein guter ansatz, allerdings habe ich ja folgendes Problem:


    config.php:
    PHP-Code:
    define('FUNCTION_DIR''include/function');
    define('CLASS_DIR''include/class'); 
    liegt in
    /include/config.php


    wenn ich jetzt in der "bands/index.php" folgendes mache:
    $RELPATH = '../';
    include($RELPATH.'/include/config.php');

    Dann stimmen aber doch die Pfade der Konstanten nicht mehr, oder irre ich mich?!


    Gruß
    David
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Das Problem ist immer, dass der Ausgabgspfad derjenige der Datei ist, die du aufgerufen hast.

    PHP-Code:
    //index.php
    include('dir1/file1.php'); 
    Wenn in file1.php wieder ein include steht, geht der vom Pfad index.php aus.
    PHP-Code:
    //file1.php
    include('file2.php'); //sucht file2.php im Ordner wo index.php steht, nicht aber im Ordner dir1/ 
    Darum setze ich meistens die absouten Pfade. Dann ists egal woher das ganze aufgerufen wurde. Die absoluten Pfade kann man einfach mit dirname(__FILE__) auslesen
    PHP-Code:
    //file1.php
    include(dirname(__FILE__).'/file2.php'); //sucht file2.php im selben Ordner wo auch file1.php ist 
    Das macht das ganze nicht gerade einfacher.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Zitat Zitat von yaslaw Beitrag anzeigen
    Das Problem ist immer, dass der Ausgabgspfad derjenige der Datei ist, die du aufgerufen hast.
    Genau, ich hatte schonmal mit "set_include_path" probiert, aber das funktionierte auch nicht richtig gut, und ist meiner Meinung nach auch keine wirklich saubere Lösung..
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  6. #6
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    definiere halt die konstanten auch über RELPATH

    PHP-Code:
    define('FUNCTION_DIR'$RELPATH.'include/function'); 
    Oder hab ich jetzt das Problem falsch verstanden?
    Kalma bedankt sich. 

  7. #7
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Wenn ich somit aus jedem (in meiner oben geposteten Ordnerstruktur) Ordner her in das richtige Verzeichnis komme, nein!

    Dann würde ich mich herzlich bedanken!


    // edit:
    Jetzt würde ich aber gerne noch eure Meinung einmal wissen:
    - Seit ihr der Meinung es macht das ganze übersichtlicher, wenn jeder (größere) Bereich seinen eigenen Ornder bekommt?

    - Wie würdet ihr das ganze aufrufen lassen?
    In der Url sollte möglichst wenig stehen, also am Besten wäre so:
    http://www.adresse.de/bands.html?v=info

    Sollte ich dann einfach in einer bands.html die im Stammordner liegt eine switch-case Abfrage machen die die jeweiligen Bereiche einbindet?
    Geändert von Kalma (26.07.10 um 10:12 Uhr)
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  8. #8
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Ja kommst du, du musst halt immer in $RELPATH den relativen Pfad zum Root-Ordner angeben.
     

  9. #9
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Ok, super, danke

    Hast du meinen Edit mitbekommen?
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  10. #10
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Nein hatte ich nicht:
    - Übersichtlichkeit: Auf jeden Fall machen. Wenn du das erste mal 100 Dateien hast weißt du warum.
    - Aufruf: Wenn du ein Frameset/Iframes verwendest sieht eh keiner was genau geladen wird.
     

  11. #11
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Alles klar!

    Aber Iframes und Frames verwende ich generell nicht.
    Ich werde es glaub ich mit switch-case lösen!


    Vielen Dank für eure Hilfe!
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  12. #12
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Eine Frage hätte ich doch noch.

    Ich habe die Config-Datei im Ordner:

    include/system/config.cfg.php
    -> Dort werden alle Konstanten für die Ordner definiert etc.

    Eingebunden wird die Datei in der index.php die im Hauptordner ist.

    Wie soll ich denn da jetzt den relativen Pfad angeben?
    einfach "../../" als RELPATH geht ja eben nicht.

    Vielen Dank für die Hilfe!
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  13. #13
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    RELPATH müsste in dem Fall "" (leer) sein. Du musst in jeder Datei die die config.cfg.php includieren möchte den Pfad zum Hauptverzeichnis hinterlegen. Da die index.php schon im Haupverzeichnis liegt ist hier nichts anzugeben.

    Wichtig: Du musst in der config.cfg.php natürlich auch alle Pfad vom Haupverzeichnis aus angeben.

    Bsp:
    Code :
    1
    
    include($RELPATH.'include/system/config2.cfg.php');
    für eine Datei die auch im Verzeichnis include/system/ liegt.
     

  14. #14
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Ach da lag mein Denkfehler.

    Ich muss natürlich den RELPATH immer vor dem include der config definieren in der Datei in der ich die config einbinde.

    Ich hatte aus einem Grund gedacht ich könnte einen globalen relpath in der config selber definieren. Der müsste aber ja dann absolut sein, fänd ich nich so gut.


    Gut, dann bedanke ich mich für deine Hilfe!
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

Ähnliche Themen

  1. Internetprogrammierer für ein großes Projekt gesucht.
    Von Dragonate im Forum Stellenangebote (unentgeltlich)
    Antworten: 0
    Letzter Beitrag: 28.10.10, 16:55
  2. Suche Helfer für großes Projekt!
    Von Toooooni im Forum Stellenangebote (unentgeltlich)
    Antworten: 12
    Letzter Beitrag: 28.09.07, 11:24
  3. Großes Projekt
    Von lucky009 im Forum Cinema 4D
    Antworten: 5
    Letzter Beitrag: 21.06.07, 08:30
  4. Großes Projekt
    Von Michamann im Forum Stellenangebote (unentgeltlich)
    Antworten: 0
    Letzter Beitrag: 06.12.06, 18:18
  5. Größeres Projekt vor-Flash sinnvoll?
    Von Gullynbg im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 30.01.03, 20:50