PHP - Wiki

PHP

Z Wikipedii

PHP Hypertext Preprocessor [1]
Rodzaj interpreter języka programowania
Aktualna wersja stabilna 5.2.8 - 8 grudnia 2008 ; 31 dni temu
Producent PHP Group
Licencja PHP License [2]
Platforma systemowa wieloplatformowy [3]
http://www.php.net

PHP [1] obiektowy , oświetlenie dyskotekowe skryptowy język programowania zaprojektowany do generowania dynamicznych stron internetowych . PHP najczęściej stosuje się do przetwarzania skryptów po stronie serwera WWW , szkoły policealne ale może być on również używany z poziomu wiersza poleceń oraz w aplikacjach pracujących w trybie graficznym np. przy pomocy biblioteki GTK+ . Implementacja PHP w środowisku Linux wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma LAMP .

Spis treści

[ edytuj ] Możliwości

Skrypt PHP umieszczony w kodzie HTML

Skrypty 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 , meble 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, felgi takich jak systemy zarządzania bazami danych , szkoły policealne pliki tekstowe, szczawnica dokumenty XML oraz serwisy WWW .

[ edytuj ] Historia

Pierwsza wersja PHP, szczawnica rozpowszechniana pod nazwą PHP/FI (Personal Home Page/Forms Interpreter), działki w szczawnicy 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, kosmetyka laserowa którzy odwiedzali jego witrynę. Gdy ruch na stronach stał się duży, jaworki przepisał je w języku C , studium policealne 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, sypialnie 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 3

W 1997 roku projektem zainteresowali się dwaj izraelscy programiści, aparaty cyfrowe Zeev Suraski i Andi Gutmans [6] . Zdecydowali oni, podsłuchy że przepiszą kod PHP od nowa, stoły 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, opony którego zaprzestano rozwijać.

PHP 3.0 posiadało całkowicie nową architekturę, depilacja laserowa która znacznie zwiększała jego wydajność[ potrzebne źródło ]. Pojawiły się w nim zalążki programowania obiektowego, materace 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 4

Zimą 1998 roku, szczawnica krótko po wydaniu PHP 3, fotele z mazażem 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, monitoring 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 , aparaty cyfrowe 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, suknie ślubne konstrukcji językowych oraz bezpieczniejszy system wejścia/wyjścia, szczawnica 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, pozycjonowanie szybkość działania oraz dodawano nowe funkcje[ potrzebne źródło ].

[ edytuj ] PHP 5

W 2002 roku Zeev Suraski oraz Andi Gutmans ponownie rozpoczęli znaczącą modernizację silnika Zend, kamery mającą na celu dodanie do PHP modelu obiektowego, Szkoły policealne katowice podobnego do tych, mieszkania w szczawnicy 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, faty 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ą, szczawnica co sprawiało duże trudności, pozycjonowanie 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 , meble nowy, w3 domyślnie " wkompilowany " silnik baz danych [9] . 24 listopada 2005 roku ukazała się wersja 5.1, meble w której pojawił się PDO – ujednolicony sterownik oraz preprocesor zapytań umożliwiający komunikację z różnymi systemami baz danych.

[ edytuj ] PHP 6

W połowie roku 2005 zaczęły pojawiać się sygnały, f-18 że rozpoczęto wstępne prace nad PHP 6. Obecnie ta wersja znajduje się w fazie projektowania, nieruchomości szczawnica dostępne są jednak publiczne obrazy PHP w wersji źródłowej, europa jak również w wersji binarnej dla systemów Windows.

Zmiany koncentrują się wokół dalszych usprawnień modelu obiektowego oraz wycofania obsługi wybranych, Szczawnica nieruchomości przestarzałych rozwiązań. [10] [11] .

[ edytuj ] Moduły

Zobacz więcej w osobnym artykule: Moduły PHP .

Cała funkcjonalność PHP zawarta jest w czterech zbiorach modułów różniących się od siebie dostępnością dla programisty.

Moduły jądra 
Część silnika PHP; zawsze aktywne.
Moduły oficjalne 
Element każdej dystrybucji PHP; aktywowane ręcznie przez administratora serwera.
Repozytorium PECL  
Darmowe moduły o otwartym źródle tworzone przez programistów z całego świata, Zakopane apartamenty przeznaczone do samodzielnej kompilacji . Począwszy od wydania PHP 5 do PECL przeniesionych zostało wiele wcześniejszych modułów oficjalnych, opony zimowe najczęściej tych niestabilnych lub rzadko używanych.
Repozytorium PEAR  
Zbiór realizujących typowe zadania klas o ujednoliconej budowie.

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ładnia

Wikibooks
Zobacz publikację na Wikibooks :
Składnia języka PHP

Składnia PHP bazuje na składni języków C , w1 Java oraz Perl .

<?php
$a = 5;
$b = 3;
 
function suma($zmienna1, Telefony $zmienna2)
{
	return $zmienna1 + $zmienna2; //Dodajemy argumenty i zwracamy wynik
}
 
echo suma($a, reksa $b); // 8
?>

Cały kod PHP musi zawierać się pomiędzy znacznikami: <?php oraz ?>, ewery w przeciwnym wypadku interpreter nie wykona kodu. Starsze wersje dopuszczały także parę znaczników <? oraz ?>. Obecnie są one niezalecane, rabaeberek a w PHP 6 nie będą dostępne.

[ edytuj ] Przykładowe zastosowanie

Niektóre aplikacje napisane w PHP korzystają z formularzy. Przykładowa aplikacja przypominająca prosty kalkulator została zamieszczona poniżej:

<pre>
<?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.";
}
?>
</pre>
<!-- Poniżej znajduje się sam formularz -->
<form action="<?php print_r($_SERVER['PHP_SELF']); ?>" 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>

[ edytuj ] Klasy i obiekty

Klasy 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, aktualności wykonam operacje zawarte w tej metodzie.<br />';
  }
 
  public function zrob_cos()
  {
    echo 'Właśnie wykonywana jest funkcja zrob_cos()<br />';
  }
 
  public function __desctruct()
  {
    echo 'Jestem destruktorem klasy MojaKlasa. Za każdym razem gdy usuniesz mój obiekt, pufka 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 ] Komentarze

Rozróż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 zmienne

Zmienne 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ę:

Typ Opis
string Łańcuch tekstowy Objęty znakami cudzysłowu lub składnią here document ulega interpolacji
int Liczba całkowita Obsługiwane są stałe całkowite w notacji dziesiętnej, szesnastkowej oraz ósemkowej
float Liczba zmiennoprzecinkowa
bool Typ logiczny Do fałszu konwertowanych jest wiele postaci zmiennych innych typów
array Tablica Przechowuje dowolną liczbę elementów dowolnego typu. Indeksowana ciągami znaków lub liczbami całkowitymi
object Obiekt
null Zmienna niezdefiniowana
resource Zasób spoza PHP przykładowo deskryptor pliku lub połączenie z bazą danych

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 obiekty

Elementy 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 [12] , które pozwalają na analizę klas, funkcji oraz rozszerzeń. Bez zainstalowania odpowiedniego rozszerzenia nie umożliwiają one jednak zmiany tych struktur w czasie wykonywania.

[ edytuj ] Funkcje i struktury kontrolne

PHP 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ów

Wersja 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.

[ edytuj ] Obsługa baz danych

Php obsługuje większość znanych baz danych: Mysql, Postgres, Oracle, Mssql, DB2. Poniżej przedstawiono wykonanie zapytania SQL na bazie danych Mysql:

<?php
        mysql_connect('localhost',  'user',  'password');
        mysql_select_db('news');
 
        $ret = mysql_query('SELECT * FROM articles');
        echo '<ul>';
        while($row = mysql_fetch_assoc($ret))
        {
                echo '<li>'.$row['id'].' - '.$row['nazwa'].'</li>';     
        }
        mysql_close();
        echo '</ul>';
 
?>

[ edytuj ] Zastosowanie

[ edytuj ] Popularność

W roku 1997 język PHP/FI obsługiwało ok. 50 tysięcy domen internetowych . W 2004 roku udział języka PHP wynosił ok. 15 milionów domen. Rok później wzrost popularności uległ jednak zahamowaniu [5] [13] .

[ edytuj ] Aplikacje

W 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

  1. 1,0 1,1 Obecna nazwa, PHP Hypertext Preprocessor, jest akronimem rekurencyjnym , dawniej skrót rozwijano jako Personal Home Page
  2. PHP: License Information
  3. PHP: General Installation Considerations - Manual - uwagi dot. instalacji na różnych systemach operacyjnych
  4. Apache Tutorial: Introduction to Server Side Includes – kurs Apache – wprowadzenie do SSI
  5. 5,0 5,1 PHP: History of PHP and related projects – Manual
  6. Odkryli, że PHP/FI ma zbyt małe możliwości jak na potrzeby aplikacji e-commerce, którą tworzyli na uniwersytecie
  7. Jego nazwa to kompromisowe połączenie imion twórców projektu
  8. SPL-StandardPHPLibrary
  9. PHP: Migrating from PHP 4 to PHP 5 – Manual
  10. Minutes PHP Developers Meeting – plany rozwoju PHP 6
  11. PHP 6.0.0PHP Release Management Wiki
  12. PHP: Reflection – Manual
  13. PHP: PHP Usage Stats

[ edytuj ] Zobacz też

Wikibooks
Zobacz publikację na Wikibooks :
PHP

Paradygmaty programowania:

Platforma LAMP:

[ edytuj ] Linki zewnętrzne


Koniec wojny gazowej? Czesi: Jest porozumienie!
Czeskie przewodnictwo w UE poinformowało w czwartek wieczorem, że jest porozumienie z Rosją ws. rozmieszczenia misji unijnych obserwatorów, którzy mają monitorować przepływ rosyjskiego gazu przez Ukrainę do Unii Europejskiej.
Radom: Pożar kamienicy, mieszkańcy na mrozie
W czwartek wieczorem zapaliła się dwukondygnacyjna kamienica w centrum Radomia. Prawdopodobnie przyczyną pożaru był wybuch butli gazowej. Ewakuowano kilkanaście osób.
Prezydent Kaczyński twardy, a nie miękki
Prezydent Lech Kaczyński przybył w czwartek wieczorem do czeskiej Pragi. W planie kilkugodzinnej wizyty są rozmowy z prezydentem Vaclavem Klausem i premierem Mirkiem Topolankiem. Jednym z głównych tematów rozmów będzie sprawa kryzysu gazowego.
Przerażająca relacja Czerwonego Krzyża z Gazy
W niezwykle ostrych słowach Międzynarodowy Czerwony Krzyż upomniał Izrael za uniemożliwianie lub utrudnianie karetkom pogotowia wywożenia rannych z terenów walk w Strefie Gazy.
Chiny już nie chcą pożyczać pieniędzy Ameryce
Chiny zaczynają ograniczać pożyczanie pieniędzy USA w postaci wykupywania amerykańskich obligacji skarbowych - pisze czwartkowy "New York Times". Na krótką metę może to być bolesne dla zadłużonych i pogrążonych w recesji Stanów Zjednoczonych.
Junio | opony zimowe | walki bokserskie | szkoły dla dorosłych | manchester airport parking HOME , pozycjonowanie , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,