Arduino

Object Oriented Programming (OOP's)

Wat zijn OOP's?

Object Oriented is een benadering van software ontwikkeling die applicaties rond objecten uit de echte wereld, zoals werknemers, auto's, bankrekeningen, enzovoort, modelleert. Een klasse definieert de eigenschappen en methoden van een object uit de echte wereld. Een object is een instantie van een klasse.

De drie basiscomponenten van objectoriëntatie zijn;

Objectgeoriënteerde programmeerprincipes

De drie belangrijkste principes van OOP zijn;

OOP's Concepten in PHP

PHP is een op objecten georiënteerde scripttaal; het ondersteunt alle bovenstaande principes. De bovenstaande principes worden bereikt via;

Nu we de basiskennis hebben van OOP en hoe dit wordt ondersteund in PHP, laten we eens kijken naar voorbeelden die bovenstaande principes implementeren

Wat is UML?

Unified Modelling Language UML is een techniek die wordt gebruikt voor het ontwerpen en documenteren van objectgeoriënteerde systemen.

UML produceert een aantal documenten, maar we zullen kijken naar het klassendiagram dat erg belangrijk is voor objectgeoriënteerde php-programmering.

Klasse Diagram Voorbeeld

Class Diagram Key

Hoe maak je een klasse in PHP

Het class sleutelwoord wordt gebruikt om een ​​klasse in PHP te definiëren. Hieronder staan ​​de regels voor het maken van een klasse in PHP.

Laten we zeggen dat we een klasse willen creëren voor het representeren van dieren.

We beginnen met het identificeren van de functies die alle dieren gemeen hebben.

Het onderstaande diagram toont het diagram voor het dier

Laten we nu onze dierenklasse coderen

<? Php
class Animal
{
    private $family;
    private $food;
    public functie __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;
    }
}
?> 

Hoe overerving implementeren in PHP

We zullen werken met een koe en een leeuw. Zowel de koe als de leeuw erven de dierklasse.

Het klassendiagram hieronder toont de relaties.

Let op de koe erft van de dierenklasse en definieert ook zijn eigen variabele en methoden.

Laten we de klasse Koe nu coderen

<? Php
class Cow extends Animal uit
{
    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;
    }
}
?>

Laten we nu de Lion-klasse coderen

<? Php
class Lion extends Animal
{
    public function __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
}
?>

Hoe een object van de class te maken

De klassen Animal, Cow en Lion zouden allemaal omwille van de eenvoud in dezelfde directory moeten staan.

Laten we nu de applicatie maken die onze klassen gebruikt.

Voorbeeld 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();
?>

Het testen van onze applicatie

Laten we nu onze applicatie in een webbrowser bekijken

Fantastisch toch! Laten we nu kijken naar het derde principe van OOP, polymorfisme.

Laten we zeggen dat we een applicatie willen ontwikkelen die verbinding maakt met verschillende database-engines zoals MySQL en SQL Server, maar dezelfde uniforme interface gebruiken.

We kunnen een interface maken die de standaardmethoden definieert en een abstracte klasse die de algemene methoden implementeert.

Het klassendiagram hieronder illustreert de relatie tussen onze abstracte klasse, interface en implementatieklassen.

Laten we nu onze abstracte klasse maken

<? Php
abstracte klasse  DBCommonMethods
{
    private $host;
    private $db;
    private $uid;
    private $wachtwoord;
    public function __construct($host, $db,  $uid, $wachtwoord)
    {
        $this->host = $host;
        $this->db = $db;
        $this->uid = $uid;
        $this->wachtwoord = $wachtwoord;
    }
}
?>

Laten we nu de interface maken met de standaardmethoden die afhankelijk van de database-engine anders worden geïmplementeerd.

<? Php
interface DBInterface
{
    public function db_connect();
    public function insert($data);
    public function read($where);
    public function update($where);
    public function delete($where);
}
?>

Laten we nu de concrete klassen maken die de DBCommonMethods-klasse uitbreiden en de interface DBInterface uitbreiden. MySQLDriver.php

<?php class MySQLDriver extends
DBCommonMethods implements DBInterface {public function __construct($host, $db, $uid, $password) 
{ 
parent :: __ construct  ($ host, $ db, $ uid, $ wachtwoord); }
public function db_connect () { // connect code goes here} 
public function delete($where) { // delete code gaat hier} 
public function insert($data) { // invoegen code gaat hier} 
public function read($where) { // leescode gaat hier} 
public function update($where) { // update code gaat hier} 
}
?>

MSSQLServerDriver.php

<? Php 
class MSSQLServerDriver extends
DBCommonMethods implements DBInterface {public function __construct($host, $db, $uid, $password)
{ 
    parent::__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 }
}
?>

Gebruik van de bovenstaande code De code die de bovenstaande klasse gebruikt, ziet er als volgt uit

<? php $db = new MySQLDriver($host, $db, $uid, $password); ?>

Of

<? php $db = new MSSQLServerDriver($host, $db, $uid, $password); ?>

De rest van de code zou hetzelfde zijn voor beide stuurprogramma's, zoals;

<? Php 
$Db->db_connect();
$Db->insert($data);
}
?>

Samenvatting

Vorige Volgende