Programimi i orientuar nga objekti me PHP: Shembuj të plotë

Përditësimi i fundit: Maj 28 2025
  • Programimi i orientuar nga objektet (OOP) ju lejon të krijoni aplikacione më modulare dhe të ripërdorshme në PHP.
  • Katër shtyllat e OOP janë enkapsulimi, trashëgimia, polimorfizmi dhe abstraksioni.
  • Enkapsulimi mbron të dhënat e brendshme dhe përmirëson mirëmbajtjen e kodit.
  • Polimorfizmi lejon që objektet e klasave të ndryshme të trajtohen në mënyrë uniforme.
Programim i orientuar në objekte me PHP

Në këtë artikull gjithëpërfshirës mbi programimin e orientuar drejt objektit me PHP, do të gjeni shembuj praktikë dhe të detajuar që do t'ju ndihmojnë të kuptoni dhe zbatoni konceptet themelore. Mësoni se si të përdorni programimin e orientuar nga objekti në PHP në mënyrë efektive dhe të përmirësoni aftësitë tuaja zhvillimore. Eksploroni shembujt dhe bëhuni ekspert në OOP me PHP!

paraqitje

Programimi i orientuar nga objektet (OOP) është një paradigmë programimi që përdoret gjerësisht në zhvillimin e aplikacioneve dhe faqeve të internetit. PHP, si gjuhë programimi, ofron gjithashtu mbështetje të plotë për (https://informatecdigital.com/php-orientado-a-objetos-ejemplos-guia-completa/), duke u lejuar zhvilluesve të krijojnë kod më modular, të ripërdorshëm dhe të mirëmbajtur. Në këtë artikull, ne do të shqyrtojmë programimin e orientuar nga objektet me PHP përmes shembujve gjithëpërfshirës. Do të mësoni konceptet themelore të OOP dhe si t'i aplikoni ato në projektet tuaja PHP. Përgatituni t’i çoni aftësitë tuaja të programimit në një nivel tjetër!

Çfarë është programimi i orientuar nga objekti?

Programimi i orientuar nga objekti (OOP) është një qasje e zhvillimit të softuerit që bazohet në idenë e "objekteve" ndërvepruese që përmbledhin të dhënat dhe sjelljen. Në vend që të fokusohet në funksionet dhe procedurat si në programimin e strukturuar, OOP fokusohet në ndërveprimin midis objekteve që përfaqësojnë entitete të botës reale ose koncepte abstrakte. Këto objekte përcaktohen nga klasa, të cilat veprojnë si shabllone për krijimin e instancave të atyre objekteve.

Shembull i plotë: Krijimi i një klase "Personi".

Këtu është një shembull i plotë se si të krijoni një klasë "Person" në PHP duke përdorur programimin e orientuar nga objekti:

Personi i klasës {
// Vetitë
publik $emri;
mosha publike;
// Konstruktor
funksioni publik __construct($name, $age) {
$kjo->emri = $emri;
$this->mosha = $mosha;
}
// Metodat
përshëndetje për funksion publik () {
echo "Përshëndetje! Emri im është {$this->name} dhe jam {$this->age} vjeç.";
}
}

// Krijo një instancë të klasës "Person"
$person = Person i ri("Juan", 25);

// Thirrni metodën "përshëndetje"
$person->përshëndetje();

Në këtë shembull, ne kemi krijuar një klasë të quajtur "Person" me dy veti: "emri" dhe "mosha". Ne kemi përcaktuar gjithashtu një konstruktor për të inicializuar këto veti kur krijohet një shembull i ri i klasës. Klasa ka gjithashtu një metodë të quajtur "përshëndetje", e cila shfaq një mesazh përshëndetjeje duke përdorur vlerat e vetive.

Katër shtyllat e programimit të orientuar drejt objektit

Programimi i orientuar nga objektet bazohet në katër shtylla themelore që mundësojnë dizajn të fuqishëm dhe efikas të softuerit. Këto shtylla janë:

1. Kapsulimi

Enkapsulimi është procesi i fshehjes së detajeve të brendshme të një objekti dhe ekspozimit të vetëm një ndërfaqe të kufizuar për të bashkëvepruar me të. Kjo arrihet duke përcaktuar pronat dhe metodat si publike, private ose të mbrojtura. Enkapsulimi ndihmon në mbajtjen e kodit të organizuar, mbrojtjen e të dhënave të ndjeshme dhe përmirësimin e lexueshmërisë dhe mirëmbajtjes së kodit.

Shembulli i plotë: Kapsulimi në një klasë "Banka Account".

Supozoni se duam të modelojmë një llogari bankare duke përdorur programim të orientuar nga objekti. Këtu është një shembull i plotë se si të aplikoni kapsulimin në një klasë "Bankaccount" në PHP:

Llogaria Bankare e klasës {
// Prona private
bilanci privat i dollarëve;
// Konstruktor
funksioni publik __construct($initialbalance) {
$this->balance = $initialBalance;
}
// Metodë publike për të depozituar para
depozitë për funksion publik (shuma $) {
$kjo->balance += $shuma;
}
// Metodë publike për tërheqjen e parave
tërheqja e funksionit publik ($sasia) {
nëse ($sasia <= $kjo->balanca) {
$this->balance -= $amount;
} Tjetër {
jehonë "Ekuilibër i pamjaftueshëm.";
}
}
// Metodë publike për të marrë bilancin aktual
funksioni publik getBalance() {
kthe $this->balance;
}
}

// Krijo një instancë të klasës "BankAccount"
$account = Llogari e re Bankare (1000);

// Kryej operacione
$llogari->depozitë(500);
$account->withdraw(200);

// Merrni bilancin aktual
jehonë "Bilanci aktual:". $account->getBalance();

Në këtë shembull, ne e kemi përcaktuar pronën “balancë” si private për ta fshehur atë nga jashtë klasës. Për të bashkëvepruar me këtë pronë, ne kemi krijuar metoda publike si "depozitim", "tërheqje" dhe "getBalance". Këto metoda ju lejojnë të kryeni operacione në llogarinë bankare, por nuk lejojnë qasje të drejtpërdrejtë në pronën "balanca".

  Udhëzues i plotë për përpunimin GPU në kohë reale dhe në seri

2. Trashëgimia

Trashëgimia është një mekanizëm që ju lejon të krijoni një klasë të re bazuar në një klasë ekzistuese. Klasa ekzistuese njihet si klasa prind ose superklasë, ndërsa klasa e re njihet si klasa ose nënklasa fëmijë. Trashëgimia lehtëson ripërdorimin e kodit dhe krijimin e hierarkive të klasave, ku klasat fëmijë trashëgojnë vetitë dhe metodat nga klasa prind.

Shembulli i plotë: Trashëgimia në klasat "Kafshë" dhe "Qen"

Supozoni se duam të modelojmë lloje të ndryshme kafshësh duke përdorur programim të orientuar nga objekti. Këtu është një shembull i plotë se si të aplikoni trashëgiminë në klasat "Animal" dhe "Dog" në PHP:

klasa Kafshë {
// Pronë e mbrojtur
i mbrojtur $name;
// Konstruktor
funksioni publik __construct($name) {
$kjo->emri = $emri;
}
// Metoda publike për të marrë emrin
funksioni publik getName() {
kthe $this->name;
}
// Metodë publike për të lëshuar një tingull të përgjithshëm
funksion publik emitSound() {
jehonë "Kafsha bën një tingull.";
}
}

klasa Dog zgjat Animal {
// Metodë publike për të lëshuar lëvore
funksion publik emitSound() {
jehonë "Qeni leh: Uf uf uf!";
}
}

// Krijo një instancë të klasës "Dog"
$dog = Qen i ri("Firulais");

// Merrni emrin e qenit
jehonë "Emri i qenit:". $dog->getName(). «
";

// Bëj që qeni të bëjë zhurmë
$dog->playSound();

Në këtë shembull, ne kemi krijuar një klasë "Animal" që vepron si një klasë prind dhe një klasë "Dog" që trashëgon nga klasa "Animal". Klasa "Animal" ka një pronë të mbrojtur "emër" dhe dy metoda publike "getName" dhe "playSound". Klasa "Dog" anashkalon metodën "emitSound" për të lëshuar një leh specifike. Duke krijuar një shembull të klasës "Dog", ne trashëgojmë vetinë "emër" dhe metodat nga klasa "Animal" dhe mund t'i aksesojmë ato.

3. Polimorfizmi

Polimorfizmi lejon që një objekt të sillet në mënyra të ndryshme në varësi të kontekstit. Kjo arrihet duke përdorur metoda me të njëjtin emër në klasa të ndryshme, por me implementime të ndryshme. Polimorfizmi promovon fleksibilitetin dhe shtrirjen e kodit duke lejuar që objektet e klasave të ndryshme të trajtohen në mënyrë uniforme.

Shembulli i plotë: Polimorfizmi me klasat "Figura" dhe "Rrethi"/"Drejtkëndësh"

Supozoni se duam të modelojmë figura të ndryshme gjeometrike duke përdorur programim të orientuar nga objekti. Më poshtë është një shembull i plotë se si të aplikohet polimorfizmi në klasat "Shape", "Circle" dhe "Rectangle" në PHP:

klasa abstrakte Figura {
// Metoda abstrakte për të llogaritur sipërfaqen
funksioni publik abstrakt calculateArea();
}

Klasa Rrethi zgjeron Figurën {
radio private $;

// Konstruktor
funksioni publik __construct($radio) {
$this->radio = $radio;
}

// Implementimi i metodës abstrakte
funksioni publik calculateArea() {
kthen pi() * pow($this->radio, 2);
}
}

Klasa Drejtkëndësh zgjeron Figurën {
bazë private $;
lartësia private $;

// Konstruktor
funksioni publik __construct($base, $height) {
$this->base = $base;
$this->height = $height;
}

// Implementimi i metodës abstrakte
funksioni publik calculateArea() {
kthe $this->base * $this->height;
}
}

// Krijo instanca të klasave "Rreth" dhe "Drejtkëndësh"
$rreth = Rrethi i ri(5);
$drejtkëndësh = Drejtkëndësh i ri(4, 6);

// Llogaritni sipërfaqet duke përdorur polimorfizëm
jehonë "Zona e rrethit:". $rreth->llogaritniZonën(). «
";
echo "Sipërfaqja e drejtkëndëshit:". $drejtkëndësh->llogaritniZonën();

Në këtë shembull, ne kemi krijuar një klasë abstrakte "Figura" me një metodë abstrakte "calculateArea". Më pas, ne krijuam dy klasa "Rrethi" dhe "Rectangle" që trashëgojnë nga klasa "Shape" dhe ofrojnë zbatime konkrete të metodës "calculateArea". Duke instancuar klasat Circle dhe Rectangle dhe duke thirrur metodën CalculateArea, ne mund të marrim zonën specifike të secilës figurë gjeometrike.

4. Abstraksion

Abstraksioni është procesi i identifikimit të karakteristikave thelbësore të një objekti dhe krijimi i një paraqitjeje të thjeshtuar të atij objekti në formën e një klase. Abstraksioni ndihmon në menaxhimin e kompleksitetit duke fshehur detaje të panevojshme dhe duke u fokusuar në aspektet përkatëse. Klasat dhe ndërfaqet abstrakte janë mjete të zakonshme që përdoren për të arritur abstraksion në programimin e orientuar nga objekti.

  Si të hiqni bloatware nga Windows 11 duke përdorur PowerShell

Shembuj të plotë të programimit të orientuar nga objekti me PHP

Më poshtë po paraqesim një seri shembujsh të plotë të programimit të orientuar drejt objekteve me PHP. Këta shembuj mbulojnë koncepte të ndryshme dhe do t'ju ndihmojnë të kuptoni dhe aplikoni OOP në projektet tuaja PHP.

1. Krijimi i një klase “Produkt” me veti dhe metoda

Produkti i klasës {
emri privat $;
çmimi privat $;

funksioni publik __construct($name, $price) {
$kjo->emri = $emri;
$kjo->çmimi = $çmimi;
}

funksioni publik getName() {
kthe $this->name;
}

funksioni publik getPrice() {
kthe $this->price;
}

funksion publik showDetails() {
jehonë "Emri:". $kjo->emri. «
";
jehonë "Çmimi: $". $kjo->çmimi. «
";
}
}

$produkt = Produkt i ri("Bluzë", 29.99);
$product->showDetails();

Në këtë shembull, ne kemi krijuar një klasë "Produkt" me vetitë private "emri" dhe "çmimi". Konstruktori është përgjegjës për inicializimin e këtyre vetive kur krijohet një shembull i klasës. Klasa ka gjithashtu metoda për të marrë emrin dhe çmimin e produktit, si dhe për të shfaqur detajet e plota të produktit.

2. Trashegimi ndermjet klasave "Automjet" dhe "Automobil".

automjeti i klasës {
markë e mbrojtur $;

funksioni publik __construct($mark) {
$kjo->markë = $markë;
}

funksioni publik getBrand() {
kthe $this->brand;
}

funksion publik drive() {
jehonë "Duke drejtuar automjetin...";
}
}

Klasa Automobile zgjeron Automjetin {
model privat $;

funksioni publik __construct($brand, $model) {
prindi::__construct($brand);
$kjo->model = $model;
}

funksioni publik getModel() {
kthe $this->model;
}

funksion publik showDetails() {
jehonë "Marku:". $kjo->markë. «
";
jehonë "Modeli:". $kjo->model. «
";
}
}

$automobile = Automobil i ri ("Toyota", "Corolla");
$automobile->showDetails();
$car->drive();

Në këtë shembull, ne kemi krijuar një klasë "Vehicle" me një pronë të mbrojtur "make" dhe metoda për të marrë markën dhe për të drejtuar automjetin. Më pas, ne krijuam një klasë "Makina" që trashëgon nga klasa "Vehicle" dhe shton një "model" të pronës private dhe një metodë për të shfaqur detajet e plota të makinës. Duke krijuar një shembull të klasës "Car", ne mund të aksesojmë si metodat e klasës prind ashtu edhe metodat specifike të klasës fëmijë.

3. Zbatimi i polimorfizmit në klasat “Kafshë” dhe “Mace”.

klasë abstrakte Kafshë {
i mbrojtur $name;

funksioni publik __construct($name) {
$kjo->emri = $emri;
}

funksioni publik abstrakt makeSound();
}

klasa Dog zgjat Animal {
funksioni publik makeSound() {
jehonë "Qeni leh: Uf uf uf!";
}
}

klasa Cat zgjeron Animal {
funksioni publik makeSound() {
jehonë «Macja mjaullin: Mjau!»;
}
}

$dog = Qen i ri("Firulais");
$cat = Cat i ri("Garfield");

$dog->makeSound();
$cat->makeSound();

Në këtë shembull, ne kemi krijuar një klasë abstrakte "Animal" me një metodë abstrakte "makeSound". Më pas, ne krijuam klasat "Dog" dhe "Cat" që trashëgojnë nga klasa "Animal" dhe ofrojnë zbatime specifike të metodës "makeSound". Duke thirrur metodën "makeSound" në shembujt e klasave "Qen" dhe "Cat", ne mund të shohim se si çdo kafshë nxjerr një tingull të ndryshëm.

4. Përdorimi i ndërfaqeve në klasat "Pagesa" dhe "PayPal".

ndërfaqja e pagesës {
funksion publik procesPayment($amount);
}

klasa PayPal zbaton Pagesën {
funksion publik procesPayment($amount) {
echo "Po përpunohet pagesa prej $". $sasia. » nëpërmjet PayPal…»;
}
}

Klasa CreditCard zbaton Pagesën {
funksion publik procesPayment($amount) {
echo "Po përpunohet pagesa prej $". $sasia. »me kartë krediti…»;
}
}

$paypal = PayPal i ri();
$card = Kartë Krediti e re();

$paypal->processPayment(100);
$card->processPayment(50);

Në këtë shembull, ne kemi krijuar një ndërfaqe "Pagesë" me një metodë "processPayment". Më pas, ne krijuam klasat “PayPal” dhe “CreditCard” që zbatojnë ndërfaqen “Payment” dhe ofrojnë zbatime specifike të metodës “processPayment”. Duke thirrur metodën "processPayment" në shembuj të këtyre klasave, ne mund të përpunojmë një pagesë duke përdorur mënyra të ndryshme pagese.

Këta shembuj ju japin një ide se si mund të përdorni programimin e orientuar nga objekti në PHP. Eksploroni më shumë shembuj dhe praktikoni për të përmirësuar aftësitë tuaja programuese të orientuara drejt objekteve me PHP.

Pyetje të shpeshta

Cilat janë avantazhet e programimit të orientuar drejt objektit me PHP?

Programimi i orientuar nga objekti me PHP ofron disa avantazhe, të tilla si ripërdorimi i kodit, modulariteti, lexueshmëria dhe mirëmbajtja e kodit, dhe aftësia për të modeluar problemet më saktë duke përdorur objektet dhe ndërveprimet e tyre. Përveç kësaj, OOP lejon fleksibilitet dhe shtrirje më të madhe në zhvillimin e aplikacioneve dhe faqeve të internetit.

A është e nevojshme të mësosh programim të orientuar nga objekti për të programuar në PHP?

Nuk është rreptësisht e nevojshme të mësosh programim të orientuar nga objekti për të programuar në PHP, pasi PHP gjithashtu mbështet programimin e strukturuar. Sidoqoftë, programimi i orientuar nga objekti përdoret gjerësisht në zhvillimin e aplikacioneve dhe faqeve të internetit PHP, dhe mësimi i tij do të hapë derën për kodin më modular, të ripërdorshëm dhe të mirëmbajtur.

  Udhëzues i plotë për planifikimin e kopjeve rezervë dhe detyrave automatike me Cron në Linux

Cili është ndryshimi midis një klase dhe një objekti në programimin e orientuar nga objekti?

Në programimin e orientuar nga objekti, një klasë është një shabllon ose formë që përcakton vetitë dhe metodat e përbashkëta që do të kenë objektet e krijuara prej saj. Nga ana tjetër, një objekt është një shembull specifik i një klase, i cili ka vetitë e veta dhe mund të ekzekutojë metodat e përcaktuara në klasë.

Kur duhet të përdorni trashëgiminë në programimin e orientuar drejt objektit me PHP?

Trashëgimia përdoret në programimin e orientuar nga objekti kur dëshironi të krijoni një klasë të re bazuar në një klasë ekzistuese, me qëllim të trashëgimisë së vetive dhe metodave të saj dhe shtimit të funksionalitetit shtesë ose modifikimit të sjelljes ekzistuese. Trashëgimia lejon ripërdorimin e kodit dhe krijimin e hierarkive të klasave, duke e bërë më të lehtë organizimin dhe mirëmbajtjen e kodit.

Cili është ndryshimi midis një klase abstrakte dhe një ndërfaqeje në PHP?

Një klasë abstrakte është një klasë që nuk mund të instantohet drejtpërdrejt, por përdoret si bazë për krijimin e nënklasave. Mund të përmbajë metoda me zbatime konkrete dhe metoda abstrakte që duhet të zbatohen nga nënklasa. Nga ana tjetër, një ndërfaqe është një koleksion i metodave abstrakte që duhet të zbatohen nga çdo klasë që e zbaton atë. Një klasë mund të implementojë ndërfaqe të shumta, por mund të trashëgojë vetëm nga një klasë abstrakte.

Cila është rëndësia e kapsulimit në programimin e orientuar drejt objektit?

Enkapsulimi është thelbësor në programimin e orientuar nga objekti, sepse ju lejon të fshehni detajet e brendshme të një objekti dhe të ekspozoni vetëm një ndërfaqe të kufizuar për ndërveprim me të. Kjo ndihmon në mbrojtjen e të dhënave të ndjeshme, sigurimin e konsistencës së gjendjes së objektit dhe përmirësimin e lexueshmërisë dhe mirëmbajtjes së kodit. Enkapsulimi gjithashtu lehtëson evolucionin e kodit, pasi ndryshimet e brendshme të një objekti nuk prekin objektet e tjera që ndërveprojnë me të.

Përfundim

Programimi i orientuar nga objekti me PHP është një qasje e fuqishme dhe fleksibël për zhvillimin e aplikacioneve dhe faqeve të internetit. Duke përdorur klasa, objekte, trashëgimi, polimorfizëm dhe abstraksion, mund të krijoni kod modular, të ripërdorshëm dhe të mirëmbajtur. Në këtë artikull, ne kemi eksploruar shembuj të plotë të programimit të orientuar nga objekti me PHP, duke mbuluar konceptet themelore dhe duke treguar zbatimin e tyre praktik. Shpresojmë që këta shembuj t'ju kenë ndihmuar të kuptoni dhe zbatoni programimin e orientuar nga objekti në projektet tuaja PHP!

PHP e orientuar nga objekti
Artikuj të ngjashëm:
Si të zotëroni PHP të orientuar drejt objekteve