Co dalej? — mapa dalszej nauki PHP

🎯 Po tej lekcji będziesz wiedzieć jakie technologie i koncepcje warto poznać po ukończeniu tego kursu i w jakiej kolejności się do nich zabrać.

Ukończyłeś kurs PHP — od pierwszego echo "Hej!" po kompletną aplikację z kontami użytkowników, bazą danych i bezpieczeństwem. To naprawdę solidny fundament. Ale świat PHP jest ogromny — oto mapa tego, co warto odkryć dalej.

Czego właśnie nauczyłeś się

Zanim ruszysz dalej, przypomnij co masz za sobą:

  • Moduł 0–1: PHP jako język — typy, zmienne, operatory, stringi
  • Moduł 2–4: Sterowanie przepływem, funkcje, tablice
  • Moduł 5: PHP w internecie — formularze, sesje, walidacja
  • Moduł 6: OOP — klasy, obiekty, dziedziczenie, interfejsy
  • Moduł 7: Composer — autoloading, paczki, PSR-4
  • Moduł 8: Baza danych — PDO, prepared statements, wzorzec repozytorium
  • Moduł 9: Bezpieczeństwo — hashowanie haseł, XSS, CSRF, sesje, sekrety

Krok 1 — Git (jeśli jeszcze nie używasz)

Zanim ruszysz dalej, opanuj Git. To narzędzie jest absolutnie niezbędne w każdym projekcie:

# Podstawy których potrzebujesz:
git init                    # inicjuj repozytorium
git add .                   # dodaj zmiany do staging
git commit -m "wiadomość"   # zapisz migawkę
git log --oneline           # historia commitów
git branch feature/logowanie  # nowa gałąź
git checkout main           # przełącz gałąź

Polecane zasoby:

Krok 2 — Laravel (framework PHP)

Laravel to najpopularniejszy framework PHP. Bazuje na tym co znasz (OOP, Composer, PDO), ale dodaje konwencje, które przyspieszają pracę:

  • Routing — eleganckie definiowanie URL
  • Eloquent ORM — klasy reprezentujące tabele (zamiast surowego SQL)
  • Blade — system szablonów z dziedziczeniem layoutów
  • Migracje — wersjonowanie schematu bazy danych
  • Artisan — narzędzie wiersza poleceń do generowania kodu

Jak zacząć: Laravel Bootcamp — oficjalny, bezpłatny kurs budowania aplikacji w Laravel. Zajmie ci kilka wieczorów i daje świetne podstawy.

# Instalacja Laravel przez Composer:
composer create-project laravel/laravel moj-projekt
cd moj-projekt
php artisan serve  # uruchom serwer deweloperski

Dzięki temu kursowi wiesz dlaczego Laravel robi to co robi — rozumiesz fundamenty, nie tylko API frameworka.

Krok 3 — wzorzec MVC

Laravel implementuje MVC, ale warto rozumieć wzorzec niezależnie od frameworka:

Przeglądarka → Controller → Model → Baza danych
                          ↑           ↓
                          └── View ← dane
  • Model — klasy danych i logika biznesowa (ZadanieRepozytorium z Modułu 8 to prototyp Modelu)
  • View — szablony HTML (pliki Blade w Laravel lub Twig w Symfony)
  • Controller — przyjmuje żądanie HTTP, wywołuje Model, zwraca View

Ty już piszesz kod bliski MVC — pliki z logikę PHP i szablonem HTML to wczesna forma wzorca.

Krok 4 — REST API i JSON

Coraz więcej aplikacji PHP pełni rolę backendu API — zwraca dane JSON zamiast HTML. Frontend (React, Vue, Angular) lub aplikacja mobilna pobiera te dane i renderuje je po swojej stronie.

<?php
// Prosty endpoint REST API w czystym PHP:
declare(strict_types=1);

header('Content-Type: application/json');

$zadania = [
    ['id' => 1, 'tytul' => 'Nauczyć się REST'],
    ['id' => 2, 'tytul' => 'Zbudować API'],
];

echo json_encode($zadania, JSON_UNESCAPED_UNICODE);
// wynik: [{"id":1,"tytul":"Nauczyć się REST"},...]

W Laravel budowanie API jest wyjątkowo wygodne przez API Resources i Sanctum (autentykacja tokenami).

Krok 5 — PHPUnit i testy jednostkowe

Testy automatyczne to umiejętność, która wyróżnia dobrego developera. PHPUnit to standardowe narzędzie do testów w PHP:

<?php
declare(strict_types=1);

// Przykład testu jednostkowego:
use PHPUnit\Framework\TestCase;

final class KalkulatorTest extends TestCase
{
    public function test_dodawanie(): void
    {
        $kalkulator = new Kalkulator();
        self::assertSame(5, $kalkulator->dodaj(2, 3));
    }
}
# Uruchomienie testów:
./vendor/bin/phpunit

# Z pokryciem kodu (code coverage):
./vendor/bin/phpunit --coverage-html reports/

Zacznij od testów dla klas repozytorium — to naturalny pierwszy cel, bo mają jasno zdefiniowane wejścia i wyjścia.

Krok 6 — Composer w praktyce

W Module 7 poznałeś Composera. W realnych projektach będziesz instalować wiele paczek. Kilka przydatnych:

| Paczka | Zastosowanie | |---|---| | vlucas/phpdotenv | Wczytywanie pliku .env | | ramsey/uuid | Generowanie UUID | | symfony/http-foundation | Klasy Request/Response | | phpmailer/phpmailer | Wysyłanie e-maili | | league/flysystem | Abstrakcja systemu plików | | carbon/carbon | Wygodna obsługa dat |

Krok 7 — Symfony jako alternatywa

Jeśli Laravel ci nie odpowiada (lub pracujesz w firmie używającej Symfony), to świetna alternatywa — bardziej modularna, używana w dużych projektach korporacyjnych. Komponenty Symfony działają też niezależnie (np. HttpFoundation, Validator, Security).

Gdzie szukać pomocy

Mapa dalszej nauki

Teraz:        PHP (fundament) ← masz to!
              └─ Git          ← następny krok

Miesiąc 1-2:  Laravel Bootcamp
              └─ Baza: migracje, Eloquent ORM
              └─ Blade, routing, formularze

Miesiąc 3-4:  PHPUnit, TDD
              └─ CI/CD (GitHub Actions)
              └─ REST API w Laravel

Miesiąc 5-6:  Docker, deploy na VPS
              └─ Redis (sesje, cache)
              └─ Queues i jobs

Dalej:        Architektura (DDD, CQRS)
              └─ Microservices
              └─ Vue.js / React jako frontend

Nie musisz tego robić wszystkiego naraz. Każdy krok buduje się na poprzednim — tak jak ten kurs.

🚀 Gdzie opublikować swój projekt?

Żeby Twoja aplikacja PHP działała w internecie — a nie tylko na localhost — potrzebujesz hostingu z obsługą PHP 8 i bazy MySQL. Ofert jest mnóstwo i łatwo się pogubić, dlatego warto je najpierw porównać.

Porównaj hostingi pod PHP na jakwybrachosting.pl →
💡 Rada na drogę: Najlepiej uczyć się PHP budując realny projekt — coś, czego sam chciałbyś używać. Blog, lista zadań, sklep, narzędzie do pracy. Realne problemy uczą więcej niż tutoriale. Zbudowałeś już taką aplikację w tym kursie — kolejny projekt zrób sam, od zera. Powodzenia!

Sprawdź się

Czym jest wzorzec MVC?

Po co pisać testy jednostkowe (PHPUnit) do kodu PHP?

Co to jest REST API?