Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Wybór struktury katalogowej i szkieletu strony?
Forum PHP.pl > Forum > Przedszkole
siemieng
Zastanawiam się na sposobem tworzenia struktury katalogów strony i elementów samej strony. Pisząc do tej pory stronki, fakt - jedynie małe serwisy, stronę budowałem następująco (w dużym uproszczeniu):

Dla przykładu 3 stopniowa rejestracja w serwisie:

Struktura katalogowa:

grafika/
moduły/
nagłówek.php
stopka.php
rejestracjaKrok1.php
rejestracjaKrok2.php
rejestracjaKrok3.php

funkcje/
index.php

Struktura index.php:
  1. <head>
  2. </head>
  3. <body>
  4. <?
  5.  include('moduły/nagłówek.php');
  6.  
  7.  $dział = $_GET['dz'];
  8.  switch($dzial) {
  9. case 'rejK1':
  10. include('moduły/rejestracjaKrok1.php');
  11. break;
  12. case 'rejK2':
  13. include('moduły/rejestracjaKrok2.php');
  14. break;
  15. case 'rejK3':
  16. include('moduły/rejestracjaKrok3.php');
  17. break;
  18. }
  19.  
  20. include('moduły/stopka.php');
  21. ?>
  22. </body>


Czyli link do rejestracji wyglądałby w stylu:
krok1 - domena.pl/index.php?dz=rejK1
krok2 - domena.pl/index.php?dz=rejK2
krok3 - domena.pl/index.php?dz=rejK3

Cała obsługa strony opiera się na przekazaniu zmiennej oznaczającej dział do linku, i po jej pobraniu w zależności od jej wartości wczytanie w odpowiednim miejscu index.php odpowiedniego pliku z fragmentem strony z katalogu moduły.
Ale w każdej stronie, nieuniknionym jest stworzenie kilku zmiennych w linku, np dla:
dział, poddział, temat, numerStrony, itd.....

Wiem, że można użyć mod_rewrite ale małe strony są przeważnie umieszczane na serwerach hostingowych, gdzie praktycznie brak możliwości konfiguracji, czy dostosowania serwera, modułów serwera do własnych potrzeb w pożądanym zakresie.


Natomiast obecnie tworząc stronę zastanawiam się nad innym sposobem:

Struktura katalogowa:

grafika/
rejestracja/
index.php (rejestracjaKrok1.php)
rejestracjaKrok2.php
rejestracjaKrok3.php

funkcje/
index.php
nagłówek.php
stopka.php

Struktura index.php (rejestracjaKrok1.php):
  1. <head>
  2. </head>
  3. <body>
  4. <?
  5.  include('../../nagłówek.php');
  6.  
  7. <!-- treść dla kroku1 rejstracji -->
  8.  
  9.  include('moduły/stopka.php');
  10. ?>
  11. </body>


W sumie dzięki temu linki do odpowiednich etapów rejestracji wyglądałyby nastepująco:
krok1 - domena.pl/rejestracja/
krok2 - domena.pl/rejestracja/rejestracjaKrok2.php
krok3 - domena.pl/rejestracja/rejestracjaKrok2.php


Druga metoda tworzy przyjaźniejsze linki, i może wprowadza większy porządek w katalogach serwisu, ale za każdym razem trzeba tworzyć szkielet strony w każdym katalogu, natomiast w pierwszej szkielet znajduje się w pliku index.php, następnie wymieniane są tylko odpowiednie fragmenty strony.


Ogólnie proszę o paradę, osoby tworzące strony mają zapewne swoje zdanie na ten temat, wynikające z doświadczenia, itd... Która z metod tworzenia szkieletu strony i struktury katalogów jest lepsza, a może robicie to w inny sposób? Oczywiście jak pisałem wcześniej nie chodzi mi tu o przykłady z książki, configi, smarty, moduły publiczne, prywatne, ale o rozważenie tego pod kątem małego serwisu z działami, podziałami, systematycznie aktualizowanego opartego na bazie danych, który musi zacząć jakoś swoje istnienie, i zapewne nie zacznie na serwerze za kilka(kilknaście) tys zł ale za powiedzmy 1000zł za rok wykorzystując hosting.
Eagle
Struktura katalogów w sumie jest dla Ciebie tak aby było wygodnie i aby dało to się w razie czego rozbudować.

Moja struktura katalogów wyglądała
Kod
/
-/data
--/cache
--/inne_smieci

-/img
--/rejestracja
-- obrazkiDlaRejestracji.img

-/strona
--/rejestracja
--- rejestracja.php
--- rejestracjaForm.php
--- rejestracjaKoniec.php

--/logowanie
--- logowanie.php
--- logowanieForm.php
--- logowanieOFF.php

-/module
-- rejestracja.php
-- logowanie.php

-/funkcje
-- jakasMojaFunkcja.php

- index.php


Przyjazne urle możesz zrobić przy pomocy
  1. <?php
  2. $url = explode('/',substr($_SERVER['PATH_INFO'],1));
  3. ?>


Ja tego używałem (obecnie ZF smile.gif) jako pierwszy element tablicy to była nazwa modułu (np. rejestracja) a dalej parametry dla niej które przekazywałem.

Każdy moduł miał funkcję main($arr) gdzie przekazywałem do niego informacje.

Kod
index.php/rejestracja/parametr1/parametr2/..../parametrN



Zamiast tworzyć 3 stron dla rejestracji zrób może jedną tylko sprawdzaj zmienną sesyjną który krok jest obecnie

np
  1. <?php
  2. switch($_SESSION['registerStep'])
  3. {
  4.  case 0:
  5. ... jakis kod
  6. $_SESSION['registerStep'] = 1;
  7.  break;
  8.  
  9.  case 1:
  10. ... jakis kod
  11. $_SESSION['registerStep'] = 2;
  12.  break;
  13.  
  14.  case 2:
  15. ... jakis kod
  16. $_SESSION['registerStep'] = 3;
  17.  break;
  18. }
  19. ?>



Pozdrawiam Eagle
Maciekbjw
Witam, ja robię w ten sposób.

1) Przede wszystkim nazwy - albo całkiem polskie, albo całkiem angielskie, nigdy nie mieszam smile.gif
2) W małych i średnich projektach, używam takiej struktury:

Kod
   ./Katalog_główny

         /layout/
                   -/style/{style css}
                  -/img/ { obrazki do szablonu}
                  -/js/ { potrzebny JS}

     /includes/
              
              -/classes/ {klasy}
             -/functions/ { funkcje}
             -/libs/ {biblioteki np Smarty}

  /templates/ { pliki szablonów html}


/config/
          {tutaj pliczki konfiguracyjne, np baza MySQL}



Wszystko zależy od Ciebie, bo to ma służyć tylko Tobie i byc wygodne:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.