PHP
Pierwsze co trzeba powiedziec o PHP, to ze ma zajebista dokumentacje. Na stronie www.php.net mozna znalezc wszystkie funkcje zawarte w tym jezyku co bywa naprawde pomocne, jesli akurat zapomnialo sie 300 parametrow funkcji wklejania obrazka (ktorej przeciez uzywam codziennie). Na poczatek warto jednak odswiezyc sobie wiadomosci na w3schools. PHP jest podstawa tworzenia dynamicznych stron www, i to ono generuje tresc html (na pewno tego nie wiedzieliscie). Jesli polaczymy je z mysqlem to zrobimy prawie kazda strone jaka tylko sobie zazyczymy. Struktura strony zalezy od jej skomplikowania. Np. ta strona powstala ze starego layoutu i jest bardzo prosta. (poprawka, teraz juz nie jest prosta, tylko opiera sie na bazie danych). Prawie caly silnik wyglada tak:
if (!empty($_GET['e'])){ //jesli jest GET
switch ($_GET['e']){//sprawdz jaki jest
case "html":
include('html.php'); //i dolacz plik
break;
case "css":
include('css.php');
break;
}
}
else{ //jesli nie
//wyswietl strone glowna
}
Jesli jednak chcemy zrobic cos bardziej skomplikowanego, a juz na pewno jesli mamy do czynienia z bazami danych, albo dynamicznie dodawana trescia, warto zorganizowac to sobie sensownie.
Pierwszym ratujacym zycie rozwiazaniem sa funkcje. Bylo o nich na ostatniej lekcji, dzialaj atak jak funkcje i procedury w pascalu. Bardzo oszczedzaja czas i skracaja kod, w ktorym nawet przy kilkuset liniach mozna sie pogubic. Zrobmy tak: stowrzymy sobie dodatkowy plik w glownym katalogu ktory nazwiemy "funkcje.php" i dlaczmy go za pomoca require('./funkcje.php') na poczatku naszego index.php. W pliku funkcje umiescimy:
function head(){
echo <<< EOT
tutaj jest head jakies znaczniki "meta" i 'inne'
EOT;
}
function foot(){
echo <<< EOT
a tutaj stopka
EOT;
}
po czym plik index.php modyfikujemy, zeby wygladal tak:
require('./funkcje.php');
head();
echo "moja tresc";
foot();
W ten sposob mamy duzo miejsc na zabawe z trescia i nie pogubimy sie w zbednym htmlu, ktory siedzi sobie w innym pliku. Zauwazcie, ze uzylem skladni heredoc ktorej nie przeszkadzaja pojedyncze i podwojne cudzyslowy i idealnie nadaje sie do wklejania samego HTML (miedzy <<< a EOT nie powinno byc spacji).
To zastosowanie funkcji ma za zadaniu trylko porzadkowanie, ale wyobrazmy sobie, ze w dwoch miejscach na stronie wyswietlamy np. jakies menu. Wtedy tworzymy sobie
function wyswietl_menu(){
//pobierz z bazy jakies dane
//wyswietl mi je
}
i w kodzie uzywamy juz tylko "wyswietl_menu()" kilka razy zamiast kopiowac i wklejac ten sam kod.
Warto podzielic sobie strone na czesci, ktore wyswietlaja sie zawsze takie same, podobne i te ktorych tresc zmienia sie zupelnie. Np. logo zawsze jest to samo, menu moze zmieniac sie w zaleznosci od przegladanej czesci, ale uklad ma zawsze ten sam, natomiast glowna tresc zmienia sie zupelnie. W ten sposob mozemy rozplanowac w logiczny sposob uzywanie funkcji i zaoszczedzic sobie czas i ilosc pisania.
Jesli chcemy miec jeszcze wiekszy porzadek proponuje podzielic sobie cala strone na oddzielne czesci odpowiadajace za:
- odbieranie danych od uzytkownika
- pobieranie danych z bazy
- wyswietlanie danych
Byc moze brzmi to skomplikowanie, ale w rzeczywistosci nie jest. Jesli ktos chce, to moge napisac, albo nawet pozyczyc ksiazke, ale tu bardzo ulatwia programowanie obiektowe w PHP