Cześć Panie i Panowie, mam pytanie odnośnie 1ego mojego projektu/strony.
Robię stronę internetową, html + css. Strona główna typu onePage, do tego ok 15 podstron. Zastanawiam się, czy zostawić wszystko w plikach html, tak po prostu, jak jest zrobiona, czy przerobić stronę na pliki php, żeby móc skorzystać z include i poszczególne elementy, jak sekcje/menu powyciągać do osobnych plików php i je zaciągać do strony/podstron: Zastanawiam się nad:
- Zostawiam w html - wszelkie zmiany w powtarzających się elementach trzeba ogarniać na każdej podstronie.
- Dziele wszystko, co się da na mniejsze elementy do plików php i zaciągam je za pomocą include lub require do danej strony/podstrony. Nie wiem, jakie są wady tego rozwiązania względem 1ego, ale z pewnością zaletą jest wprowadzanie zmian danego elementu tylko w 1ym miejscu.
- Połączyć oba sposoby ( jeśli tak się da i ma to sens?). Widzę to tak, że mam np główną stronę (w php czy html?) i tylko niektóre elementy, np. powtarzające się, zaciągam za pomocą include/require. Np menu, stopkę.
Jak najlepiej to zrobić. Jakie są wady i zalety poszczególnych rozwiązań?
Nie znam php, zastanawiam się tylko nad użyciem include do mojego pomysłu.
Będę wdzięczny za pomoc.
Okej, powiem Ci dokładnie czemu uważam Twój pomysł za średni.
Teraz, kiedy Twoja strona jest tylko w HTML i CSS, to praktycznie jest "gotowa". Możesz komuś dać takie statyczne pliki, i on może je wrzucić gdziekolwiek, i to jest dokładnie to co zobaczy odwiedzający Twoją stronę. Moim zdaniem to co teraz masz, jest bardzo dobre.
Ty jednak chcesz wprowadzić jakąś modularność do swojego rozwiązania, spodziewam się że po to żeby nie mieć duplikacji w różnych podstronach. Masz dwa "standardowe" wyjścia:
- Wyjście frontowe, tzn dodać jakiś JS'a (Vanilla, Vue, React, Angular, od biedy jQuery), i zbudować w przeglądarce wynikowy kod. Moim zdaniem to byłoby dobre, bo mając coś takiego, nadal masz same static files'y które możesz wrzucić gdziekolwiek. Miejsce na którym będą stać (CDN, Gituhub Pages, dowolny server) nie musi o nich nic wiedzieć, wystarczy że je zaserwuje. Nie musisz nawet mieć środowiska uruchomieniowego tam gdzie będą stać, wystarczy sam Apache lub Nginx.
- Wyjście backendowe. Ty na to mówisz "dodanie
include()
'ów i require()
'ów", ale tak na prawdę to co chcesz zrobić, to nie mieć już statycznych plików HTML/CSS, tylko aplikację internetową która je generuje w locie. I to ma taką wadę, żę:
- Po pierwsze, przywiązanie do jednego języka programowania, nie ważne czy użyjesz PHP, Python, Ruby czy dowolny inny, jeśli zaczniesz pisać w nim, to jesteś do niego przywiązany.
- Po drugie, nakładasz wymagania na server który będzie je serwował, ponieważ on już nie tylko musi mieć server (jak Apache/Nginx) ale musi mieć też środowisko uruchomieniowe w postaci PHP lub Pythona lub co tam sobie wybierzesz, dodatkowo w odpowiedniej wersji. Dużo dodajesz nowych wymagań, a zysk dosyć mały.
Wiec, jeśli już koniecznie chcesz to zrobić w PHP i dodawać include()
i require()
, to być może mógłbyś to potraktować jako "generator stron", zamiast stronę?
Tzn, dodałbyś u siebie swoje include'y, i użyłbyś swojego lokalnego PHP'a żeby wygenerować wynikową stronę, i tą wynikową stronę klient by sobie wrzucił na swój server?
Jeśli poszedłbyś w taką stronę, to masz dwa wyjścia:
- Albo korzystać z PHPowych
include()
ów i require()
ów, czyli po prostu pozamieniać swoje pliki .html
na .php
, co jest moim zdaniem w miarę prostę, ale gorsze.
- Napisać swój generator. Robota na pół dnia, ale za to odseparujesz się od języka programowania, i będziesz mógł sam kontrolować to które kawałki są wsadzane gdzie.