Traži

Što je objekt u PHP-u

Što je objekt u PHP-u i kako ga koriste backend developeri?

Uvod u objekte za PHP Backend Developere

Objekti su ključni koncept u objektno orijentiranom programiranju (OOP), koji omogućuje organizaciju koda na modularan i strukturiran način. U PHP-u, objekt predstavlja instancu klase koja može sadržavati podatke (svojstva) i funkcionalnosti (metode). Ovaj članak objašnjava što su objekti, kako ih kreirati i koristiti te zašto su važni za backend developere.

Što je objekt u PHP-u?

U PHP-u, objekt je instanca klase. Klasa je predložak ili nacrt koji definira strukturu objekta, uključujući njegova svojstva i metode. Objekti omogućuju programerima da rade s podacima i funkcijama grupiranim u logičke cjeline, što pojednostavljuje razvoj i održavanje aplikacija.

Primjer objekta:

php
class Auto {
public $boja;
public $model;

public function __construct($boja, $model) {
$this->boja = $boja;
$this->model = $model;
}

public function vozi() {
return "Auto " . $this->model . " vozi!";
}
}

// Kreiranje objekta
$mojAuto = new Auto("crvena", "BMW");
echo $mojAuto->vozi(); // Ispisuje "Auto BMW vozi!"

U ovom primjeru, klasa Auto definira dva svojstva – $boja i $model, te metodu vozi() koja vraća poruku. Objekt $mojAuto je instanca klase Auto.

Kako kreirati objekt u PHP-u?

Kreiranje objekta započinje definiranjem klase. Klasa sadrži svojstva (podaci) i metode (funkcije). Nakon definiranja klase, objekt se kreira pomoću ključne riječi new.

Primjer klase i objekta:

php
class Pas {
public $ime;
public $rasa;

public function laje() {
return "Vau vau!";
}
}

$mojPas = new Pas(); // Kreiranje objekta klase Pas
$mojPas->ime = "Rex";
$mojPas->rasa = "Njemački ovčar";
echo $mojPas->ime . " je pas rase " . $mojPas->rasa; // Ispisuje "Rex je pas rase Njemački ovčar"

Svojstva i metode u objektima

Svojstva su varijable unutar klase koje pohranjuju podatke specifične za objekt. U PHP-u se svojstva definiraju pomoću ključnih riječi public, private ili protected, ovisno o tome želite li im omogućiti pristup izvan klase.

Metode su funkcije unutar klase koje definiraju ponašanje objekta. Mogu se pozivati na objektima pomoću operatora ->.

Primjer:

php
class Knjiga {
public $naslov;
public $autor;

public function citaj() {
return "Čitam knjigu: " . $this->naslov;
}
}

$knjiga = new Knjiga();
$knjiga->naslov = "1984";
$knjiga->autor = "George Orwell";
echo $knjiga->citaj(); // Ispisuje "Čitam knjigu: 1984"

Konstruktor i destruktor

Konstruktor je posebna metoda koja se automatski poziva prilikom kreiranja objekta. Koristi se za inicijalizaciju svojstava objekta. U PHP-u se konstruktor definira kao __construct().

Primjer:

php
class Laptop {
public $marka;
public $model;

public function __construct($marka, $model) {
$this->marka = $marka;
$this->model = $model;
}

public function info() {
return "Laptop " . $this->marka . " model " . $this->model;
}
}

$laptop = new Laptop("Dell", "XPS 13");
echo $laptop->info(); // Ispisuje "Laptop Dell model XPS 13"

Destruktor je metoda koja se poziva kada objekt više nije potreban i koristi se za oslobađanje resursa. Definira se kao __destruct(), ali se rijetko koristi jer PHP ima automatsko upravljanje memorijom.

Enkapsulacija

Enkapsulacija je jedan od glavnih principa objektno orijentiranog programiranja. Omogućuje zaštitu podataka tako što ograničava pristup svojstvima objekta izvan klase. To se postiže korištenjem pristupnih modifikatora public, private i protected.

  • public – Svojstva ili metode mogu biti dostupni svima.
  • private – Svojstva ili metode su dostupni samo unutar klase.
  • protected – Svojstva ili metode su dostupni unutar klase i naslijeđenih klasa.

Primjer enkapsulacije:

php
class BankovniRacun {
private $saldo = 1000;

public function prikaziSaldo() {
return $this->saldo;
}

private function povecajSaldo($iznos) {
$this->saldo += $iznos;
}
}

$racun = new BankovniRacun();
echo $racun->prikaziSaldo(); // Ispisuje 1000

U ovom primjeru, svojstvo $saldo je privatno, pa mu nije moguće pristupiti direktno izvan klase. Prikazuje se samo putem javne metode prikaziSaldo().

Nasljeđivanje

Nasljeđivanje omogućava jednoj klasi da naslijedi svojstva i metode druge klase. Ova tehnika olakšava ponovno korištenje koda i omogućuje proširenje funkcionalnosti bez ponovnog pisanja iste logike.

Primjer nasljeđivanja:

php
class Vozilo {
public $boja;

public function vozi() {
return "Vozilo vozi!";
}
}

class Automobil extends Vozilo {
public $model;

public function voziAutomobil() {
return "Automobil " . $this->model . " vozi!";
}
}

$auto = new Automobil();
$auto->boja = "plava";
$auto->model = "Audi";
echo $auto->voziAutomobil(); // Ispisuje "Automobil Audi vozi!"

Polimorfizam

Polimorfizam omogućuje korištenje istih metoda na različitim objektima, pri čemu se ponašanje metode može prilagoditi ovisno o objektu.

Primjer polimorfizma:

php
class Oblik {
public function crtaj() {
return "Crtam oblik";
}
}

class Krug extends Oblik {
public function crtaj() {
return "Crtam krug";
}
}

class Kvadrat extends Oblik {
public function crtaj() {
return "Crtam kvadrat";
}
}

$oblici = [new Krug(), new Kvadrat()];
foreach ($oblici as $oblik) {
echo $oblik->crtaj() . "<br>";
}

U ovom primjeru, metoda crtaj() ima različito ponašanje ovisno o objektu koji je pozvan (krug ili kvadrat).

Zašto su objekti važni za backend developere?

Objekti omogućuju backend developerima da organiziraju kod na učinkovit i čitljiv način. Korištenjem OOP-a, lakše je raditi s velikim projektima, ponovo koristiti kod, te dijeliti funkcionalnosti između različitih dijelova aplikacije. Osim toga, OOP olakšava održavanje koda i suradnju unutar tima.

Objekti su ključni u razvoju aplikacija koje koriste složene podatkovne strukture, jer omogućuju programerima da stvaraju apstraktne modele stvarnih entiteta, kao što su korisnici, proizvodi, transakcije, itd.

Zaključak

Objekti su temeljni koncept u PHP-u i objektno orijentiranom programiranju. Oni omogućuju backend developerima da pišu organiziran, modularan i skalabilan kod. Korištenje klasa i objekata poboljšava strukturu aplikacija, omogućuje ponovno korištenje koda i olakšava rad na složenim sustavima. Učeći kako kreirati i koristiti objekte, backend developeri mogu značajno unaprijediti svoje vještine i raditi na naprednijim PHP projektima.

 

Dalibor Katić


Udruga “Putokaz”

Server – MyDataKnox

Odgovori

Your email address will not be published.

You may use these <abbr title="HyperText Markup Language">html</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*