PHP Object Oriented Programming (OOPs)-Konzept-Tutorial mit Beispiel
Was sind OOPs?
Objektorientiert ist ein Ansatz zur Softwareentwicklung, der Anwendungen anhand realer Objekte wie Mitarbeiter, Autos, Bankkonten usw. modelliert. Eine Klasse definiert die Eigenschaften und Methoden eines realen Objekts. Ein Objekt ist ein Vorkommen einer Klasse.
Die drei Grundkomponenten der Objektorientierung sind:
- Objektorientierte Analyse โ Funktionalitรคt des Systems
- Objektorientiertes Entwerfen โ Architektur des Systems
- Objektorientierte Programmierung โ Implementierung der Anwendung
Prinzipien der objektorientierten Programmierung
Die drei Hauptprinzipien von OOP sind:
- Kapselung โ hier geht es darum, die Implementierungsdetails zu verbergen und nur die Methoden offenzulegen. Der Hauptzweck der Kapselung besteht darin:
- Reduzieren Sie die Komplexitรคt der Softwareentwicklung โ indem Sie die Implementierungsdetails verbergen und nur die Vorgรคnge anzeigen, wird die Verwendung einer Klasse vereinfacht.
- Schรผtzen Sie den internen Zustand eines Objekts โ der Zugriff auf die Klassenvariablen erfolgt รผber Methoden wie get und set, wodurch die Klasse flexibel und einfach zu warten ist.
- Die interne Implementierung der Klasse kann geรคndert werden, ohne dass der Code beschรคdigt werden muss, der die Klasse verwendet.
- Erbe โ Hier geht es um die Beziehung zwischen Klassen. Die Beziehung nimmt die Form eines Eltern-Kind-Verhรคltnisses an. Das untergeordnete Element verwendet die in der รผbergeordneten Klasse definierten Methoden. Der Hauptzweck der Vererbung ist;
- Wiederverwendbarkeit โ mehrere untergeordnete Elemente kรถnnen vom selben รผbergeordneten Element erben. Dies ist sehr nรผtzlich, wenn wir allgemeine Funktionen wie das Hinzufรผgen, Aktualisieren und Lรถschen von Daten zur Datenbank bereitstellen mรผssen.
- Polymorphie โ Hier geht es darum, ein einziges Formular, aber viele verschiedene Implementierungsmรถglichkeiten zu haben. Der Hauptzweck des Polymorphismus ist;
- Vereinfachen Sie die Wartung von Anwendungen und machen Sie sie erweiterbarer.
Hoppla Concepts in PHP
PHP ist eine objektorientierte Skriptsprache; Es unterstรผtzt alle oben genannten Prinzipien. Die oben genannten Prinzipien werden erreicht durch:
- Kapselung โ รผber die Verwendung von โgetโ- und โsetโ-Methoden usw.
- Erbe โ รผber die Verwendung des Schlรผsselworts โextendsโ.
- Polymorphie โ รผber die Verwendung des Schlรผsselworts โimplementsโ.
Jetzt verfรผgen wir รผber die Grundkenntnisse von OOP und wissen, wie es unterstรผtzt wird PHPSchauen wir uns Beispiele an, die die oben genannten Prinzipien umsetzen
Was ist UML?
Die Unified Modeling Language UML ist eine Technik zum Entwerfen und Dokumentieren objektorientierter Systeme.
UML erzeugt eine Reihe von Dokumenten, aber wir werden uns das Klassendiagramm ansehen, das fรผr die objektorientierte PHP-Programmierung sehr wichtig ist.
Beispiel fรผr ein Klassendiagramm
Klassendiagrammschlรผssel
- Die Oberes Feld enthรคlt den Klassennamen
- Die mittlere Box enthรคlt die Klassenvariablen
- Die unterer Kasten enthรคlt die Klassenmethoden
- Die minus (-) Zeichen bedeutet privaten Bereich
- Die plus (+) Zeichen bedeutet รถffentlichen Bereich
- Die Hash (#) Zeichen bedeutet geschรผtzter Bereich
So erstellen Sie eine Klasse in PHP
Das Schlรผsselwort class wird verwendet, um eine Klasse in PHP zu definieren. Nachfolgend finden Sie die Regeln zum Erstellen einer Klasse in PHP.
- Der Klassenname sollte mit einem Buchstaben beginnen
- Der Klassenname darf kein PHP-reserviertes Wort sein
- Der Klassenname darf keine Leerzeichen enthalten
Nehmen wir an, wir mรถchten eine Klasse zur Darstellung von Tieren erstellen.
Wir beginnen mit der Identifizierung der Merkmale, die allen Tieren gemeinsam sind.
- Alle Tiere gehรถren zu einer Familie wie Pflanzenfresser, Karneval usw.
- Alle Tiere fressen Nahrung
Das folgende Diagramm zeigt das Diagramm fรผr das Tier
Lassen Sie uns nun unsere Tierklasse codieren
<?php
class Animal
{
private $family;
private $food;
public function __construct($family, $food)
{
$this->family = $family;
$this->food = $food;
}
public function get_family()
{
return $this->family;
}
public function set_family($family)
{
$this->family = $family;
}
public function get_food()
{
return $this->food;
}
public function set_food($food)
{
$this->food = $food;
}
}
?>
HIER,
- โprivate $family, $foodโ bedeutet, dass auf die Variablen nicht direkt auรerhalb der Klasse zugegriffen werden kann (Kapselung).
- โpublic function __construct($familyโฆ)โ ist die PHP-Konstruktormethode. Diese Funktion wird immer dann aufgerufen, wenn eine Instanz der Klasse erstellt wurde. In diesem Fall legen wir die Familie und das Essen fest.
- โpublic function getโฆ()โ ist die Methode, die verwendet wird, um auf den Familien- oder Lebensmittelwert zuzugreifen (Kapselung)
- โpublic function setโฆ()โ ist die Methode, die zum Festlegen des Familien- oder Lebensmittelwerts verwendet wird (Kapselung).
So implementieren Sie die Vererbung in PHP
Wir werden mit einer Kuh und einem Lรถwen arbeiten. Sowohl die Kuh als auch der Lรถwe erben von der Klasse โAnimalโ.
Das folgende Klassendiagramm zeigt die Beziehungen.
Beachten Sie, dass die Kuh von der Tierklasse erbt und auch ihre eigenen Variablen und Methoden definiert.
Lassen Sie uns nun die Cow-Klasse codieren
<?php
class Cow extends Animal
{
private $owner;
public function __construct($family, $food)
{
parent::__construct($family, $food);
}
public function set_owner($owner)
{
$this->owner = $owner;
}
public function get_owner()
{
return $this->owner;
}
}
?>
Lassen Sie uns nun die Lion-Klasse codieren
<?php
class Lion extends Animal
{
public function __construct($family, $food)
{
parent::__construct($family, $food);
}
}
?>
HIER,
- โclass โฆ erweitert Animalโ veranlasst die Kuh und den Lรถwen, Methoden aus der Animal-Klasse (Vererbung) zu verwenden.
So erstellen Sie ein Objekt der Klasse
Der Einfachheit halber sollten sich die Klassen Animal, Cow und Lion alle im selben Verzeichnis befinden.
Lassen Sie uns nun die Anwendung erstellen, die unsere Klassen verwendet.
Beispiel einer PHP-Klasse
<?php
require 'Animal.php';
require 'Cow.php';
require 'Lion.php';
$cow = new Cow('Herbivore', 'Grass');
$lion = new Lion('Canirval', 'Meat');
echo '<b>Cow Object</b> <br>';
echo 'The Cow belongs to the ' . $cow->get_family() . ' family and eats ' . $cow->get_food() . '<br><br>';
echo '<b>Lion Object</b> <br>';
echo 'The Lion belongs to the ' . $lion->get_family() . ' family and eats ' . $lion->get_food();
?>
Testen unserer Anwendung
Sehen wir uns nun unsere Anwendung in einem Webbrowser an
Fantastisch, richtig! Schauen wir uns nun das dritte Prinzip von OOP an, den Polymorphismus.
Nehmen wir an, wir mรถchten eine Anwendung entwickeln, die eine Verbindung zu verschiedenen Datenbank-Engines herstellt, z MySQL , SQL Server, verwenden aber die gleiche einheitliche Schnittstelle.
Wir kรถnnen eine Schnittstelle erstellen, die die Standardmethoden definiert, und eine abstrakte Klasse, die die allgemeinen Methoden implementiert.
- Interface โ Es รคhnelt einer Klasse. Es definiert lediglich die Methoden und Parameter.
- Abstrakte Klasse โ Es handelt sich um eine Klasse, die nicht zum direkten Erstellen eines Objekts verwendet werden kann. Sein Zweck besteht darin, teilweise oder vollstรคndige Implementierungen gรคngiger Methoden bereitzustellen.
Das folgende Klassendiagramm veranschaulicht die Beziehung zwischen unseren abstrakten Klassen, Schnittstellen und Implementierungsklassen.
Lassen Sie uns nun unsere abstrakte Klasse erstellen
<?php
abstract class DBCommonMethods
{
private $host;
private $db;
private $uid;
private $password;
public function __construct($host, $db, $uid, $password)
{
$this->host = $host;
$this->db = $db;
$this->uid = $uid;
$this->password = $password;
}
}
?>
HIER,
- โAbstrakte Klasseโ bedeutet, dass die Klasse nicht direkt zum Erstellen eines PHP-Objekts verwendet werden kann
- โ$host,$dbโฆโ sind Klassenvariablen, die allen Implementierungen gemeinsam sind
- โfunction __construct(โฆ)โ ist die PHP-Klassenkonstruktormethode, die die Werte der allgemeinen Variablen bei der Initialisierung festlegt
Erstellen wir nun die Schnittstelle, die die Standardmethoden enthรคlt, die je nach Datenbank-Engine unterschiedlich implementiert werden.
<?php
interface DBInterface
{
public function db_connect();
public function insert($data);
public function read($where);
public function update($where);
public function delete($where);
}
?>
HIER,
- โSchnittstelleโ ist das Schlรผsselwort fรผr die Erstellung von Schnittstellen
- โpublic functionโฆ(โฆ)โ sind die Standardmethoden, die implementiert werden sollten
Lassen Sie uns nun die konkreten Klassen erstellen, die die DBCommonMethods-Klasse und die DBInterface-Schnittstelle erweitern. MySQLDriver.php
<?php class MySQLDriver extends
DBCommonMethods implements DBInterface { public function __construct($host, $db, $uid, $password)
{
parent::__construct($host, $db, $uid, $password); }
public function db_connect() { //connect code goes here }
public function delete($where) { //delete code goes here }
public function insert($data) { //insert code goes here }
public function read($where) { //read code goes here }
public function update($where) { //update code goes here }
} ?>
MSSQLServerDriver.php
<?php
class MSSQLServerDriver extends
DBCommonMethods implements DBInterface { public function __construct($host, $db, $uid, $password)
{
parent::__construct($host, $db, $uid, $password); }
public function db_connect() { //connect code goes here }
public function delete($where) { //delete code goes here }
public function insert($data) { //insert code goes here }
public function read($where) { //read code goes here }
public function update($where) { //update code goes here }
} ?>
HIER,
- โKlasse โฆ erweitert DBCommonMethodsโ verwendet die Methoden in DBCommonMethods
- โโฆ implementiert DBInterfaceโ stellt sicher, dass die Klasse unabhรคngig vom verwendeten Datenbanktreiber Standardmethoden bereitstellt.
Verwendung des obigen Codes Der Code, der die obige Klasse verwendet, wรผrde wie folgt aussehen
<?php $db = new MySQLDriver($host,$db,$uid,$password); ?>
Or
<?php $db = new MSSQLServerDriver ($host,$db,$uid,$password); ?>
Der Rest des Codes wรคre fรผr beide Treiber gleich, z.
<?php $db->db_connect(); $db->insert($data); ?>
Zusammenfassung
- Objektorientierte Programmierung (OOP) ist eine leistungsstarke Technik, die Anwendungen nach realen Objekten modelliert
- Eine Klasse ist eine Darstellung realer Objekte mit Eigenschaften und Methoden
- Die drei Grundprinzipien von OOP sind:
- Kapselung
- Erbe
- Polymorphie





