Slovník pojmů

PHP: co to je a k čemu slouží

PHP je serverový programovací jazyk používaný především pro tvorbu webových aplikací, API, administračních systémů a e-shopů. PHP kód běží na serveru; prohlížeč obvykle dostane hotovou HTML stránku nebo datovou odpověď ve formátu JSON.

Stručná definice

PHP je jazyk pro logiku, která běží na pozadí webu.

PHP zpracovává požadavky uživatelů, pracuje s databází, ověřuje oprávnění, propojuje externí služby a skládá odpověď aplikace. Nejde tedy jen o generování webových stránek: stejný jazyk se běžně používá i pro API, importy, automatizované úlohy nebo administrační rozhraní.

Moderní PHP je dynamicky typovaný objektově orientovaný jazyk s rozsáhlou podporou deklarací typů pro parametry, návratové hodnoty, vlastnosti a konstanty.

Použití PHP

K čemu se PHP používá

PHP je přirozenou volbou všude tam, kde aplikace přijímá požadavky, rozhoduje podle pravidel a pracuje s daty nebo jinými službami.

  • webové aplikace a zákaznické portály
  • REST API a backendy pro webové či mobilní klienty
  • e-shopy, objednávky, katalogy a napojení na marketplace
  • interní podnikové a administrační systémy
  • integrační, importní a exportní služby
  • plánované úlohy, fronty zpráv a workery

Praktický příklad

Detail objednávky: od URL k bezpečné odpovědi

Zákazník otevře adresu /api/orders/{orderUuid}. Aplikace z důvěryhodně určené identity zjistí, kdo požadavek poslal, a podle veřejného UUID načte jen objednávku, ke které má zákazník přístup. Teprve potom sestaví JSON odpověď; nevrací databázový záznam bez kontroly přímo do prohlížeče.

Ukázka záměrně zachycuje jen HTTP vrstvu. V reálné aplikaci se načtení objednávky a kontrola přístupu opírají o aplikační službu, která zná pravidla systému. Pro cizí i neexistující objednávku má vrátit stejný bezpečný výsledek, aby API neprozradilo její existenci. Důležité je pořadí: nejdřív identita a oprávnění, potom data a až nakonec odpověď.

PHP

public function detail(
    string $orderUuid,
    CurrentUser $currentUser,
    OrderService $orders,
): JsonResponse {
    $order = $orders->getForCustomer(
        orderUuid: $orderUuid,
        customerId: $currentUser->id(),
    );

    return new JsonResponse([
        'uuid' => $order->uuid()->toString(),
        'status' => $order->status(),
    ]);
}

Jak aplikace funguje

Od požadavku k odpovědi

Zjednodušený průběh jednoho požadavku může vypadat takto:

  1. Prohlížeč Uživatel otevře stránku nebo aplikace zavolá API.
  2. Webový server Nginx nebo Apache předá požadavek PHP aplikaci.
  3. PHP aplikace Vyhodnotí oprávnění, pravidla a potřebné kroky.
  4. Data a služby Aplikace pracuje s databází, cache nebo externím API.
  5. Odpověď Vrátí HTML, JSON nebo jiný výsledek pro další zpracování.

Moderní PHP

Vlastnosti, na kterých stojí současný vývoj

Pověst PHP často vychází ze starších projektů. Současná praxe stojí na jiných základech než éra PHP 5.

Typový systém

Typy parametrů, návratových hodnot a vlastností pomáhají odhalit chybu dříve, než se dostane k uživateli.

Composer a balíčky

Standardní správce závislostí řeší opakovaně používané knihovny, jejich verze i bezpečné aktualizace.

Objektový návrh a DI

Třídy, rozhraní a dependency injection pomáhají oddělit odpovědnosti a usnadnit testování.

Attributes a výjimky

Jazyk podporuje popis metadat v kódu i předvídatelné zachycení chybových stavů.

Statická analýza a testy

Nástroje jako PHPStan a PHPUnit doplňují dynamickou povahu jazyka o průběžnou kontrolu kvality.

Více způsobů běhu

PHP může běžet přes PHP-FPM, z příkazové řádky i jako dlouhotrvající worker pro fronty nebo asynchronní práci.

Frameworky a ekosystém

Nástroje, které rozšiřují samotný jazyk

Většina profesionálních PHP projektů nestojí na samotném jazyce, ale na ověřeném ekosystému kolem něj.

Symfony
Framework a sada komponent pro rozsáhlejší aplikace, API a dlouhodobě udržovaný backend.
Laravel
Framework zaměřený na rychlou a příjemnou práci při vývoji webových aplikací.
Nette
Český framework se silným důrazem na bezpečnost, DI a čistou strukturu aplikace.
Doctrine
Nástroj pro práci s databází a mapování dat mezi databázovými záznamy a objekty.
Composer
Správce PHP balíčků a závislostí používaný napříč moderním ekosystémem.
PHPUnit a PHPStan
Nástroje pro automatizované testy a statickou analýzu kódu.

Výhody i omezení

PHP není univerzální odpověď na každý problém

Silné stránky

  • vyspělý ekosystém frameworků, knihoven a vývojových nástrojů
  • vhodnost pro webové a podnikové aplikace, e-commerce a API
  • dobrá dostupnost zkušených vývojářů i kvalitních hostingových řešení
  • přímočaré nasazování a dlouhodobě udržované frameworky

Na co myslet

  • dlouhotrvající a distribuované procesy vyžadují pečlivější návrh a provozní disciplínu
  • dynamické části jazyka je vhodné hlídat typy, statickou analýzou a testy
  • nekvalitní starší PHP kód není argumentem proti současnému PHP, ale proti jeho údržbě bez pravidel
  • samotný framework nezaručí dobrou architekturu ani porozumění doméně

Kdy PHP zvolit

Dobrá volba pro webové produkty a systémy kolem nich

PHP je vhodné pro webové aplikace, e-commerce, API, interní systémy a integrační služby — zvlášť pokud tým využije jeho zavedený ekosystém a potřebuje aplikaci dlouhodobě rozvíjet.

Méně přirozenou volbou může být vývoj nativních mobilních aplikací, některé typy vysoce výpočetních systémů nebo úlohy, jejichž hlavní náplní je kontinuální práce s velmi nízkou latencí. I zde však může PHP dobře obsloužit API nebo administrační část řešení.

Bezpečnost a kvalita

Profesionální PHP vývoj nekončí spuštěním aplikace

Bezpečnost a spolehlivost vznikají kombinací návrhu, nástrojů a průběžné kontroly, ne volbou jednoho frameworku.

  • validace vstupů a parametrizované databázové dotazy
  • bezpečné ukládání hesel a řízení uživatelských oprávnění
  • ochrana proti CSRF a XSS podle typu aplikace
  • automatizované testy a statická analýza
  • kontrola závislostí, verzování a CI před nasazením
  • monitoring, logování a rozumný postup při chybách v provozu

Časté otázky

Co se lidé na PHP obvykle ptají

Je PHP jen pro klasické webové stránky?

Ne. Vedle webů PHP běžně pohání API, e-shopy, administrační systémy, importy dat, integrační služby, plánované úlohy a workery.

Je PHP vhodné pro větší aplikaci?

Ano, pokud má aplikace jasný návrh, automatizované testy, kontrolu kvality a odpovídající provozní zázemí. Velikost systému neurčuje samotný jazyk, ale hlavně architektura a způsob práce týmu.

Jak spolu souvisí PHP, Symfony a Nette?

PHP je programovací jazyk. Symfony a Nette jsou frameworky, které nad ním poskytují strukturu a hotové nástroje pro běžné části aplikace.

Jak PHP používám v praxi

PHP používám od roku 2007.

Vyvíjím v něm e-commerce platformy, interní systémy, API a integrační služby. Zajímá vás spíš moje konkrétní praxe, nebo potřebujete probrat vlastní projekt?

Zavolejte mi

Zavolám vám následující pracovní den mezi 9:00 a 17:00.

Můžete mi také zavolat rovnou.

+420 605 181 728

Nechte mi telefonní číslo a pošlete žádost o zpětné zavolání.

Odesláním souhlasíte se zpracováním údajů pro vyřízení žádosti.