|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PHP[1] – obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym. PHP jest najczęściej stosowany do uruchamiania skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów pracujących w trybie graficznym (np. za pomocą biblioteki GTK+). Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma AMP (w środowisku Linux – LAMP, w Windows – WAMP).
edytuj MożliwościSkrypty napisane w PHP są z reguły umieszczane w plikach tekstowych (czasami razem z HTML lub XHTML). Dzięki temu PHP jest podobny w założeniach do coraz rzadziej stosowanego mechanizmu Server Side Includes[4]. PHP pozwala także na wykonywanie skryptów z linii poleceń podobnie jak Perl, Python oraz Ruby. Jego modułowa budowa daje również możliwość programowania samodzielnych aplikacji z interfejsem graficznym. PHP umożliwia współpracę z wieloma rodzajami źródeł danych, takich jak systemy zarządzania bazami danych, pliki tekstowe, dokumenty XML oraz serwisy WWW. edytuj Historiaedytuj PoczątkiPierwsza wersja PHP, rozpowszechniana pod nazwą PHP/FI (Personal Home Page/Forms Interpreter), została stworzona przez duńskiego programistę Rasmusa Lerdorfa. W roku 1994 napisał on zestaw skryptów Perla służących do monitorowania internautów, którzy odwiedzali jego witrynę. Gdy ruch na stronach stał się duży, przepisał je w języku C, rozszerzając przy tym funkcjonalność samej aplikacji. Niedługo później użytkownicy zaczęli prosić go o możliwość użycia tych narzędzi na swoich stronach, zatem 8 czerwca 1995 roku autor udostępnił ich kod źródłowy pod nazwą PHP Tools 1.0. W 1997 roku pojawiło się PHP/FI 2.0. Jedyne oficjalne wydanie nastąpiło w listopadzie 1997 roku[5]. edytuj PHP 3W 1997 roku projektem zainteresowali się dwaj izraelscy programiści, Zeev Suraski i Andi Gutmans[6]. Zdecydowali oni, że przepiszą kod PHP od nowa, korzystając z pomocy istniejącej już wówczas społeczności PHP. W czerwcu 1998 roku ogłosili PHP 3.0 jako następcę PHP/FI, który przestano rozwijać. PHP 3.0 posiadało całkowicie nową architekturę, która znacznie zwiększała jego wydajnośćpotrzebne źródło. Pojawiły się w nim zalążki programowania obiektowego, ale najważniejszą cechą aplikacji była jej "modułowość". Programiści mogli w tej wersji rozszerzać funkcjonalność języka przez dodawanie własnych modułów. edytuj PHP 4Zimą 1998 roku, krótko po wydaniu PHP 3, Zeev Suraski oraz Andi Gutmans ponownie zaczęli przepisywać kod źródłowy PHP. Za główne cele obrano poprawę "modułowości" języka oraz zwiększenie wydajności działania złożonych aplikacji. Dotychczasowa wersja nie była stworzona do tych celów, i tym samym nie była konkurencyjna w stosunku do innych rozwiązańpotrzebne źródło. W połowie 1999 roku został stworzony nowy silnik języka – Zend Engine, na bazie którego rozpoczęto pracę nad PHP 4[7]. Ostatecznie PHP 4 zostało wydane w maju 2000 roku. Od tego czasu programiści mieli do dyspozycji wiele nowych narzędzi, konstrukcji językowych oraz bezpieczniejszy system wejścia/wyjścia, natomiast od strony administracyjnej dodano obsługę wielu nowych serwerów WWW. W każdym kolejnym wydaniu z linii PHP 4 zwiększano bezpieczeństwo, szybkość działania oraz dodawano nowe funkcjepotrzebne źródło. edytuj PHP 5W 2002 roku Zeev Suraski oraz Andi Gutmans ponownie rozpoczęli znaczącą modernizację silnika Zend, mającą na celu dodanie do PHP modelu obiektowego, podobnego do tych, który istnieje w innych językach obiektowych. W lutym 2003 ukazała się wersja "alpha" PHP oznaczona numerem 5.0.0. Stabilna wersja została wydana w lipcu 2004 roku. Pojawił się w niej całkowicie nowy model programowania obiektowego, co spowodowało utratę pełnej kompatybilności z poprzednimi wersjami PHP. W ramach tego modelu zmieniony został sposób reprezentacji obiektów. W wersjach wcześniejszych obiekt był jednocześnie zmienną, co sprawiało duże trudności, dlatego też w wersji 5 na wzór Javy zmienna obiektowa stała się jedynie referencją do właściwego obiektu. Obecnie operacja przypisania powoduje powstanie drugiej referencji wskazującej na ten sam obiekt. Oprócz tego udostępniono zbiór interfejsów znacznie rozszerzających możliwości klas użytkownika[8]. Nastąpiły także zmiany oraz nowości w systemie modułów PHP. Funkcje obsługi języka XML zostały przepisane i wbudowane bezpośrednio w jądro aplikacji. Oprócz narzędzi obsługujących model DOM udostępniono SimpleXML – prosty interfejs do modyfikacji dokumentów XML. Wprowadzono SQLite, nowy, domyślnie "wkompilowany" silnik baz danych[9]. 24 listopada 2005 roku ukazała się wersja 5.1, w której pojawił się PDO – ujednolicony sterownik oraz preprocesor zapytań umożliwiający komunikację z różnymi systemami baz danych. Kolejna wersja – 5.2, pojawiła się 2 listopada 2006 roku i skoncentrowana była na rozbudowie mechanizmów wejścia/wyjścia (obsługa formatów ZIP i JSON, filtry wejścia, obserwacja postępów przesyłania plików) i zarządzaniu pamięcią[10]. Aktualna podwersja tej gałęzi to 5.2.12 wydana 17 grudnia 2009; 86 dni temu. 30 czerwca 2009 wydano PHP 5.3[11]. Główne zmiany obejmują wprowadzenie w języku obsługi przestrzeni nazw. Pojawiły się również wyrażenia lambda i tzw. domknięcia (znane z takich języków jak JavaScript, Ruby czy Lisp). Oprócz tego dopracowano również obsługę metod statycznych i poprawiono działanie PHP pod systemem Windows wprowadzając kompilacje VC9 oraz eksperymentalne wersje binarne pod x64. Ponadto wprowadzono mysqlnd – opcjonalny, natywny zamiennik PHP dla libmysql oraz poprawiono wiele błędów. edytuj PHP 6W połowie roku 2005 zaczęły pojawiać się sygnały, że rozpoczęto wstępne prace nad PHP 6. Obecnie ta wersja znajduje się w fazie projektowania, dostępne są jednak publiczne obrazy PHP w wersji źródłowej, jak również w wersji binarnej dla systemów Windows. Zmiany koncentrują się przede wszystkim wokół wbudowania w język obsługi Unicode, mają także na celu dalsze usprawnienia modelu obiektowego oraz wycofanie obsługi wybranych, przestarzałych rozwiązań[12][13][14].. edytuj ModułyCała funkcjonalność PHP zawarta jest w czterech zbiorach modułów różniących się od siebie dostępnością dla programisty.
Zdecydowana większość modułów ma budowę proceduralną. Dopiero w PHP 5 rozpoczęto tworzenie w pełni obiektowych rozszerzeń oraz obiektowych zamienników starych funkcji. edytuj SkładniaSkładnia PHP jest oparta na składni języków C, Java oraz Perl. <?php $a = 5; $b = 3; function suma($zmienna1, $zmienna2) { return $zmienna1 + $zmienna2; //Dodajemy argumenty i zwracamy wynik } echo suma($a, $b); // 8 ?> Cały kod PHP musi zawierać się pomiędzy znacznikami: <?php oraz ?>, w przeciwnym wypadku interpreter nie wykona kodu. Starsze wersje dopuszczały także parę znaczników <? oraz ?>. Obecnie są one niezalecane, a w PHP 6 nie będą dostępne. edytuj Przykładowe zastosowanieNiektóre aplikacje napisane w PHP korzystają z formularzy. Przykładowa aplikacja przypominająca prosty kalkulator została zamieszczona poniżej: <?php if (isset($_POST'licz')) { echo "Chcesz obliczyć sumę następujących liczb:" . "<br />" . "<b>"; print_r($_POST'a'); echo "</b>" . "<br />" . "Oraz:" . "<br />" . "<b>"; print_r($_POST'b'); echo "</b>" . "<hr />"; echo "Ich suma to:" . " <b>"; $wynik = $_POST'a' + $_POST'b'; echo $wynik; echo "</b>"; } else { echo "Wpisz liczby."; } ?> <!-- Poniżej znajduje się sam formularz --> <form action="<?php echo ($_SERVER'SCRIPT_NAME'); ?>" method="POST"> Podaj dwie liczby:<br /> Liczba A: <input name="a" /><br /> Liczba B: <input name="b" /><br /> <input type="submit" name="licz" value="Oblicz!" /> </form> Ze względów bezpieczeństwa nie powinno się stosować $_SERVER['PHP_SELF'] może to grozić atakami XSS, powinno się stosować $_SERVER['SCRIPT_NAME']. edytuj Klasy i obiektyKlasy deklarujemy następująco (od PHP5): <?php class MojaKlasa { public $zm_publiczna; //definiowanie zmiennej publicznej private $zm_prywatna; //definiowanie zmiennej prywatnej protected $zm_chroniona; //definiowanie zmiennej chronionej const STALA; //definiowanie stałej public function __construct() { echo 'Jestem konstruktorem klasy MojaKlasa. Za każdym razem gdy powołasz mój obiekt do życia, wykonam operacje zawarte w tej metodzie.<br />'; } public function zrob_cos() { echo 'Właśnie wykonywana jest funkcja zrob_cos()<br />'; } public function __destruct() { echo 'Jestem destruktorem klasy MojaKlasa. Za każdym razem gdy usuniesz mój obiekt, wykonam operacje zawarte w tej metodzie.<br />'; } } $mojobiekt = new MojaKlasa(); //powoła do życia obiekt i wykona operacje zawarte w funkcji __construct() $mojobiekt -> zrob_cos(); // Wydrukuje komunikat //kończąc kod PHP, wszystkie zmienne są usuwane, wywoływana jest funkcja __destruct() ?> edytuj KomentarzeRozróżniamy trzy typy komentarzy: Komentarz wieloliniowy: <?php /* To jest komentarz wieloliniowy, zamykany znacznikiem: */ ?> Komentarz jednoliniowy: <?php //to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?> Komentarz jednoliniowy (inna wersja): <?php # to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?> edytuj Typy danych i zmienneZmienne w PHP nie wymagają deklaracji i nie posiadają jawnych typów. Jeżeli kontekst (na przykład definicja argumentu funkcji lub operator) danego wyrażenia wymaga zmiany jego typu, zostaje ono rzutowane do typu wymaganego. Wśród obsługiwanych rodzajów danych znajdują się:
Domyślnie PHP zawsze (pomijając obiekty od wersji 5) przekazuje zmienne przez wartość. Przekazywanie przez referencję zachodzi w wybranych funkcjach wbudowanych, oprócz tego można je narzucić w deklaracji własnej funkcji: <?php function foo(&$value) { $value = 'bar'; } ?> edytuj Klasy i obiektyElementy programowania obiektowego pojawiły się w PHP 3. PHP 4 udostępniono statyczne wywoływanie metod. W PHP 5 możliwości zostały rozszerzone między innymi o statyczne zmienne klasy, obsługę interfejsów, kontrolę dostępu, kontrolę typów czy klasy i metody abstrakcyjne. Model PHP wzoruje się na językach C++ i Java. Od wersji 5 PHP posiada mechanizmy refleksyjne[15], które pozwalają na analizę klas, funkcji oraz rozszerzeń. Bez zainstalowania odpowiedniego rozszerzenia nie umożliwiają one jednak zmiany tych struktur w czasie wykonywania, przykład klasy: <?php class Przyklad { public function powiedzCzesc($imie) { return 'Cześć, '.$imie; } } $objPrzyklad = new Przyklad; echo $objPrzyklad->powiedzCzesc('Adam'); ?> edytuj Funkcje i struktury kontrolnePHP jest wyposażone w szeroki wachlarz domyślnych funkcji. Niekonsekwencja w ich nazewnictwie (np. naprzemienne stosowanie CamelCase i znaku podkreślenia) jest niekiedy przedmiotem krytyki PHP. Znaczna część funkcji pochodzi jednak od ich odpowiedników w języku C i różnice pomiędzy nazwami funkcji wywodzą się właśnie z różnic w nazewnictwie z odpowiednich bibliotek C. PHP obsługuje rekurencję do poziomu około stu zagłębień. Jeśli stos parsera zostanie przeciążony nadmierną ilością wywołań lub iteracji, wywołanie aplikacji zostanie przerwane. edytuj Obsługa błędówWersja 5 wprowadziła mechanizm wyjątków. Tylko część modułów powiadamia jednak użytkownika o wystąpieniu błędów za ich pośrednictwem; większość umieszcza je na wyjściu programu w miejscu ich wystąpienia. Przykład: <?php class Foo { private $zmienna; public function setZmienna($cos) { $this->zmienna = $cos; } public function getZmienna() { if($this->zmienna == '') { throw new Exception('Proszę ustawić zmienną'); } else { return $this->zmienna; } } } try { $objFoo = new Foo; print $objFoo->getZmienna(); } catch(Exception $e) { die('Wystąpił błąd: ' . $e->getMessage()); } ?> edytuj Obsługa baz danychPHP obsługuje większość znanych baz danych: MySQL, Postgres, Oracle, Mssql, DB2. Poniżej przedstawiono wykonanie zapytania SQL na bazie danych MySQL przy pomocy biblioteki PDO dla PHP5: <?php try { $pdo = new PDO('mysql:host=localhost;dbname=articles', 'root', 'root'); $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo -> query('SELECT id, name, content FROM articles ORDER BY id'); echo '<ul>'; foreach($stmt as $row) { echo '<h1>'.$row'name'.'</h1>'; echo $row'content'.'<hr />'; } $stmt -> closeCursor(); echo '</ul>'; } catch(PDOException $e) { echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage(); } edytuj Zastosowanieedytuj PopularnośćW roku 1997 język PHP/FI obsługiwało ok. 50 tysięcy domen internetowych. Do roku 2005 udział PHP rósł. Później uległ stabilizacji na poziomie ok. 20 milionów domen[5][16] (9% wszystkich)[17]. edytuj AplikacjeW PHP powstała znaczna część obecnie istniejących aplikacji sieciowych. Należą do nich systemy zarządzania treścią, systemy forów dyskusyjnych, aplikacje pocztowe oraz klienty baz danych. Przypisy
edytuj Zobacz teżParadygmaty programowania: Platforma LAMP: edytuj Linki zewnętrzne
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sklep herbata Yerba Mate wszystkie rodzaje herbaty yerba mate
- the supremes
- misiej7
- akurat
- kasia kowalska
- nowe
- flowsheet
- sojuszmhk
- hauskimmillaan
- rod stewart
- Piękna pościel dla dzieci to spokojny sen
- Katalog stron DE
- nieruchomości szczecin
- Grzyby
- gry
pozycjonowanie stron-tworzenie stron www-naprawa laptopów kraków-ISTQB-Garmin-serwery wirtualne-webtec & wtsoft - projektowanie stron internetowych dla wymagających użytkowników.-zobacz stronę Telewizja w naszym życiu dla ciebie-zobacz stronę rosliny dla ciebie-Najtańsza telefonia internetowa w Polsce-zobacz stronę Choroby grożące w czasie wakacji dla ciebie |