Budujesz aplikacje w PHP i czujesz, że Twój kod zaczyna się kruszyć pod ciężarem zmian? Jeśli zauważasz, że warunki if i switch dominują logikę biznesową — najwyższy czas poznać wzorzec Stan (State Pattern). To narzędzie, które pozwala panować nad chaosem i tworzyć kod odporny na przyszłość.

Czym jest wzorzec Stan?
Stan (ang. State) to jeden z klasycznych wzorców projektowych z katalogu GoF (Gang of Four). W skrócie: pozwala on zmieniać zachowanie obiektu w zależności od jego wewnętrznego stanu bez konieczności stosowania wielopoziomowych struktur warunkowych.
Zamiast kodu typu:
if ($order->status === ’paid’) {
// …
} elseif ($order->status === ’shipped’) {
// …
}
…tworzysz osobne klasy reprezentujące każdy możliwy stan (PaidState, ShippedState, CancelledState), a obiekt sam deleguje działanie do odpowiedniej klasy. Efekt? Kod staje się czytelniejszy, łatwiejszy do rozszerzenia i testowania.
Kiedy warto stosować ten wzorzec?
Stan sprawdza się idealnie, gdy:
- Obiekt może zmieniać swój stan dynamicznie (np. zamówienie, zgłoszenie, użytkownik).
- W każdej fazie życia ma inne zachowania (np. różne możliwe akcje).
- Chcesz uniknąć kaskad if i switch, które rosną z każdą nową regułą.
To świetne rozwiązanie np. w aplikacjach typu marketplace, CRM czy systemach workflow.
Praktyczny przykład w PHP
Wzorzec Stan nie musi być trudny. Wręcz przeciwnie, zastosowany rozsądnie potrafi radykalnie poprawić strukturę Twojej aplikacji. Chcesz zobaczyć, jak to wygląda na realnym przykładzie?
? Sprawdź materiał:
? blog.przemyslawsobolewski.com
Znajdziesz tam gotowy przykład zastosowania wzorca Stan w PHP, omówiony krok po kroku, od problemu, przez kod, aż po praktyczne wskazówki, kiedy (nie) stosować to podejście.
Podsumowanie
Jeśli chcesz pisać elastyczny i przyszłościowy kod w PHP, wzorzec Stan może być Twoim najlepszym przyjacielem. To nie akademicka teoria, a konkretne narzędzie, które pomaga opanować złożoność aplikacji. A jeśli interesują Cię kolejne wzorce i praktyki architektoniczne, śledź blog.przemyslawsobolewski.com, gdzie regularnie publikowane są praktyczne poradniki dla programistów PHP.

























