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ż do switch oraz for
  • 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)
  • Konstrukcje unikalne dla PHP (string "strtoupper" oraz tablica [$this, 'method'] może posłużyć jako callable).

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

Wyrażenia regularne (z wykorzystaniem biblioteki T-Regx)

  • 2020-03-15 01:18
  • 0 komentarzy
  • 6 odsłon

Debugowanie kodu PHP (bez debuggera)

  • 2011-12-31 15:24
  • 2 komentarzy
  • 8083 odsłony

Aplikacje konsolowe w PHP

  • 2007-10-31 18:14
  • 0 komentarzy
  • 5971 odsłon

Serializacja danych w PHP

  • 2007-08-11 15:29
  • 0 komentarzy
  • 12894 odsłony

Wzorce Projektowe

  • 2007-07-30 14:33
  • 12 komentarzy
  • 37664 odsłony

PhpDoc - Dokumentacja kodu PHP

  • 2006-02-15 12:18
  • 3 komentarzy
  • 8644 odsłony

Podstawy PHP - Ochrona przed XSS

  • 2005-09-08 19:16
  • 14 komentarzy
  • 6943 odsłony

Tablice w PHP

  • 2004-11-23 18:10
  • 11 komentarzy
  • 101285 odsłon

Podstawy PHP

  • 2004-10-18 14:12
  • 5 komentarzy
  • 26592 odsłony

Wprowadzenie do PHP

  • 2004-10-15 11:25
  • 6 komentarzy
  • 10085 odsłon

Programowanie obiektowe w PHP

  • 2004-04-12 13:31
  • 11 komentarzy
  • 7124 odsłony

Sesje w PHP

  • 2003-04-29 22:38
  • 8 komentarzy
  • 13212 odsłon

Wyrażenia Regularne (Regular Expression)

  • 2003-01-11 00:18
  • 18 komentarzy
  • 56636 odsłon

E-maile w PHP

  • 2002-10-07 17:57
  • 5 komentarzy
  • 4387 odsłon