PHP BLOG
Krótka historia PHP
PHP wymyślił jesienią 1994 Rasmus Lerdorf. Wczesne niepublikowane wersje były używane na jego stronie do śledzenia kto czyta jego CV on-line. Pierwsza wersja używana przez innych była dostępna na początku roku 1995 i była znana jako Personal Home Page Tools. Składała się z bardzo prostego parsera, który rozumiał bardzo niewiele makr, oraz z paru narzędzi, które były wtedy popularnie używane na stronach domowych, czyli księga gości, licznik i pare innych drobiazgów. W połowie 1995 parser został przerobiony i nazwany PHP/FI Version 2. FI było częścią innego pakietu stworzonego przez Rasmusa do interpretowania danych z formularzy HTML. Rasmus połączył skrypty z Personal Home Page tools z Form Interpreter oraz dodał obsługę mSQL i tak narodził się PHP/FI. PHP/FI zaczął rozwijać się w niewiarygodnym tempie, kiedy ludzie zaczęli dodawać swój kod.
Trudno podać dokładne statystyki, ale szacuje się, że pod koniec 1996 PHP/FI było używane przez co najmniej 15,000 serwisów na całym świecie. Do połowy 1997 liczba ta zwiększyła sie do ponad 50,000. W połowie 1997 nastąpiła także zmiana w rozwoju PHP. PHP przestał być osobistym projektem Ramsusa do którego dołączyła garstka ludzi, stał się znacznie bardziej zorganizowanym projektem zespołowym. Parser został napisany od zera przez Zeeva Suraskiego i Andi'ego Gutmansa. Ten właśnie praser został podstawą dla PHP Version 3. Spora część kodu PHP/FI została wykorzystana w PHP3, ale też wiele zostało napisane zupełnie od nowa.
Najnowsza wersja używa silnika Zend zapewniającego większą wydajność, obsługuje jeszcze więcej zewnętrznych bibliotek i rozszerzeń i działa jako natywny moduł z większością popularnych serwerów WWW. Dziś (1/2001) PHP 3 lub PHP 4 dostarczane jest razem z komercyjnymi produktami, takimi jak StrongHold - serwer WWW firmy RedHat. Skromnie szacując na podstawie ekstrapolacji z danych NetCraftu (zobacz też Netcraft Web Server Survey) PHP jest używane przez ponad 5,100,000 sajtów na całym świecie. Dla porównania, to trochę więcej niż liczba serwerów działających na oprogramowaniu Microsoft IIS.
Gdzie działa - gdzie jest uruchamiany?
PHP uruchamiany jest w przeglądarce lub w konsoli systemu.
Do czego służy?
PHP jest skryptowym językiem programowania, wykorzystywanym najczęściej do tworzenia stron internetowych.
Wykonywany jest po stronie serwera, co oznacza, że jest niewidoczny dla użytkowników. Pozwala na m.in. dynamiczne generowanie strony, tworzenie i modyfikowanie plików na serwerze, ograniczanie dostępu do danych podstron na twojej stronie, szyfrowanie danych czy stosowanie ciasteczek. Kod PHP może być przeplatany z kodem HTML, jednak nie jest to dobra praktyka.
Najprostszym przykładem jego wykorzystania jest obsługa formularzy na stronach internetowych. PHP pozwala także na obsługę baz danych, co wymaga znajomości SQL – strukturalnego języka zapytań, który służy między innymi do tworzenia i modyfikowania baz danych, a także do wprowadzania i pobierania danych z baz danych.
PHP był często określany jako wolny język, jednak PHP7 wprowadziło zmiany, które polepszyły jego wydajność. Ponadto, Facebook zainwestował w rozwój PHP, umożliwiając przyspieszenie działania nawet do 6 razy dzięki HipHop Virtual Machine (HHVM) – jest to projekt open-source, który bazuje na kompilatorze JIT (Just-in-time). Kod PHP jest przetwarzany do kodu maszynowego, co znacznie przyspiesza jego działanie.
W PHP najczęściej tworzone są systemy zarządzania treścią, systemy forów dyskusyjnych, aplikacje pocztowe oraz klienty baz danych.
Popularne strony/firmy, które wykorzystują PHP to:
WordPress
Wikipedia
Facebook
Flicker
WhatsApp
Tesla
IBM
Manual PHP - co w nim znajdziemy? Gdzie go znajdziemy?
Manual php jest to zbiór poradników do php i różnych pomocnych rzeczy. Jest to coś na zasadzie podręcznika/książki. Możemy znaleźć to na stronie pod linkiem https://www.php.net/manual/en/index.php
Jakich narzędzi potrzebujemy do pracy z kodem PHP? (notepad++ i serwer WWW lokalny lub hosting).
Skrypty PHP przeważnie są uruchamiane i wykonywane na serwerze. Jeżeli nie masz własnego serwera, który posiada obsługę PHP, możesz go zainstalować na swoim domowym komputerze i z powodzeniem tworzyć oprogramowanie. Należy zaznaczyć, że na wielu darmowych serwerach (czyli tam, gdzie konto można założyć bez opłat) może nie być obsługi PHP. Nawet, jeżeli będziesz miał szczęście i założysz darmowe konto z obsługą PHP, to wcale nie oznacza, że będziesz mógł wykorzystać wszystkie jego możliwości (np. na wielu serwerach zablokowana jest funkcja mail() dzięki której można w prosty sposób wysłać e-mail).
Oprócz serwera HTTP oraz PHP, będziesz potrzebował dobrego edytora tekstu. Jak już wspomniałem skrypty PHP, to w rzeczywistości zwykłe pliki tekstowe, które możesz edytować zwykłym, najprostszym edytorem tekstu ? ot chociażby Notatnikiem standardowo dostępnym na systemach Windows.
PHP EDIT
Bardzo popularnym edytorem aplikacji PHP jest PHPEdit (w chwili, gdy piszę te słowa powstała wersja 1.0.1). Program możesz ściągnąć ze strony www.phpedit.com po uprzedniej rejestracji dzięki której otrzymasz klucz rejestracyjny. Aplikacja jest swoistym kombajnem do tworzenia aplikacji PHP. Ułatwia i przyspiesza pracę dzięki dodatkowym mechanizmom, skrótom klawiaturowym, itp.
Przykładowy plik PHP
Zaczynamy od stworzenia nowego pliku, który nazwiemy index.php.
Na początek napiszmy kilka linijek w tradycyjnym HTMLu, np.:
Teraz zobaczmy na przykładzie, jak wykonać te sama operacje za pomocą języka php…
Zobaczmy, co zmieniło sie w stosunku do poprzedniej wersji. Po pierwsze pojawiły się sie znaczniki . Można również używać skróconej wersji <? oraz ?>.To chyba najbardziej kluczowa wiedza o php – żeby kod został przetworzony przez interpreter, musi znajdować sie właśnie miedzy takimi oznaczeniami. Teraz zobaczmy, co zostało miedzy nimi wpisane. Komenda echo po prostu wyświetla nam na ekranie to, co wpiszemy jej, jako argument. W tym przypadku jest to ten sam tekst, co w czystym HTML, wiec efekt będzie taki jak poprzednio.
Wiesz już, w jaki sposób kod PHP jest przekazywany do interpretacji oraz przedstawiona została pierwsza komenda – echo, wyświetlająca tekst na ekranie.
Komentarze
Nie tyczy się to wyłącznie PHP, ale każdego języka programowania. Zasada jest prosta – komentujmy wszystko, co może stać się niejasne po pewnym czasie. Na przykład napisanie kodu pewnej witryny zajęło tysiąc linijek, w których użyto pięćdziesięciu zmiennych.
Zleceniodawca przez pierwszy rok był bardzo zadowolony, lecz później stwierdził, że zamiast wyświetlać na stronie głównej dziesięć najnowszych produktów, chciałby, żeby było ich dwadzieścia i to w dodatku losowych. Zobaczmy więc jakie problemy możemy napotkać na swojej drodze.
Jeśli nazwaliśmy nasze zmienne $i, $j, $k, $zmienna1 itp. to bardzo ciężko będzie nam znaleźć odpowiedni fragment kodu. Musimy analizować krok po kroku składnię, żeby wywnioskować, co się dzieje w danym miejscu.
Wierzcie mi, że mimo iż podczas pisania wszystko wydaje się oczywiste, to po miesiącu już takie nie będzie. Wtedy z pomocą przychodzą nam komentarze. Jeśli komentowaliśmy skrupulatnie naszą pracę z pewnością szybko odszukamy odpowiedni fragment. Podsumowując, jeśli $ilosc jest odpowiedzialna za ilość produktów w sklepie, to należy ją obkomentować „Przechowuje ilość wszystkich produktów w sklepie”. Wtedy łatwo będzie nam ją odszukać i dokonać potrzebnych modyfikacji.
Genralnie, dobrze napisany kod nie wymaga komentowania każdej zmiennej.
Komentarze w praktyce:
Istnieją dwa sposoby umieszczania komentarzy w kodzie PHP. Pierwszy z nich stosujemy, gdy chcemy obkomentować kilka lub więcej linijek tekstu. Umieszczamy wtedy taki blok tekstowy między znakami ” /* ” oraz ” */ „. Wszystko zawarte pomiędzy tymi znacznikami zostanie zignorowane przez interpreter podczas generowania kodu html.
Co ważne, komentarze nie zostaną wysłane do przeglądarki użytkownika.
Drugim sposobem komentowania jest umieszczenie tekstu za dwoma ukośnikami ” // „. Jest to sposób szybszy i wygodniejszy od pierwszego z racji, że nie trzeba umieszczać znaków zamykających komentarz. Wszystko znajdujące się w jednym wierszu po tym oznaczeniu będzie traktowane jako komentarz. Obsługuje on jednak tylko jedną linijkę, więc jeżeli mamy długi tekst składający się z kilku wierszy, należy użyć pierwszego typu.
-Komentarz jednoliniowy
-Komentarz wieloliniowy
Aby dodać dłuższy opis zawierający więcej informacji, można skorzystać z komentarza wieloliniowego.
Zmienne
Zmienna w PHP to nic innego jak kontener przechowujący pewna wartość. Nieważne, czy jest to wartość logiczna, liczba całkowita, wymierna czy tez tekst. Ciekawostka w języku PHP jest brak konieczności deklaracji zmiennych, co jest wymagane w innych językach, jak C czy Pascal. Stała jest podobnym kontenerem do zmiennej, z tym ze, jak sama nazwa wskazuje, jej wartości nie można zmienić. Stałej przypisujemy wartość tylko przy definicji.
W języku PHP zmienne oznacza się za pomocą znaku dolara (‚$’) przed wspomnianym identyfikatorem. Obsługa zmiennych w PHP jest uproszczona do minimum. W „dużych” językach programowania zmienne trzeba najpierw inicjować (przy czym z góry trzeba określić typ zmiennej), zmienne tekstowe muszą mieć z góry ustalony rozmiar itp. W PHP nie jest to konieczne. Zmienna jest inicjalizowana (to znaczy rezerwowany jest dla niej pewien obszar w pamięci) przy pierwszym jej użyciu. Nazwy zmiennych muszą zaczynać się od litery (dużej lub małej) lub „underscore” (dolna kreska – ‚_’) a dalej mogą się składać z dowolnej ilości liter, cyfr i znaków o kodzie ASCII powyżej 127. Przy nazwach zmiennych respektowana jest wielkość znaków – zmienne $Test i $test to dwie różne zmienne. Oto przykład przypisywania wartości zmiennym i wykorzystanie ich w poleceniu echo:
$nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1
$druga_nazwa = "Tekst"; // Zmiennej "druga_nazwa" przypisany jest ciąg znaków "Tekst"
$trzecia_nazwa = $nazwa; // Zmiennej "trzecia_nazwa" przypisywana
//jest wartość zmiennej "nazwa"
echo "To jest $druga_nazwa"; // Powinien wyświetlić się napis "To jest Tekst"
echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa"
echo $nazwa; // Powinna wyświetlić się cyfra 1
?>
Typy zmiennych:
-liczby całkowite (integer)
-liczby rzeczywiste (double)
-ciągi (string)
-tablice (array)
-obiekty (object)
Stałe
W PHP występują także tzw. stałe, czyli identyfikatory znakowe, których wartości nie można zmienić. Stałych, w odróżnieniu od zmiennych, używa się bez znaku dolara na początku. W PHP występuje kilka zmiennych ustawianych przez parser:
__FILE__ - Nazwa pliku ze skryptem który jest aktualnie przetwarzany. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany (o poleceniu include w dalszej części kursu), to podana zostanie nazwa pliku zainkludowanego, a nie pliku nadrzędnego.
__LINE__ - Numer linii w skrypcie która aktualnie jest przetwarzana. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany, to podany zostanie numer linii przetwarzanej w pliku zainkludowanym.
PHP_VERSION - Ciąg reprezentujący wersję parsera PHP aktualnie używaną.
PHP_OS - Nazwa systemu operacyjnego na którym uruchamiany jest parser PHP.
TRUE - Logiczna wartość prawdy.
FALSE - Logiczna wartość fałszu.
Stałe mogą być definiowane przez użytkownika za pomocą funkcji define(), która przyjmuje 2 parametry: nazwę stałej i wartość do niej przypisaną. Przykład:
Instrukcja echo
Echo - Wyświetla jeden lub więcej stringów.
echo () nie jest faktycznie funkcją (jest to język skonstruowania), więc nie są potrzebne do korzystania z nawiasów. echo () (w odróżnieniu od niektórych innych konstrukcji językowych) nie zachowują się jak funkcja, więc nie zawsze mogą być używane w kontekście funkcji. Dodatkowo, jeżeli chcesz przekazać więcej niż jeden parametr do echo (), parametry nie mogą być dołączane w nawiasach.
echo nie zwraca wartości tylko wyświetla wynik na ekranie;
Instrukcja print
Z pewnością wiele osób używa instrukcji print jako alias do instrukcji echo. Pomimo, iż obie wysyłają tekst, mają nieco odrębne działanie. Jest to, co prawda prawie niezauważalne, lecz warto o tym wspomnieć jako o ciekawostce. Instrukcja print oprócz tego, że wysyła tekst, zwraca zawsze liczbę 1. Oto przykład:
W skutek działania takiego skryptu na ekranie przeglądarki wyświetli się napis: Adam1. Takie samo działanie miałaby taka instrukcja:
Zwyczajnie print oprócz tego, że wyświetla napis Adam, zwraca liczbę 1, którą wyświetlamy korzystając z polecenia echo.
Jeżeli chodzi o instrukcje echo, to ma nieco inne działanie. Nie zwraca żadnych wartości, przez co jej użycie jest minimalnie szybsze. Można natomiast użyć jej w taki sposób:
Powyższa instrukcja spowoduje wysłanie do przeglądarki napisu AdamBoduch.
Instrukcja printf
Printf - wysyła sformatowane dane do standardowego strumienia wyjściowego.
Za pomoca printf() mozna formatowac tekst (ilosc liczb po przecinku, konwersja liczb na systemy dwojkowe, osemkowe, hex, itd...)
Echo jest nieco szybsze od printf
Powyżej zademonstrowałem najprostszy przykład użycia funkcji printf do wypisania danych – w naszym przypadku był to tekst „Hello World!„. Oczywiście instrukcja ta ma znacznie więcej możliwości. Głównie chodzi o to, że w dowolnym miejscu danego tekstu, możemy wstawić na przykład zawartość jakiejś zmiennej: