PHP – Wikipedia

before-content-x4

PHP: hipertekstowy preprocesor [[[ 41 ] , lepiej znany pod jego akronimem Php (auto-referencyjny akronim), to bezpłatny język programowania [[[ 42 ] , głównie używane do tworzenia dynamicznych stron internetowych za pośrednictwem serwera internetowego [[[ 41 ] , ale może również funkcjonować jak każdy język interpretowany w sposób lokalny. PHP jest językiem zorientowanym na obiekt.

after-content-x4

PHP umożliwił stworzenie dużej liczby słynnych stron internetowych, takich jak Facebook i Wikipedia [[[ 43 ] . Jest uważany za jedną z podstaw dynamicznych witryn SO, ale także aplikacje internetowe.

PHP to język skryptu używany najczęściej po stronie serwera: w tej architekturze serwer interpretuje kod PHP żądanych stron internetowych i generuje kod (na przykład HTML, XHTML, CSS) i danych (JPEG, GIF, PNG według przykładu ), które można interpretować i renderować przez przeglądarkę internetową. PHP może również generować inne formaty, takie jak WML, SVG i PDF.

Został zaprojektowany, aby umożliwić tworzenie dynamicznych aplikacji, najczęściej opracowywanych dla Internetu. PHP jest najczęściej w połączeniu z serwerem Apache, chociaż można go zainstalować na większości serwerów HTTP, takich jak IIS lub Nginx. To sprzężenie pozwala odzyskać informacje z bazy danych, systemu plików (zawartość pliku i struktura drzewa) lub bardziej po prostu dane wysyłane przez przeglądarkę w celu interpretacji lub przechowywania do użytku.

Jest to nieznany i elastyczny język, a zatem łatwy do nauczenia przez początkującego, ale zatem wady bezpieczeństwa mogą szybko pojawić się w aplikacjach. Pragmatyczny, PHP nie przylga na teorię i ma tendencję do wyboru najbardziej bezpośredniej ścieżki. Jednak nazwy funkcji (a także przejścia argumentów) nie zawsze szanują jednolitą logikę, która może być szkodliwa dla nauki.

Jego użycie zaczyna się od przetwarzania formularzy, a następnie od dostępu do baz danych. Dostęp do baz danych jest łatwy po instalacji odpowiednich modułów wykonanych na serwerze. Najbardziej oczywistą siłą tego języka jest to, że pozwoliła on na łatwe rozwiązanie wcześniej skomplikowanych problemów z czasem i dlatego stał się istotnym elementem ofert zakwaterowania.

Jest to wieloplatformowe: tak samo w systemie Linux, jak w systemie Windows, łatwo pozwala odnawiać ten sam kod w prawie podobnym środowisku (chociaż powinien uwzględniać reguły struktur drzew repertuarowych, które mogą się zmienić).

after-content-x4

Bezpłatny, bezpłatny, łatwy w użyciu i instalacja, ten język wymaga, jak każdy język programowania dobrego zrozumienia głównych zwykłych funkcji, a także ostrej wiedzy na temat problemów bezpieczeństwa związanych z tym językiem.

Wersja 5.3 wprowadziła wiele nowych funkcji: nazwy nazw (Namepace) – podstawowy element rozwoju rozszerzeń, bibliotek i strukturalnych frameworków, funkcji anonimowych, zamknięć itp.

W 2018 r. Prawie 80% stron internetowych używa języka PHP w różnych wersjach [[[ 44 ] .

Język PHP był przedmiotem od kilku lat, krajowych rajdów zorganizowanych przez AFUP [[[ 45 ] (Francuskie Stowarzyszenie Użytkowników PHP), w którym stwierdzono, że programy programowania i środowiskowe wymieniają się wokół PHP i jego programistów. Stowarzyszenie organizuje zatem dwa wydarzenia [[[ czterdzieści sześć ] Major: „Forum PHP”, zwykle pod koniec roku, i „Dzień Afup”, który odbywa się w pierwszej połowie, jednocześnie w kilku miastach.

Język PHP został utworzony w 1994 roku przez Rasmusa Lerdorfa dla swojej strony internetowej. Pierwotnie była to biblioteka oprogramowania w C [[[ 47 ] które trzymał ślad odwiedzających, którzy przybyli, aby skonsultować się z CV. Gdy dodał nowe funkcje, Rasmus przekształcił bibliotekę w implementację zdolną do komunikowania się z bazami danych i tworzenia dynamicznych i prostych aplikacji do sieci. Następnie Rasmus postanowił opublikować swój kod, aby każdy mógł go użyć i cieszyć się nim [[[ 48 ] . PHP nazywano następnie php/fi (dla P Oserson H ome P Narzędzia wiekowe/ F Orm I nterpreter ). W 1997 r. Dwóch studentów, Andi Gutmans i Zeev Suraski, przebudowało serce PHP/FI. Ta praca spowodowała rok później w wersji 3 PHP, która następnie stała się PHP: hipertekstowy preprocesor . Wkrótce potem Andi Gutmans i Zeev Suraski zaczęli przepisywać wewnętrzny silnik PHP. To jest ten nowy silnik, zwany Silnik Zend – słowo Zend jest skurczem Ona Ten I A Nd I – który służył jako podstawa do wersji 4 PHP [[[ 49 ] .

Używać [[[ modyfikator |. Modyfikator i kod ]

W 2002 roku PHP był używany przez ponad 8 milionów stron internetowych na całym świecie [[[ 50 ] , w 2007 r. Przez ponad 20 milionów [[[ 51 ] aw 2013 roku o ponad 244 miliony [[[ 52 ] .

Ponadto PHP staje się najczęściej używanym językiem programowania internetowego od kilku lat:

Rok Udział w rynku
2010 75%
dwa tysiące trzynaście 75% [[[ 53 ]
2016 82% [[[ 54 ]
2022 78% [[[ 55 ]

Wreszcie w 2010 r. PHP jest językiem, którego oprogramowanie typu open source jest najczęściej używane w firmach, z 57% wskaźnikiem penetracji [[[ 56 ] .

Wersje [[[ modyfikator |. Modyfikator i kod ]

Z i nowy proces dostarczania PHP [[[ 57 ] , cykl dostarczania PHP sprowadza się do rocznej aktualizacji ze znacznymi zmianami funkcjonalnymi.
Żywotność oddziału wynosi 3 lata, pozostawiając trzy stabilne i utrzymywane oddziały (oznacza to, że gdy nowa wersja PHP 5.x jest dostępna, wersja 5.x-3 nie jest już obsługiwana).

Wersja 8.2 [[[ modyfikator |. Modyfikator i kod ]

Wydany 8 grudnia 2022 r. Z:

  • Zajęcia w czytaniu same: klasa odczytu oznacza, że ​​wszystkie argumenty jego producenta są domyślnie tylko czytać ;
  • typy zero W PRAWDA I FAŁSZ ;
  • stałe w cechach;
  • Normalna postać typu rozłącznego (kombinacja związku i przecięcia).

Wersja 8.1 [[[ modyfikator |. Modyfikator i kod ]

Wersja 8.1, wydana 25 listopada 2021 r., Wprowadza nowe funkcje, takie jak:

  • Wyliczenia [[[ 58 ] ;
  • Włókna do tworzenia coroutinów [[[ 59 ] ;
  • własność tylko czytać Aby zapobiec zmodyfikowaniu zmiennej [[[ 60 ] .

Wersja 8 [[[ modyfikator |. Modyfikator i kod ]

Wydał go , ta główna wersja odróżnia się głównie funkcjonalnością „kompilacji w locie” ( Just-in Time Compilacja [[[ sześćdziesiąt jeden ] ), co umożliwia wzrost prędkości wykonywania ponad 45% [[[ 62 ] Dla niektórych aplikacji internetowych. Wprowadzane są również inne nowe produkty, takie jak:

  • les słabe mapy [[[ 63 ] ;
  • LA Nierówny interfejs [[[ sześćdziesiąt cztery ] ;
  • rzut wyrażenie [[[ 65 ] .

Wersja 7.4 [[[ modyfikator |. Modyfikator i kod ]

Wersja 7.4 wydała [[[ 66 ] . Ma być utrzymywane do czasu .

Wersja 7.4 wyróżnia się na podstawie poprzednich wersji::

  • Typtowane właściwości 2.0 [[[ sześćdziesiąt siedem ] ;
  • Wstępne ładowanie [[[ 68 ] ;
  • Nuil [[[ 69 ] ;
  • Popraw openSSL_Random_Pseudo_Bytes [[[ 70 ] ;
  • słabe odniesienia [[[ 71 ] ;
  • FFI (interfejs funkcji zagranicznych) [[[ 72 ] ;
  • Rozszerzenie skrótu wszechmocnego [[[ siedemdziesiąt trzy ] ;
  • Hash hasła [[[ 74 ] ;
  • Podział łańcuchów wielodłodkowych [[[ 75 ] ;
  • Refleksja na temat odniesień [[[ 76 ] ;
  • Wycofanie ext/wddx [[[ 77 ] ;
  • Nowy spersonalizowany mechanizm serializacji obiektu [[[ 78 ] .

Wersja 7.3 [[[ modyfikator |. Modyfikator i kod ]

. , wydanie wersji 7.3 podkreślono:

  • Ewolucja składni Herredoc i nocnej [[[ 79 ] ;
  • Zarządzanie przypisaniem odniesienia i dekonstrukcja tabeli z `listą ()` ` [[[ 80 ] ;
  • Zarządzanie PCRE2 [[[ 81 ] ;
  • Funkcja L’PReiction de la fonction `hrtime ()` ` [[[ 82 ] .

Wersja 7.2 [[[ modyfikator |. Modyfikator i kod ]

. , wersja PHP 7.2, która używa Zend Silnik 2 , wprowadził bardziej wydajne modelowanie obiektów, zarządzanie błędami opartymi na modelu wyjątków, a także funkcje zarządzania dla firm. PHP 5 wprowadza wiele nowych funkcji, takich jak obsługa SQLite, a także sposoby obsługi plików i struktur XML na podstawie libxml2 :

  • Prosty API o nazwie simplexml;
  • Dość kompletny interfejs API modelu Objex;
  • interfejs XPath przy użyciu obiektów DOM i SimplexML;
  • integracja libxslt dla transformacji XSLT poprzez rozszerzenie XSL;
  • Znacznie lepsze zarządzanie obiektami w porównaniu do PHP 4, z możliwościami, które mają tendencję do zbliżania się do możliwości Java.

Wersja 7 (PHP7) [[[ modyfikator |. Modyfikator i kod ]

W związku z różnymi orientacjami przyjętych przez język dostarczony przez PHP 6 część programistów proponuje nazwać wersję następującą PHP 5 „PHP 7” zamiast „PHP 6”. Głosowanie wśród deweloperów potwierdza tę propozycję 58 głosów przeciwko 24 [[[ 83 ] .

PHP 7.0.0 został wydany w .

Nowa wersja oferuje optymalizację kodu i, według Zend, oferuje wydajność przekraczającą wydajność maszyn wirtualnych, takich jak HHVM [[[ 84 ] W [[[ 85 ] . Zewnętrzne testy porównawcze wykazują podobną wydajność dla HHVM i PHP 7, z niewielką przewagą HHVM w większości scenariuszy [[[ osiemdziesiąt sześć ] .

PHP 6 i Unicode [[[ modyfikator |. Modyfikator i kod ]

W 2005 r. Projekt uczynienia PHP oryginalnym językiem Unicode został uruchomiony przez Andrei Zmavski, polegając na bibliotece międzynarodowych komponentów dla Unicode (ICU) i wykorzystując UTF-16 do reprezentowania kanałów znaków w silniku silnika [[[ osiemdziesiąt siedem ] .

Ponieważ stanowiło to poważną zmianę zarówno w funkcjonowaniu języka, jak i w kodzie PHP utworzonym przez jego użytkowników, postanowiono zintegrować to z nową wersją 6.0 z innymi ważnymi funkcjami, a następnie w rozwoju [[[ 88 ] . Jednak brak ekspertów programistów w Unicode, a także problemy z wydajnością wynikające z konwersji kanałów z i do UTF-16 (rzadko używane w kontekście internetowym), doprowadził do powtarzającego się odroczenia dostarczania tej wersji [[[ 89 ] . W związku z tym w 2009 roku utworzono wersję 5.3, integrując wiele funkcji, które nie są powiązane z Unicode, które początkowo zostały zaplanowane dla wersji 6.0, w szczególności obsługę przestrzeni nazewnictwa (nazwa) i funkcji anonimowych. W , Projekt 6.0 Integrujący Unicode został porzucony, a wersja 5.4 została przygotowana w celu zintegrowania większości funkcji, które nie są powiązane z Unicode wciąż w oddziale 6.0, takich jak linie lub rozszerzenie zamknięcia do modelu obiektu [[[ 90 ] .

Od tego czasu projekt przekazał przewidywalny (roczny) cykl dostawy zawierający znaczące postępy, ale zawierał jednocześnie zachowanie kompatybilności retro z istniejącym kodeksem PHP (5.4 w 2012 r., 5,5 w 2013 r., 5,6 zaplanowane na lato 2014). Z [[[ 91 ] , idea nowej głównej wersji wprowadzającej Unicode, ale na podstawie UTF-8 (w dużej mierze ze standardu sieci dla Unicode) i umożliwia pewne zmiany, które mogą przełamać kompatybilność retro za pomocą starego kodu PHP, jest ponownie omówiona, a RFC są teraz sortowane zgodnie z ich wdrożeniem w 5.x (rozwój nie powoduje lub marginalnie przerwy w kompatybilności retro) lub w przyszłej wersji głównej (rozwój i rozwój silników głównych silników obejmujących rosnącą niekompatybilność).

Zauważyć [[[ modyfikator |. Modyfikator i kod ]

Należy zauważyć, że historycznie PHP miał domyślną konfigurację faworyzującą elastyczność bezpieczeństwa (na przykład rejestr globalny, który został domyślnie aktywowany do PHP 4.2 [[[ 92 ] ). Ta elastyczność pozwoliła wielu programistom nauczyć się PHP, ale tył medalu polegał na tym, że wiele aplikacji PHP było słabo bezpiecznych. Obiekt był dobrze przyjęty przez phpgroup, która konfiguruje domyślne konfiguracje podkreślające bezpieczeństwo. Spowodowało to reputację niewygodnego języka, reputacja niepewności, która nie ma powodu być [Ref. niezbędny] .

Szczegół pełnej historii wersji [[[ modyfikator |. Modyfikator i kod ]

Historia wersji
Wersja główna Mniejsza wersja Wsparcie Data wydania Notatki
1.0 1.0.0 Stara wersja, nie obsługiwana Oficjalnie nazywane „Narzędzia osobistej strony głównej (narzędzia PHP)”, narzędzia do strony osobistej. To pierwszy wygląd nazwy „PHP” [[[ 93 ] .
2.0 2.0.0 Stara wersja, nie obsługiwana
3.0 3.0.0 Stara wersja, nie obsługiwana Przejście osoby do zespołu programistów. Zeev Suraski i Andi Gutmans przepisują podstawę tej wersji [[[ 93 ] .
4.0 4.0.0 Stara wersja, nie obsługiwana Dodanie bardziej zaawansowanego systemu analizy składniowej zwanej silnikiem Zend. Silnik ten przebiega na dwóch etapach analizy, a następnie wykonania.
4.1.0 Stara wersja, nie obsługiwana Wprowadza je Superglobals ( $ _Get W $ _Post W $ _Session itp.)
4.2.0 Stara wersja, nie obsługiwana Domyślnie wyłącz rejestr_Globals. Dane z sieci nie są już wkładane bezpośrednio do ogólnej przestrzeni nazwy, zmniejszając w ten sposób możliwości błędów bezpieczeństwa
4.3.0 Stara wersja, nie obsługiwana Przedstaw CLI, oprócz CGI.
4.4.0 Stara wersja, nie obsługiwana Dodanie instrukcji (strony dostępne przez polecenie Człowiek ) dla skryptów fpize I php-config .
5.0 5.0.0 Stara wersja, nie obsługiwana Zend Engine II z nowym modelem obiektowym [[[ dziewięćdziesiąt cztery ] .
5.1 5.1.0 Stara wersja, nie obsługiwana Poprawa wydajności poprzez wprowadzenie zmiennych kompilacji w przełomowym silniku PHP [[[ dziewięćdziesiąt cztery ] .
5.2 5.2.0 Stara wersja, nie obsługiwana Domyślna aktywacja rozszerzenia „Filtr” [[[ dziewięćdziesiąt cztery ] .
5.3 5.3.0 Stara wersja, nie obsługiwana [[[ 95 ] Obsługa nazwisk; Późne wiązania statyczne (rozdzielczość statyczna w locie); Etykiety skokowe (Limited Goto); zamknięcia (zamknięte); Native PHP Archives (Phar); Cykliczne ujęcia referencyjne; trwałe połączenie z MySQLI, SQLite3; Dodanie FileInfo jako wymiany MIME_MAGIC dla lepszego wsparcia MIME; Skrócić dla operatora trójskładnikowego (? :); funkcje anonimowe; Wiele poprawek błędów [[[ 96 ]
5.3.3 Stara wersja, nie obsługiwana Wprowadzono PHP-FPM [[[ 97 ]
5.4 5.4.0 Stara wersja, nie obsługiwana Wsparcie dla linii; krótka składnia wprowadzonych tabel; Dostęp do indeksów tabel w ujściu funkcji; Zamknięcia wspierają to; [[[ 98 ] poświęcone rozwojowi; Wsparcie DTRACE; Usunięcie rozszerzeń Magiczne cytaty W tryb bezpieczeństwa W Register_Globals I Register_long_Array [[[ 98 ] .
5.4.26 Stara wersja, nie obsługiwana Dodanie ldap_modify_batch ()
5.5 5.5.0 Stara wersja, nie obsługiwana Wsparcie dla generatorów i coroutins; Dodanie skrótu haseł; Standardowa integracja systemu pamięci podręcznej Zend Opcache [[[ 99 ] ; korekta wielu błędów; Windows XP i Windows Server 2003 Windows Support; Aktualizacja biblioteki GD; Funkcje MySQL_ są teraz uważane za przestarzałe (podkreślając MySQLI_ i PDO_MYSQL).
5.5.4 Stara wersja, nie obsługiwana Ulepszenie fputcsv ().
5.5.5 Stara wersja, nie obsługiwana Nowy Opcache_Compile_File (), obsługa systemu GNU Hurd, dodanie typu MIME Application/PDF na serwerze programistycznym.
5.5.6 Stara wersja, nie obsługiwana Ulepszenie wydajności array_merge () i func_get_args ().
5.5.7 Stara wersja, nie obsługiwana Dodanie wsparcia typów getAllheaders () i MIME na serwerze programistycznym, dodanie apache_respons_headers ().
5.5.10 Stara wersja, nie obsługiwana Przejście do PCRE 8.34. Dodanie ldap_modify_batch ()
5.5.13 Stara wersja, nie obsługiwana Dodanie typów MIME XSL/XML do zintegrowanego serwera programistycznego.
5.6 5.6.0 Stara wersja, nie obsługiwana Nowa składnia dla różnych funkcji parametrów i nastrojów parametrów, import funkcji w przestrzeniach nazw, integracja debossier phpdbg w standardzie, poprawa rozszerzenia pocztowego, wyrażenia przyjęte dla definicji stały Zend Silnik, nowa Method Method __debuginfo () dostarczająca informacji do debugowania obiektów, różne ulepszenia obsługi SSL/TLS, dodając operatora wykładniczego ” ** », Waga pobierania większa niż 2 Iść teraz obsługiwane.
5.6.32 Stara wersja, nie obsługiwana Naprawiono 3 błędy (data, McRypt, PCRE)
5.6.33 Stara wersja, nie obsługiwana Korekta de 2 Bogues (GD, Phar)
7.0 7.0.0 Stara wersja, nie obsługiwana Poprawiona wydajność dzięki silnikowi „PHPNG” (do dwa razy szybsze niż PHP 5.6), jednorodne wsparcie dla 64 -bitowych architektur, dodając wyjątki do przechwytywania błędów śmiertelnych, dodając operatorów ” ? »(Dit« Null Koalescing (W) “) I ” <=> „(Zwany„ Połączone porównanie ”), możliwość wyraźnego ogłoszenia typu zwróconego przez funkcję, a także typów skalarnych argumentów, poparcie klas anonimowych [[[ 100 ]
7.0.25 Stara wersja, nie obsługiwana [[[ 101 ] Naprawiono 14 błędów.
7.0.26 Stara wersja, nie obsługiwana [[[ 102 ] Naprawiono 18 błędów.
7.0.27 Stara wersja, nie obsługiwana Korekta 11 błędów.
7.0.28 Stara wersja, nie obsługiwana Korekta błędów.
7.0.29 Stara wersja, nie obsługiwana Naprawiono 1 błąd.
7.0.30 Stara wersja, nie obsługiwana Naprawiono 4 błędy.
7.0.31 Stara wersja, nie obsługiwana Naprawiono 3 błędy.
7.0.32 Stara wersja, nie obsługiwana Korekta de 1 Bogues: Apache2 (XSS)
7.0.33 Stara wersja, nie obsługiwana Naprawiono 5 błędów: rdzeń, IMAP, faza
7.1 7.1.0 Stara wersja, nie obsługiwana Typy zerowe (W) , rodzaj powrotu próżnia , pseudo typu Iterable , widoczność stałych klas, ulepszenia w lista() , zapasy kilku rodzajów wyjątków, itp. [[[ 103 ]
7.1.1 Stara wersja, nie obsługiwana [[[ 104 ] Korekta 33 błędów i optymalizacja pamięci MySQlnd.
7.1.3 Stara wersja, nie obsługiwana [[[ 105 ] Korekta 24 błędów.
7.1.11 Stara wersja, nie obsługiwana [[[ 106 ] Korekta 19 błędów.
7.1.12 Stara wersja, nie obsługiwana [[[ 107 ] Naprawiono 18 błędów.
7.1.13 Stara wersja, nie obsługiwana Korekta 20 błędów.
7.1.14 Stara wersja, nie obsługiwana Korekta błędów.
7.1.15 Stara wersja, nie obsługiwana Naprawiono 12 błędów.
7.1.16 Stara wersja, nie obsługiwana Naprawiono 9 błędów.
7.1.17 Stara wersja, nie obsługiwana Naprawiono 14 błędów.
7.1.18 Stara wersja, nie obsługiwana Naprawiono 6 błędów.
7.1.19 Stara wersja, nie obsługiwana Naprawiono 6 błędów.
7.1.20 Stara wersja, nie obsługiwana Naprawiono 15 błędów.
7.1.21 Stara wersja, nie obsługiwana Korekta de 16 Bogues Sur: kalendarz, filtr, PDO_firebird, PDO_PGSQL, SQLITE3, Standard & Zip
7.1.22 Stara wersja, nie obsługiwana 13 września 2018 r Korekta de 20 Bogues Sur: Core, Apache2, Bz2, GetText, IconV, INTL, Libxml, MBString, Opcache, OpenSSL, phpdbg, SPL, standard i libzip
7.1.23 Stara wersja, nie obsługiwana Korekta de 11 Bogues Sur: rdzeń, curl, iconv, opcache, posix, odbicie, standard, zlib
7.1.24 Stara wersja, nie obsługiwana Correction de 11 Bogues Sur: Core, Data, FCGI, FTP, INTL, Standard, Schower, XML
7.1.25 Stara wersja, nie obsługiwana 06 grudnia 2018 r Korekta de 13 Bogues Sur: Core, FTP, Iconv, IMAP, OBDC, Opcache, Phar, PGSQL, MODE, Gniazdki
7.2 7.2.0 Stara wersja, tylko poprawki bezpieczeństwa [[[ 108 ] Dodanie interfejsu Policzalny , stały Php_os_family itd.
7.2.1 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Naprawiono 21 błędów.
7.2.2 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekta 25 błędów.
7.2.3 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 18 błędów.
7.2.4 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 16 błędów.
7.2.5 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 18 błędów.
7.2.6 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 8 błędów.
7.2.7 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 7 błędów.
7.2.8 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] 19 poprawek błędów.
7.2.9 Stara wersja, tylko poprawki bezpieczeństwa 16 sierpnia 2018 [[[ 109 ] 9 poprawek błędów.
7.2.10 Stara wersja, tylko poprawki bezpieczeństwa 13 września 2018 r [[[ 109 ] 19 poprawek błędów.
7.2.11 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 13 błędów.
7.2.12 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] 20 poprawek błędów.
7.2.13 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty 16 błędów.
7.2.14 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.15 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.16 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.31 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.32 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.33 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.2.34 Stara wersja, tylko poprawki bezpieczeństwa [[[ 109 ] Korekty torfowiska.
7.3 7.3.0 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Składnia heredoc i nowdoc bardziej elastyczna, kończąc na wywołaniu funkcji, JSON_TROW_ON_ERROR , Przypisanie odniesienia z funkcją lista() W is_countable () W array_key_first () I array_key_last () , Algorytm hashu Argon2ID, itp. [[[ 111 ]
7.3.1 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.2 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.3 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.4 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.5 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.6 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.7 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.8 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.9 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.10 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.11 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.12 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.13 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.14 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.15 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.16 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.17 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.18 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.19 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.20 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.21 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.22 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.23 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.3.24 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 110 ] Korekty torfowiska.
7.4 7.4.0 Stara wersja, ulepszenia i poprawki bezpieczeństwa Typowe właściwości 2.0, ładowanie wstępne, operator przypisania według zerowej koalescencji, openssl_random_pseudo_bytes Może uruchomić wyjątek, dodać słabe odniesienia, rozszerzenie skrótu interfejsu FFI (interfejs funkcji obcych) jest zawsze obowiązkowe, rejestr hashów hasła, podzielony na wiele powły Obiekty i korekta wielu błędów. [[[ 112 ]
7.4.1 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.2 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.3 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.4 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.5 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.6 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.7 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.8 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.9 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.10 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.11 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.12 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
7.4.13 Stara wersja, ulepszenia i poprawki bezpieczeństwa [[[ 112 ] Korekty torfowiska.
8.0 8.0.0 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa [[[ 113 ] „Kompilacja w locie” (kompilacja na czas [[[ sześćdziesiąt jeden ] ;
8.1 8.1.0 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 25 listopada 2021
8.1.1 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 16 grudnia 2021 Korekty torfowiska.
8.1.2 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 21 stycznia 2022 Korekty torfowiska.
8.1.3 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 17 lutego 2022 Korekty torfowiska.
8.1.4 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 17 Mars 2022 Korekty torfowiska.
8.1.5 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 14 kwietnia 2022 Korekty torfowiska.
8.1.6 Aktualna wersja, ulepszenia i poprawki bezpieczeństwa 12 maja 2022 Korekty torfowiska.
8.2 8.2.0 8 grudnia 2022
8.3 8.3.0 23 listopada 2023

PHP należy do dużej rodziny potomków C, których składnia jest bardzo blisko. W szczególności jego składnia i konstrukcja przypominają składki języków Java i Perl, z tym wyjątkiem, że kod PHP można łatwo mieszać z kodem HTML w pliku PHP.

W użyciu przeznaczonych do Internetu wykonanie kodu PHP ma miejsce w następujący sposób: Gdy odwiedzający poprosi o konsultację ze stroną witryny, ich przeglądarka wysyła żądanie do odpowiedniego serwera HTTP. Jeśli strona jest zidentyfikowana jako skrypt PHP (ogólnie dzięki rozszerzeniu .php ; Ta zawartość jest zwracana do serwera HTTP, który ostatecznie wysyła ją do klienta.

Ten schemat wyjaśnia tę operację:

Php arch shema.png

Często dodaje się dodatkowy krok: dialog między PHP a bazą danych. Klasycznie PHP otwiera połączenie z żądanym serwerem SGBD, przesyła żądania i odzyskuje wynik przed zamknięciem połączenia.

VIM zrzut ekranu w tle, wyświetlanie skryptu PHP, a po prawej wyniku skryptu interpretowanego przez php

Zastosowanie PHP jako dynamicznego generatora stron internetowych jest najbardziej rozpowszechnione, ale może być również używane jako programowanie lub skrypt na wierszu poleceń bez korzystania z HTTP lub serwera przeglądarki. Następnie umożliwia użycie wielu funkcji języka C i kilku innych bez konieczności kompilacji z każdą zmianą kodu źródłowego.

Aby przeprowadzić w systemie Linux/UNIX A skrypt PHP wykonywalny w wierszu poleceń, wystarczy, jak w Perl lub Bash, aby wstawić do kodu na linii frontu szulernia : W /Usr/bin/php [[[ 114 ] . Pod wydawcą rozwoju jako tartak, nawet w systemie Windows, pierwsza linia wystarczy, jeśli plik ma typ .php .

Istnieje również rozszerzenie nazywane Php-gtk Aby utworzyć aplikacje klientów graficznych na komputerze z biblioteką GTK+Graphics lub jej alternatywą WinBinder.

PHP ma dużą liczbę funkcji umożliwiających operacje w systemie plików, wykonywanie poleceń w terminalu, zarządzanie bazami danych, funkcje sortowania i skrótu, przetwarzanie stringów znaków, generowanie i modyfikacja „obrazów, algorytmów kompresji …

Silnik Wikipedia, MediaWiki, jest napisany w PHP i oddziałuje z bazą MySQL lub PostgreSQL

Witaj świecie [[[ modyfikator |. Modyfikator i kod ]

Kilka przykładów tradycyjnego świata Hello:

 Echo  'Witaj świecie' ;  ?>  

Echo Będąc strukturą języka, jest to możliwe – a nawet zalecane – nie umieszczać nawiasów.

Możliwe jest również użycie skróconej wersji:

Wyświetlany wynik:

Tagi [[[ modyfikator |. Modyfikator i kod ]

Kod PHP musi być włożony między znacznikami I ?> (Znacznik zamknięcia jest opcjonalny na końcu pliku).

Istnieją inne oceny dla tagów:

  • I ?> (krótka notacja z wyświetlaczem);
  • I ?> (krótka notacja bez wyświetlacza niedostępna w PHP 8);
  • <% I %> (notacja ASP);
  • (skrypt notacji).

Notacje inne niż standard ( I ?>) i krótka notacja z wyświetlaczem ( I ?>) nie są zalecane, ponieważ można je dezaktywować w konfiguracji serwera (php.ini lub .htaccess): przenośność kodu jest zatem zmniejszona.

Z php 7 notacje ASP i skryptu zostały usunięte [[[ 115 ] . Krótka notacja bez wyświetlacza nie pozostaje zalecana.

Instrukcje [[[ modyfikator |. Modyfikator i kod ]

Instrukcje są oddzielone przez ; (Nie jest to obowiązkowe po ostatniej instrukcji), a skoki linii nie zmieniają działania programu. Dlatego możliwe byłoby napisanie:

 Echo  'Witaj świecie' ;  Echo  'Jak się masz ?' ;  Echo  „Pogoda jest ładna, prawda?”  ?>  

Ze względu na czytelność zaleca się napisanie instrukcji jednego liniowego. Lepiej jest również napisać ostatni ; .

Struktury kontrolne [[[ modyfikator |. Modyfikator i kod ]

Kod PHP składa się z wywołań funkcji, w celu przypisania wartości do zmiennych, wszystkie oprawione w warunkach, pętle. Przykład :

 // Funkcja StrTolower odnosi się w niewielkim łańcuchu znaków przekazywany parametrem  $ lang  =  Strtolower ( $ _Post [[[ 'Tylko' ]);  Jeśli  ( $ lang  ===  „fr” )  {  Echo  'Mówisz po francusku !' ;  }  Elseif  ( $ lang  ===  'W' )  {  Echo  'Mówisz po angielsku!' ;  }  w przeciwnym razie  {  Echo  „Nie rozumiem, jaki jest twój język!” ;  }  

Stosuje się warunek, gdy wyrażenie w nawiasach jest oceniane do PRAWDA , i nie ma tego w przypadku FAŁSZ . W formie cyfrowej, 0 reprezentują FAŁSZ , I Pierwszy (i wszystkie inne liczby) reprezentują PRAWDA .

Poprzedni kod może być również napisany w ten sposób:

 $ lang  =  Strtolower ( $ _Post [[[ 'Tylko' ]);  $ islangfr  =  $ lang  ===  „fr” ;  $ ISLANGEN  =  $ lang  ===  'W' ;  Jeśli  ( $ islangfr )  {  Echo  'Mówisz po francusku !' ;  }  Elseif  ( $ ISLANGEN )  {  Echo  'Mówisz po angielsku!' ;  }  w przeciwnym razie  {  Echo  „Nie rozumiem, jaki jest twój język!” ;  }  

Tutaj testujemy równość między $ lang I „fr” , ale nie bezpośrednio w Jeśli : Test zwraca logikę (to znaczy albo PRAWDA , albo FAŁSZ ), który jest przechowywany w zmiennej $ is_lang_fr . Następnie wprowadzamy tę zmienną w Jeśli I to, w zależności od wartości zmiennej, przeprowadzi leczenie, czy nie.

Bloki Jeśli W Elseif I w przeciwnym razie są ogólnie ograniczone przez znaki { I } , które można pominąć, jak w poprzednich kodach, gdy bloki te zawierają tylko instrukcję.

Możliwe jest również pisanie W przeciwnym razie, jeśli W dwóch słowach, jak w C/C ++.

Generowanie kodu HTML [[[ modyfikator |. Modyfikator i kod ]

Na przykład możemy wygenerować kod HTML ze skryptem PHP:

 $ Nazwa  =  „Albert” ;  Echo  ' 
Dzień dobry '
. $ Nazwa . !!

' ;

Możliwe jest również użycie alternatywnej składni dla struktury IF/Else:

 $ nomsautory  =  [[[  „Albert” W  „Bertrand”  ];  $ nomencours  =  'Przeddzień' ;  ?>   Jeśli  ( In_Array ( $ nomencours W  $ nomsautory )) :  ?>  < P > Dzień dobry  Echo  $ nomencours ;  ?> ! P >   w przeciwnym razie :  ?>  < P > Nie jesteś autoryzowanym użytkownikiem! P >   Endif ;  ?>  

Innym podejściem jest połączenie całego kodu HTML w zmiennej i wykonanie echa zmiennej na końcu pliku:

 $ out  =  '' ;  // stopniowo dodajemy cały kod HTML  $ out  . =  ' 

A'

. 'B' . 'C

'
; $ out . = '

D'

. 'To jest' . 'F

' ; // Wyświetlamy zawartość Echo $ out ;

W przypadku, gdy użytkownik wolał użycie polecenia Echo Aby połączyć, będzie mógł uchwycić przepływ za pomocą funkcji OB_START () I OB_GET_CLEAN () :

 // Umieszczamy przepływ w znaczku  OB_START ();  // robimy wyświetlacze  Echo  'ABC'  .  " N " ;  Echo  „def”  .  " N " ;  wymagają raz  „File.php” ;  // wiele wyświetlaczy (echo)  // Zatrzymujemy bufor, odzyskujemy jego zawartość i umieszczamy tampon w pustym (dla możliwego następnego bufora)  $ out  =  OB_GET_CLEAN ();  // Wyświetlamy zawartość znaczków  Echo  $ out ;  

PHP, podobnie jak JavaScript, pozwala również zbudować model obiektu dokumentu ( Dom ) [[[ 116 ] , który pozwala utworzyć lub zmodyfikować dokument (x) HTML bez pisania HTML, jak pokazano w poniższym przykładzie:

 $ DOCTYPE  =  Domnoważenie :: CreatedOcumentType ( „html” );  $ DOM  =  Domnoważenie :: CreatedOcument ( zero W  „html” W  $ DOCTYPE );  $ html  =  $ DOM -> Dokmetelement ;  $ html -> głowa  =  $ DOM -> UtwórzELEMent ( 'głowa' );  $ html -> załącznik ( $ html -> głowa );  $ html -> głowa -> tytuł  =  $ DOM -> UtwórzELEMent ( 'tytuł' );  $ html -> głowa -> tytuł -> Nodevalue  =  „Przykład HTML” ;  $ html -> głowa -> załącznik ( $ html -> głowa -> tytuł );  $ html -> głowa -> znak  =  $ DOM -> UtwórzELEMent ( „Meta” );  $ html -> głowa -> znak -> setAttribute ( „http-equiv” W  'Typ zawartości' );  $ html -> głowa -> znak -> setAttribute ( 'treść' W  „tekst/html; Charset = UTF-8 ' );  $ html -> głowa -> załącznik ( $ html -> głowa -> znak );  $ html -> ciało  =  $ DOM -> UtwórzELEMent ( 'ciało' );  $ html -> załącznik ( $ html -> ciało );  $ html -> ciało -> P  =  $ DOM -> UtwórzELEMent ( 'P' );  $ html -> ciało -> P -> Nodevalue  =  „To jest akapit”. ;  $ html -> ciało -> załącznik ( $ html -> ciało -> P );  $ html -> ciało -> P -> Br  =  $ DOM -> UtwórzELEMent ( „Br” );  $ html -> ciało -> P -> załącznik ( $ html -> ciało -> P -> Br );  $ html -> ciało -> P -> A  =  $ DOM -> UtwórzELEMent ( 'A' );  $ html -> ciało -> P -> A -> Nodevalue  =  „To jest link”. ;  $ html -> ciało -> P -> A -> setAttribute ( „href” W  „kor --hble.html” );  $ html -> ciało -> P -> załącznik ( $ html -> ciało -> P -> A );  Echo  $ DOM -> Savehtml ();  

Który tworzy następujący kod HTML:

 < html >  < głowa >  < tytuł > Przykład HTML tytuł >  < Meta  HTTP-Equiv = "Typ zawartości"  treść = „Text/html; Charset = UTF-8” >  głowa >  < ciało > < P > To jest akapit. < Br > < A  Href = „Cable.html” > To jest link. A > P > ciało >  html >  

Ta metoda jest jednak mało używana do generowania pełnego dokumentu, jest ogólnie używana do generowania pliku XML.

Komenda phpinfo () jest również używany do generowania kodu HTML opisującego ustawienia serwera; Jest również szeroko stosowany do testowania prawidłowego wykonywania silnika wykonania PHP.

Programowanie obiektowe [[[ modyfikator |. Modyfikator i kod ]

Podobnie jak w C ++ i Java, PHP pozwala zaprogramować obiekt zorientowany na obiekt, tworząc klasy zawierające atrybuty i metody, które można utworzyć lub używać w statycznym.

Jednak PHP jest prostym językiem dziedzictwa [[[ 117 ] To znaczy, że klasa może odziedziczyć tylko po jednej innej klasie (w przeciwnym razie konieczne jest użycie linii do symulacji wielokrotnego dziedzictwa przez skład). Jednak interfejsy mogą przedłużyć kilka innych [[[ 118 ] .

Oto przykład tworzenia klasy:

 interfejs  Etrevivant  {  // Ta metoda musi zostać zadeklarowana w klasach implementujących ten interfejs.  publiczny  funkcjonować  Isdad () :  Bool ;  }  klasa  Zaginiony  przybory  Etrevivant  {  publiczny  const  PV_Initial  =  2000 ;  prywatny  int  $ PV  =  0 ;  // Producent: Jest to wywoływane podczas instancji obiektu.  // Ten producent ma opcjonalny parametr.  publiczny  funkcjonować  __skonstruować ( int  $ PV  =  0 )  {  Jeśli  ( $ PV  <  0  ||  $ PV  >  100000000 )  {  $ to -> PV  =  samego siebie :: PV_Initial ;  }  w przeciwnym razie  {  $ to -> PV  =  $ PV ;  }  }  // akcesoriów  publiczny  funkcjonować  GetPv () :  int  {  powrót  $ to -> PV ;  }  // Implementacja metody interfejsu.  publiczny  funkcjonować  Isdad () :  Bool  {  powrót  $ to -> PV  ===  0 ;  }  }  // tworzenie osobistej klasy dzieci  klasa  Magik  rozszerza  Zaginiony  {  prywatny  int  $ gdzie ;  }  // Tworzenie ciała klasowego  $ mag  =  nowy  Magik ( 1000 );  // użycie obiektu  Echo  `` Twój maga ma ''  .  $ mag -> GetPv ()  .  „PV.” ;  // stałe klasowe  Echo  „Domyślny PV przypisany do nowej postaci to”  .  Zaginiony :: PV_Initial  .  -. ;  // Zniszczenie obiektu  nieoprawny ( $ mag );  

Podwyższona maskotka PHP.

Podobnie jak wiele projektów open source, PHP ma maskotkę. To eleganckie, narysowane w 1998 roku przez El Roubio [[[ 119 ] .

El Roubio został zainspirowany podobieństwem liter PHP ze słoniem i faktem, że dwie litery języka są już obecne w tym słowie, co umożliwiło stworzenie eleganckiego neologizmu. Wszystkie prace El Roubio są dystrybuowane na podstawie licencji GNU GPL. Plusz Elegancki [[[ 120 ] Niebieski istnieje. Inne wersje pojawiły się w ostatnich latach (różowy, żółty, czerwony, fioletowy i pomarańczowy) pod impulsem firm (architekt PHP lub technologie Zend) lub grup użytkowników, takich jak PHP Women lub PHP Amsterdam.

Witryna Afieldguidetetelephpants.net wymienia wszystkie istniejące Elephpants [[[ 121 ] .

  • Tydzień (MediaWiki, Dokuwiki ...)
  • Forum (phpbb, wanilia, ipb, punbb ...)
  • Facebook
  • Systemy zarządzania blogami (dotclear)
  • Systemy zarządzania treścią (zwane także CMS ) (WordPress, SPIP, ExpressionEngine, Drupal, Xoops, Joomla, K-box ...)
  • Administracja bazy danych (phpMyAdmin, phppgadmin, admirator ...)
  • Frameworks (Laravel, Symfony, Zend Framework, Codeigniter, CakePhp itp.)
  • Oprogramowanie ECM
  • BPM, CRM i OR ERP Software (Dolibarr ...)
  • E-commerce (Prestashop, WooCommerce, Magento, Oscommerce, Sylius itp.)
  • Partie polityczne (chrześcijańska Partia Demokratyczna (Francja) itp.)
  • Uniwersytety i szkolnictwo wyższe łączące sztukę i nauki (inżynier IMAC [[[ 122 ] , W górę itp.)

Serwer WWW w architekturze trzech trzecich składa się z systemu operacyjnego, serwera HTTP, języka serwera i wreszcie systemu zarządzania bazą danych (SGBD), co stanowi platformę.

W przypadku PHP jako języka serwera najczęstsze kombinacje to platforma lamp (dla Linux Apache MySQL PHP) i WAMP (Windows Apache MySQL PHP). Platforma WAMP zwykle konfiguruje jedno oprogramowanie, które integruje Apache, MySQL i PHP, na przykład EasyPhp, Verrigoserv, Wampserver lub Uwamp. Istnieje ten sam rodzaj oprogramowania dla platform mamp (Mac OS Apache MySQL PHP), taki jak oprogramowanie MAMP.

Istnieją inne warianty, na przykład platformy LAPP (M MySQL jest zastąpione przez P PostgreSQL) lub oprogramowanie XAMPP (Apache MySQL PERL PHP; X wskazuje, że oprogramowanie jest multiplathe-form), multiplate-formal Development Formal Development zestaw.

W tej formie możesz odrzucić szeroką gamę akronimów. Mieszania mogą czasem istnieć między samą platformą a oprogramowaniem, które pozwala jej zainstalować, jeśli mają one tę samą nazwę. Należy również zauważyć, że zdecydowana większość oprogramowania „All in One” jest przeznaczona do opracowywania lokalnych aplikacji internetowych i nie jest instalowana na serwerach internetowych. Wyjątkiem od tej reguły jest być może Zend Server, serwer dystrybuowany przez Zend Technologies, który ma działać zarówno w środowisku rozwoju, jak i produkcji.

PHP jest w zasadzie językiem interpretowanym, który jest kosztem kodu wykonywania kodu. Jego silna popularność związana z wykorzystaniem na stronach internetowych o bardzo dużym ruchu (Yahoo, Facebook [[[ 123 ] ) Doprowadziło wiele osób do poprawy swojej wydajności, aby móc obsługiwać większą liczbę użytkowników tych stron internetowych bez konieczności zakupu nowych serwerów.

Przepisywanie serca PHP, które doprowadziło do silnika Zend dla PHP 4, a następnie do silnika Zend 2 dla PHP 5, jest optymalizacją. Silnik Zend kompiluje wewnętrznie kod PHP w kodzie bajtowym wykonanym przez maszynę wirtualną. Projekty APC i EaCcelerator Open Source działają, umieszczając kod bajtowy wytwarzany przez Zend Engine w pamięci podręcznej, aby zapobiec załadowaniu PHP i analizowaniu skryptów na każde żądanie. Z wersji 5.5 PHP język ma natywną pamięć podręczną operacyjną (o nazwie Opcache), dzięki czemu moduł APC jest przestarzały.

Istnieją również projekty skompilowania kodu PHP:

  1. ' Historia PHP »
  2. ' Wersja 8.2.5 » W (skonsultuję się z )
  3. ' https://www.php.net/archive 2019.php#ID2019-06-13-1 » (skonsultuję się z )
  4. ' https://www.php.net/archive 2019999-07-25-25-1 » (skonsultuję się z )
  5. ' PHP 7.4.0RC1 Wydany! » (skonsultuję się z )
  6. ' https://www.php.net/archive 2019.php#ID2019-06-26-1 »
  7. ' https://www.php.net/archive 20199.php#2019-07-11-1-1-1 »
  8. ' https://www.php.net/archive 20199.php#2019-08-08-1 »
  9. ' https://www.php.net/archive 20199.php#2019-08-22-1 »
  10. ' https://www.php.net/archive 20199.php#2019-09-19-1 »
  11. ' https://www.php.net/archive 20199.php#2019-10-03-1 »
  12. ' https://www.php.net/archive 20199.php#2019-10-18-1 »
  13. ' https://www.php.net/archive 20199.php#2019-10-31-2 »
  14. ' https://www.php.net/archive 2019.php#2019-11-14-1 »
  15. ' https://www.php.net/archive/2020.php#2020-10-29-2 »
  16. ' PHP 8.1.0 ALPHA 2 Dostępne do testowania » W (skonsultuję się z )
  17. ' PHP 8.1.0 Alpha 3 Dostępne do testowania » W (skonsultuję się z )
  18. ' PHP 8.1.0 Beta 1 Dostępny do testowania » W (skonsultuję się z )
  19. ' PHP 8.1.0 Beta 2 Dostępne do testowania » W (skonsultuję się z )
  20. ' PHP 8.1.0 Beta 3 Dostępne do testowania » W (skonsultuję się z )
  21. ' PHP 8.1.0 RC 1 Dostępny do testowania » W (skonsultuję się z )
  22. ' PHP 8.1.0 RC 2 Dostępne do testowania » W (skonsultuję się z )
  23. ' PHP 8.1.0 RC 3 Dostępne do testowania » W (skonsultuję się z )
  24. ' PHP 8.1.0 RC 4 Dostępne do testowania » W (skonsultuję się z )
  25. ' PHP 8.1.0 RC 5 Dostępne do testowania » W (skonsultuję się z )
  26. ' PHP 8.2.0 ALPHA 1 Dostępny do testowania » W (skonsultuję się z )
  27. ' PHP 8.2.0 Alpha 2 Dostępne do testowania » W (skonsultuję się z )
  28. ' PHP 8.2.0 Alpha 3 Dostępne do testowania » W (skonsultuję się z )
  29. ' PHP 8.2.0 Beta 1 Dostępny do testowania » W (skonsultuję się z )
  30. ' PHP 8.2.0 Beta 2 Dostępny do testowania » W (skonsultuję się z )
  31. ' PHP 8.2.0 Beta 3 Dostępne do testowania » W (skonsultuję się z )
  32. ' PHP 8.2.0 RC1 Dostępny do testowania » W (skonsultuję się z )
  33. ' PHP 8.2.0 RC2 Dostępny do testowania » W (skonsultuję się z )
  34. ' PHP 8.2.0 RC3 Dostępny do testowania » W (skonsultuję się z )
  35. ' PHP 8.2.0 RC 4 Dostępne do testowania » W (skonsultuję się z )
  36. ' PHP 8.2.0 RC5 Dostępny do testowania » W (skonsultuję się z )
  37. ' PHP 8.2.0 RC 6 Dostępne do testowania » W (skonsultuję się z )
  38. ' PHP 8.2.0 RC7 Dostępny do testowania » W (skonsultuję się z )
  39. ' PHP: Przedmowa - Podręcznik » , NA www.php.net .
  40. ' źródło »
  41. A et b ' Podręcznik PHP: Przedmowa » , NA Php.net (skonsultuję się z ) .
  42. (W) ' Licencja PHP jest rozpoznawana bezpłatnie przez Fundacja bezpłatnego oprogramowania » (skonsultuję się z )
  43. ' Wprowadzenie do PHP » , NA Openclassrooms.com (skonsultuję się z ) .
  44. ' PHP nie żyje… Viva le Php! - Hacker Noon » W
  45. ' AFUP - francuskie stowarzyszenie użytkowników PHP » , NA Afup.org (skonsultuję się z )
  46. ' Dzień Afup 2019 » , NA Event.afup.org (skonsultuję się z )
  47. Rasmus Lerdorf W ' Zastanawiam się, dlaczego ludzie piszą, że PHP był kiedykolwiek napisany w Perlu. To nigdy nie było. #php » [html] W Świergot W (skonsultuję się z )
  48. ' Grupy Google » , NA Grupy.google.com
  49. ' Historia PHP » , NA Php.net (skonsultuję się z ) .
  50. (W) ' Netcraft Web Server Survey - luty 2002 » (skonsultuję się z )
  51. ' PHP: Statystyki użytkowania PHP » , NA www.php.net
  52. ' PHP po prostu rośnie i rośnie - Netcraft » , NA News.netcraft.com
  53. ' Statystyka języka programowania po stronie serwera » W
  54. ' Języki programowania po stronie serwera » , W3Techs,
  55. ' Języki programowania po stronie serwera » , W3Techs,
  56. ' PHP i Perl rozbijają partię korporacyjną »
  57. ' PHP: RFC: ReleaseProcess » , NA wiki.php.net
  58. ' PHP: Enumerations - Instrukcja » , NA www.php.net (skonsultuję się z )
  59. ' PHP: RFC: Włókna » , NA wiki.php.net (skonsultuję się z )
  60. ' PHP: RFC: ReadOnly_Properties_v2 » , NA wiki.php.net (skonsultuję się z )
  61. A et b ' PHP: RFC: JIT » , NA wiki.php.net (skonsultuję się z )
  62. ' PHP 8: Wszystkie informacje o nowej wersji » , NA Jony DigitalGuide (skonsultuję się z )
  63. ' PHP: RFC: słabe_mapy » , NA wiki.php.net (skonsultuję się z )
  64. ' PHP: RFC: WIELKA » , NA wiki.php.net (skonsultuję się z )
  65. ' PHP: RFC: TORM_Expression » , NA wiki.php.net (skonsultuję się z )
  66. (W) ' Historia wyjść PHP » , NA Php.net (skonsultuję się z )
  67. ' PHP: RFC: typed_properties_v2 » , NA wiki.php.net (skonsultuję się z )
  68. ' PHP: RFC: obciążenie wstępne » , NA wiki.php.net (skonsultuję się z )
  69. ' PHP: RFC: null_coalesce_equal_operator » , NA wiki.php.net (skonsultuję się z )
  70. ' PHP: RFC: Ulepszaj-openssl-random-pseudo-bajty » , NA wiki.php.net (skonsultuję się z )
  71. ' PHP: RFC: słaberefs » , NA wiki.php.net (skonsultuję się z )
  72. ' PHP: RFC: FFI » , NA wiki.php.net (skonsultuję się z )
  73. ' PHP: RFC: Permanent_hash_ext » , NA wiki.php.net (skonsultuję się z )
  74. ' PHP: RFC: Password_registry » , NA wiki.php.net (skonsultuję się z )
  75. ' Php: rfc: mb_str_split » , NA wiki.php.net (skonsultuję się z )
  76. ' PHP: RFC: reference_reflection » , NA wiki.php.net (skonsultuję się z )
  77. ' PHP: RFC: Dyrent-and-Remove-Ext-WDDX » , NA wiki.php.net (skonsultuję się z )
  78. ' PHP: RFC: Custom_Object_Serialization » , NA wiki.php.net (skonsultuję się z )
  79. ' PHP: RFC: elastyczne_heredoc_nowdoc_syntaxes » , NA wiki.php.net
  80. ' PHP: RFC: List_reference_assignment » , NA wiki.php.net
  81. ' PHP: RFC: PCRE2 Migracja » , NA wiki.php.net
  82. ' PHP: HRTime - Instrukcja » , NA php.net
  83. Andrea Faulds, Zeev znajduje się, ' PHP RFC: Nazwa następnej wersji PHP » W (skonsultuję się z )
  84. ' Next Generation PHP przewyższa HHVM na Facebooku » , NA Blog Zend W (skonsultuję się z )
  85. Anitine crocheth-daman, ' Andi Gutmans (Zend Technologies): „Next Generation PHP jest bardziej wydajne niż HHVM z Facebooka” » , NA The Net Journal W (skonsultuję się z )
  86. ZEEV Znajdź, ' Benchmarking phpng! » , NA Blog Zeeva W (skonsultuję się z )
  87. Andrei Zmaidski, ' Dokument projektu wsparcia PHP Unicode (post pocztowy) » W (skonsultuję się z )
  88. ' PHP 5.5 lub 6.0 » (skonsultuję się z )
  89. Andrei Zmaidski, ' Dobra, zła i brzydka: co się stało z Unicode i PHP 6 » (skonsultuję się z )
  90. Rasmus lerdorf, ' PHP 6 (post pocztowy) » W (skonsultuję się z )
  91. Adam Harvey, ' Ruminations on PHP 5 ++ (wiadomość do listy dyskusji) » W (skonsultuję się z )
  92. ' Rejestracja globalów » .
  93. A et b (W) ' Historia PHP » , Grupa PHP (skonsultuję się z )
  94. A B i C (W) ' PHP: PHP 5 Changelog » , Grupa PHP, (skonsultuję się z )
  95. (W) Wydany PHP 5.3.0!
  96. (W) PHP 5.3.0 Changelog
  97. (W) FPM w 5.3
  98. A et b ' PHP: Wewnętrzny serwer WWW - Instrukcja » , NA php.net
  99. (W) Wydany PHP 5.5.0.
  100. (W) Wydany PHP 7.0.0
  101. (W) [Pierwszy]
  102. (W) [2]
  103. (W) Wydany PHP 7.1.0
  104. (W) Wydany PHP 7.1.1
  105. (W) Wydany PHP 7.1.3
  106. (W) Wydany
  107. (W) Wydany
  108. (W) [3]
  109. a b c d e f g h i j k l m n o p q r s i t (W) [4]
  110. A b c d e f g h i j k l m n o p q r s t u v w x i y (W) ' PHP 7.3.x Changelogs » , NA www.php.net (skonsultuję się z )
  111. ' Wiadomości z PHP 7.3 - Kod | Projekt • FR » , NA codedesign.fr (skonsultuję się z )
  112. a b c d e f g h i j k l m i n (W) ' PHP 7.4.x Changelogs » , NA php.net (skonsultuję się z )
  113. ' PHP: Wszystko: php80 » , NA wiki.php.net (skonsultuję się z ) .
  114. /Usr/bin/ jest standardowym katalogiem plików binarnych wykonywalnych w większości dystrybucji.
  115. (W) ' PHP RFC: Usuń alternatywne znaczniki PHP »
  116. ' PHP: DOM - Podręcznik » , NA php.net
  117. Sébastien Rohaut W Algorytmiczne: fundamentalne techniki programowania (z przykładami PHP) , Wydania en, ( Czytaj online )
  118. ' PHP: Interfejsy - Podręcznik » , NA php.net
  119. ' Elroubio - Elephpant Creator od 1995 roku » , NA www.elroubio.net
  120. Elephpant W ' Adoptuj swojego Elephpant! » , NA www.elephpant.com
  121. ' Przewodnik po Elepanty »
  122. ' IMAC - Tylko szkolenie inżyniera publicznego łączące sztukę i nauki » , NA Ingenieur-imac.fr (skonsultuję się z )
  123. ' Facebook chce naprawić wydajność PHP za pomocą wirtualnej maszyny HIPHOP »
  124. Hiphop dla php: poruszaj się szybko „Zarchiwizowana kopia” (wersja 22 lipca 2018 r. Archiwum internetowe ) , Haiping Zhao Lee

O innych projektach Wikimedia:

Bibliografia [[[ modyfikator |. Modyfikator i kod ]

  • (W) Luke Welling et Laura Thomson, PHP i MySQL Web Development , Sams Publishing, W 4 To jest wyd. (ISBN 978-0-672-32916-6 I 0-672-32916-6 , OCLC 854795897 )
  • Damien Seguy i Philippe Gamache, PHP 5 i MySQL Security, 3 To jest redagowanie , Eyrolles, , 277 P. (ISBN 978-2-212-13339-4 I 2-212-13339-1 W Czytaj online )
  • Jean English Kursy i ćwiczenia PHP, 3 To jest redagowanie, Eyrolles 2013, 631 stron (ISBN 978-2-212-13725-5 )

Powiązane artykuły [[[ modyfikator |. Modyfikator i kod ]

Linki zewnętrzne [[[ modyfikator |. Modyfikator i kod ]

after-content-x4