PHP
PHP
PHP: Hypertext Preprocesor - interpretowany język programowania przeznaczony do tworzenia aplikacji WWW. Został zaprojektowany z myślą o szybkim tworzeniu tzw. template'ów HTML, stąd wiele funkcjonalności PHP przystosowanych specjalnie do tego celu, jak np:
- Dowolny tekst przed znacznikiem
<?php
(lub<?
) jest interpretowany jako wyświetlenie tego tekstu - Dowolny tekst po znaczniku
?>
również - Smaczek składniowy w postaci
<?=
równoważny z<?php echo
- Drugi zapis instrukcji
if
-if (case): endif;
, jak również doswitch
orazfor
- Ogrom funkcji do obróbki tekstu z wielu różnych domen programowania (HTTP, JSON, XML, BBCode, PCRE,
addslashes
/stripslashes
, etc.)
Ale oczywiście nie znaczy to, że nie można w PHP stworzyć aplikacji udostępniającej zasoby np. w JSON.
Cechy:
- Słabo typowany
- Wieloplatformowy - możliwość uruchomienia tej samej wersji aplikacji na różnych platformach: Windows, Linux, Mac, inne
- Praca z serwerem Apache "out of the box"
- Domyślnie, struktura interfejsu (route'y) odwzorowuje strukturę folderów folderów
- Składnia:
- Początkowe wersje (PHP 1-4) są mocno inspirowane językami: Bash, Perl, C oraz DOS (
echo
,switch
,continue
,include
,@
,$
,global
,? :
) - Późniejszy rozwój języka (PHP 5) czerpał z języków: Javy i C# (klasy, interfejsy, polimorfizm, przestrzenie nazw,
static
,implements
,public
, Reflection, klasy anonimowe) i JavaScript/TypeScript (...
, opcjonalne parametry z?
) - Funkcje inspirowane tymi z języków C oraz C++ (
strtok
,mysql_connect
,strpos
,curl_init
)
- Początkowe wersje (PHP 1-4) są mocno inspirowane językami: Bash, Perl, C oraz DOS (
- Konstrukcje unikalne dla PHP (string
"strtoupper"
oraz tablica[$this, 'method']
może posłużyć jakocallable
).
Zalety:
- Bardzo szybki początkowy rozwój pierwszych wersji aplikacji
- Łatwe (banalne) wdrożenie aplikacji (wystarczy przekopiować pliki na serwer)
- Niezwykle popularny wśród amatorskich i średnio-zaawansowanych portali internetowych
- Ogromne środowisko programistów i rozwiązań (WordPress, Laravel) oraz ogromna ilość płatnych i darmowych platform które wspierają PHP
- Stosunkowo łatwo integracja z bazami danych
Wady:
- PHP jest pełen łatwych i prostych rozwiązań, które na dłuższą metę stają się bardzo problematyczne
- Trudna konfiguracja z serwerami innymi niż Apache
- Pomimo wpływu "OOP", ogrom elementów języka domyślnie polega na proceduralnym podejściu:
- brak controllerów, walidacji, konfiguracji ścieżek dostępu (struktura zasobów jest równoważna ze strukturą folderów aplikacji)
$_GET
/$_POST
,$_SESSION
/$_COOKIE
,mysql_real_escape_string
, brak CSRF,- brak jakichkolwiek kolekcji (jest tylko tablica,
array()
która pełni funkcję listy, mapy i zbioru)
- Brak wielowątkowości
- Mimo zaadoptowania podejścia obiektowego, brak typów generycznych
Zobacz też:
- php.net - oficjalna strona PHP; zawiera kompletną i dokładną dokumentację wszystkich funkcji
- phpMyAdmin - popularny klient MySQL
- phpPgAdmin - popularny klient PostgreSQL