Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Struktura plików strony...
Forum PHP.pl > Forum > Przedszkole
Tarcil
Witam!

W php bawię się od dłuższego czasu (obecnie zwalczam obiektowe wykorzystanie tego języka). Ostatnio jednak poczytałem trochę o dobrych rozwiązaniach dotyczących kodowania w tym języku (zachowywanie spacji, wcięć, gdzie wciskać entery itd.), sporą część tych porad stosowałem od jakiegoś czasu, ale chciałbym poznać więcej takich dobrych, sprawdzonych porad. Mam związane z tym pytanie.

Swoje strony internetowe najczęściej opieram na dwóch include. Na początku strony includuje plik start.php, na końcu - koniec.php. Plik start.php zawiera początek kodu html (do miejsca, w którym zawartość się zmienia, czyli najczęściej do głównej części strony), oraz includuje kolejne pliki: z potrzebnymi funkcjami i konfiguracją. Plik koniec.php zawiera zakończenie kodu html (stopkę) i zamknięcie sesji oraz połączenia z bazą danych.

Z kolei pliki już konkretne (index.php czy sklep.php, itd.) wyglądają tak:
  1. <?php
  2. request_once './start.php';
  3.  
  4. KOD STRONY PHP (np. skrypt wyświetlający newsy)
  5.  
  6. request_once './koniec.php';
  7.  
  8. ?>


Chciałbym zapytać, czy takie postępowanie jest poprawne? Czy lepiej (z jakich powodów?) stosować inne rozwiązanie?


Pozdrawiam smile.gif

----------------------
Poprawiam tag zgodnie z zasadami
forum Przedszkole. Na przyszłość
proszę o dodawanie tagu.
---
~strife
Kildyt
Nie widze tutaj rzadnych przeszkód. Może to ograniczyć twoją stronę do obranego schematu, więc super portalu nie zbudujesz. Ogólnie spox, ale możesz zbudować stronę w jednym pliku.

  1. <?
  2.  
  3. request_once './start.php';
  4.  
  5. global $a;
  6. if($_GET["a"] == "raz") { 
  7. KOD STRONY PHP (np. skrypt wyświetlający newsy)
  8. }
  9.  
  10. if($_GET["a"] == "dwa") { 
  11. KOD STRONY PHP (np. skrypt wyświetlający newsy)
  12. }
  13.  
  14. if($_GET["a"] == "trzy") { 
  15. KOD STRONY PHP (np. skrypt wyświetlający newsy)
  16. }
  17.  
  18. request_once './koniec.php';
  19.  
  20. ?>


PS takim sposobem zaoszczędzisz transfer ale jeśli jest jakiś kod z durzą ilością linijek zalecam wklejenie go do osobnego pliku aby użytkownik nie miał na starcie za durzo do wczytywania.
Tarcil
Dzięki. Twoje rozwiązanie też czasem stosowałem, tylko w formie instrukcji switch. Potem doszedłem do wniosku że to jest niewygodne, bo jak dodaję nową podstronę to muszę oprócz stworzenia podstrony wyedytować plik z funkcją switch (dodać kolejnego case) - to samo u Ciebie (trzeba dać kolejnego if'a).

Kombinowałem, kombinowałem i wymyśliłem coś takiego:
- sprawdzam, czy zmienna $a ma jakąś wartość, jeśli nie - nadaję jej wartość domyślną
- sprawdzam, czy w katalogu z plikami do includowania jest plik, którego nazwa jest identyczna z wartością zmiennej $a (czyli index.php?a=kontakt poszuka pliku kontakt.php)
- jeśli jest - includuje, jeśli nie ma - wyświetla zgrabną informację o błędzie w adresie lub nieistnieniu pliku

Kod takiej konstrukcji jest mniejszy niż switch dla pięciu i więcej plików, jest elastyczny, bo wystarczy wrzucić plik do folderu z plikami do includowania i podlinkować gdzie trzeba. Być może jest to mniej wydajne rozwiązanie (nie wiem, nie znam się na tym, co w php jest mniej a co bardziej wydajne) ale jeśli nawet to przy małych projektach chyba nie jest to duży problem, na tyle widoczny, żeby przeszkadzał.

Dzięki wielkie generalnie, Kildyt

Ktoś jeszcze może ma pomysły na konstruowanie struktury plików? To może być przydatne dla początkujących i nie tylko.

Pozdrawiam!
babejsza
@Tacil pomysł, który podałeś jest szeroko stosowany i jak najbardziej poprawny.

  1. <?php
  2. if(file_exists($_GET['a'].'.php') && isset($_GET['a']) && !empty($_GET['a'])) include $_GET['a'].'.php';
  3. else echo 'Strona o podanym adresie nie istnieje';
  4. ?>
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.