Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Struktura plików strony..., poszukuję porady
Tarcil
post 26.03.2007, 14:49:42
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 24.11.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kildyt
post 27.03.2007, 10:01:23
Post #2





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Tarcil
post 27.03.2007, 13:04:15
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 24.11.2006

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
babejsza
post 27.03.2007, 13:39:03
Post #4





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


@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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:18