🐘 PHP OOP od zera (praktycznie): klasy, obiekty, konstruktor i DI w stylu Laravel
Jeśli rozumiesz już $this i ->, to jesteś w połowie drogi do ogarnięcia Laravela „od środka”.
Teraz składamy to w całość.

🔹 1. Czym jest klasa?
Klasa to szablon / blueprint.
👉 nie jest “rzeczą”
👉 jest opisem rzeczy

📌 przykład:

class User
{
public $name;
}



🧠 tłumaczenie:
klasa = plan
obiekt = konkretna osoba

🔹 2. Czym jest obiekt?
Obiekt to realna instancja klasy

📌 przykład:

$user = new User();
$user->name = "Jan";



🔥 tłumaczenie:
User = projekt człowieka
$user = konkretny człowiek

🔹 3. Konstruktor – automatyczne ustawianie danych
Konstruktor to metoda, która odpala się przy tworzeniu obiektu

📌 przykład:

class User
{
public function __construct(public string $name)
{
}
}



użycie:

$user = new User("Jan");


🧠 co się dzieje:
PHP tworzy obiekt
od razu przekazuje "Jan"
zapisuje do $this->name

🔥 4. $this w konstruktorze

class User
{
public function __construct(public string $name)
{
$this->name = $name;
}
}



👉 $this->name = “pole w obiekcie”

🔹 5. Metody (funkcje w klasie)

class User
{
public function greet()
{
return "Cześć " . $this->name;
}
}



użycie:

$user = new User("Jan");
echo $user->greet();



🧠 6. Laravel w praktyce

class ScrapeJustJoin extends Command
{
public function handle()
{
$this->info("Start scraper");
}
}



🔥 co tu się dzieje:
ScrapeJustJoin = klasa
handle() = metoda
$this->info() = metoda z klasy nadrzędnej (Command)
$this = aktualna komenda

🔹 7. Dependency Injection (DI) – fundament Laravel
To jest klucz do zrozumienia „magii Laravel”.

📌 przykład:

class JobService
{
public function scrape()
{
return "jobs...";
}
}



użycie w Laravel:

class JobController
{
public function __construct(
private JobService $service
) {}

public function index()
{
return $this->service->scrape();
}
}



🧠 co się dzieje:
Laravel:
widzi JobService
sam tworzy obiekt
wstrzykuje go do konstruktora

🔥 8. Dlaczego to działa?
Bo Laravel ma kontener DI (Service Container)
👉 automatycznie tworzy obiekty za Ciebie

🔹 9. Relacja: $this, ->, obiekty
🔥 model mentalny:

class = przepis
object = gotowy produkt
$this = ja (ten produkt)
-> = zajrzyj do środka mnie



🔹 10. Najczęstszy błąd początkujących
❌ mylenie klasy i obiektu:

User::greet(); // źle (jeśli nie static)


✔ dobrze:

$user = new User();
$user->greet();



🔹 11. Static vs obiekt
static:

User::all();

👉 bez tworzenia obiektu

obiekt:

$user = new User();
$user->greet();



🔥 12. Jak to się łączy ze scraperem
Twój scraper:

$job = new Job();
$job->title = $title;
$job->save();



tłumaczenie:
Job = model (klasa)
$job = rekord w RAM
save() = zapis do DB

🧠 13. Najważniejszy mindset
PHP OOP = modelowanie świata jako obiektów

przykład:
Job
User
Scraper
Command
Service
👉 wszystko jest obiektem

🚀 PODSUMOWANIE
Klasa
👉 plan
Obiekt
👉 instancja planu
$this
👉 “ja w środku klasy”
->
👉 dostęp do środka obiektu
DI (Laravel)
👉 framework robi obiekty za Ciebie

Leave a Reply

Your email address will not be published. Required fields are marked *