PHP għandu suport komplet għal programmazzjoni oriġentata lejn l-oġġetti: il-klassijiet jiddefinixxu struttura u imġieba, l-oġġetti huma istanzi. L-OOP PHP modern huwa nettezza u għani bl-features, bi modifikaturi tal-viżibilità, kostruttori, u kuntinwazzjonijiet bħal promozzjoni tal-proprjetà tal-kostruttore.
Għaliex huwa importanti
Il-programmazzjoni oriġentata lejn l-oġġetti hija ċentrali għal PHP modern — il-frameworks (Laravel, Symfony) u l-kodbejżi professjonali huma mibnija madwar il-klassijiet, għalhekk l-fehim tal-PHP OOP huwa fundamentali għal kwalunkwe sviluppu PHP serijuż.
Konoxxa kif tiddefinisci klassijiet bi proprjetajiet ittipizzati, kostruttori u metodi, il-modifikaturi tal-viżibilità (public/private/protected) li jenforzaw l-inkapsulazzjoni, is-sintassi $this/->/:: u membri statiku/kostanti huwa għarfien essenzjali ta' kuljum.
Il-kuntinwazzjonijiet moderni huma partikolarment interessanti biex nafx — promozzjoni tal-proprjetà tal-kostruttore (PHP 8) tnaqqas b'mod drastiku l-boilerplate u tintuża ħafna fil-kodiċi atual, u proprjetajiet ittipizzati jagħmlu l-klassijiet aktar robusti.
L-OOP PHP modern huwa nettezza u kapaċi (pass kbir 'il quddiem mill-reputazzjoni prozedurali template ta' PHP), u billi l-frameworks u l-applikazzjonijiet PHP moderni kollha huma oriġentati lejn l-oġġetti, li tkun għandek magħrifef tal-klassijiet u l-oġġetti — inkluża s-sintassi speċifika ta' PHP u l-features moderni — hija materjal fundamentali u imprescindibli għall-kitba ta' PHP professjonali.
Definizza klassi
<?php
class User {
public string $name; // typed property
private int $age; // visibility: public / private / protected
public function __construct(string $name, int $age) { // constructor
$this->name = $name; // $this refers to the instance; -> accesses members
$this->age = $age;
}
public function greet(): string {
return "Hi, I'm {$this->name}";
}
}
$user = new User("Ann", 30); // create an instance
echo $user->name; // access a property
echo $user->greet(); // call a method
Il-klassijiet għandhom proprjetajiet ittipizzati, metodu __construct u metodi. $this jirreferi għall-oġġett kurrenti, u -> jaċċessa proprjetajiet/metodi (PHP juża ->, mhux .).
Modifikaturi tal-viżibilità (inkapsulazzjoni)
public // accessible everywhere
private // only within THIS class
protected // this class and subclasses
Promozzjoni tal-proprjetà tal-kostruttore (PHP 8 — inqas boilerplate)
class User {
// declare AND assign properties directly in the constructor signature
public function __construct(
public string $name,
private int $age = 0,
) {}
// equivalent to declaring the properties + assigning them — much less code
}
Il-promozzjoni tal-proprjetà tal-kostruttore ta' PHP 8 tneħħi l-boilerplate ripetittiv declare-then-assign — kuntinwazzjoni moderna kbira.
Membri statiku u kostanti
class Counter {
public static int $count = 0; // belongs to the CLASS, not instances
const MAX = 100; // class constant
public static function increment(): void {
self::$count++; // access static via self::
}
}
Counter::increment(); // call via ClassName::
Counter::MAX;
Il-membri statiku (sintassi ::) jappartjenu għall-klassi nnifisha; il-kostanti jużaw const.
