PHP OOP: Co je rozhraní (Object Interface) [5]

PHP OOP: Co je rozhraní (Object Interface) [5]

Rozhraní (Object Interface) v PHP OOP možná vypadá trochu tajuplně, ale jeho účel je poměrně prostý - umožňuje nám jen deklarovat hlavičky veřejných metod z nějaké třídy.

Znamená to, že daná třída musí obsahovat všechny funkce, které jsou deklarované v interface. Tyto funkce musí být veřejné (public). Jinak řečeno - rozhraní jsou používané k definování veřejných metod, které musí třída obsahovat - pokud tomu tak není, dostaneme chybu... Nic víc na tom není...

 

Příklad 1 - interface pro jednu třídu

Funguje to tak, že pokud máte např. rozhraní MyClassInterface ke třídě MyClass a ta má veřejnou metodu index(), tak se musí definovat, že třída MyClass implementuje MyClassInterface, což pak vypadá nějak takto:

interface MyClassInterface{
    public function index();
}
   
class MyClass implements MyClassInterface{
    public function index(){
        echo 'Index OK';
    }
}

$c = new MyClass;
$c->index();

Tento kód nám vrátí výsledek:

Index OK

 

Vlastnosti rozhraní (interface)

Používají se pro:

  • Definování veřejných metod třídy
  • Definování konstant pro třídu

Nelze použít pro:

  • Vytváření instancí
  • Definování soukromých a chráněných metod třídy
  • Definování vlastností třídy

Vlastnosti

  • Jedna třída může implementovat více rozhraní, oddělují se čárkou
  • Jedno rozhraní může implementovat více tříd
  • Díky rozhraní je možné různým třídám implementovat stejné metody bez ohledu na hierarchii dědičnosti

Příklad 2 - Použití rozhraní (interface) mezi více třídami

 interface MyInterface{
    const CONSTANT_CI = 'OK';
    public function index();
  }

  class FirstClass implements MyInterface{
    public function index(){
        echo 'FirstClass Index '.self::CONSTANT_CI . PHP_EOL;
    }

    public function notInInterface(){
        echo 'notInInterface';
    }
  }

    class SecondClass implements MyInterface{
    public function index(){
        echo 'SecondClass Index '.self::CONSTANT_CI . PHP_EOL;
    }
  }

$f = new FirstClass;
$f->index();

$s = new SecondClass;
$s->index();

Tento kód nám vrátí:

FirstClass Index OK
SecondClass Index OK

 

Odkazy

Soubory na github.com

Komentáře

Vaše reakce na PHP OOP: Co je rozhraní (Object Interface) [5]
Kůrovec
#1875

21.04.2023 [1]
Poslední komentář
Díky za tento seriál o PHP OOP programování :-) Jen tak dál!

Související obsah

serial-php-oop

php

programovani

vyvoj

php-oop

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.