NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: redis klient

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Vít Cigánek:24.10.2015 21:53

Zdravím sehnal jsem si php klienta na databázi redis a potřeboval bych jej pořádně prozkoumat. Jelikož nemám s objektovým programováním tolik zkušeností, tak mě dostal tenhle zápis. A v druhem obrázku mám strukturu. Nemůžu najít třídu z které tahle třída dědí.

 
Odpovědět
24.10.2015 21:53
Avatar
Odpovídá na Vít Cigánek
Martin Konečný (pavelco1998):24.10.2015 22:25

Třída Exception je zabudována přímo v PHP.

http://php.net/…xception.php

edit:
Jen abych doplnil, proč ta PredisException od ní dědí a nemá v sobě nic navíc - snáz se pak zjistí, o jakou přesně chybu (výjimku) jde.

try {
   // nějaký kód
} catch (PredisException $e) {
   // víme, že je to výjimka kvůli chybě s knihovnou Predis (třeba se nedokáže spojit s databází apod.)
} catch (AnotherException $e) {
   // nějaká jiná výjimka,  můžeme zde provést jinou akci
}
Editováno 24.10.2015 22:27
Nahoru Odpovědět
24.10.2015 22:25
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Vít Cigánek:25.10.2015 13:20

Dá se někde najít seznam zabudovaných tříd? Abych příště nekoukal jako tele..

 
Nahoru Odpovědět
25.10.2015 13:20
Avatar
Vít Cigánek:25.10.2015 14:03

Poslední dotaz.

Mám třídu

use Predis\Comman­d\CommandInter­face;
use Predis\Comman­d\RawCommand;
use Predis\Comman­d\ScriptComman­d;
use Predis\Configu­ration\Option­s;
use Predis\Configu­ration\Option­sInterface;
use Predis\Connec­tion\Aggregate­ConnectionInter­face;
use Predis\Connec­tion\Connecti­onInterface;
use Predis\Connec­tion\Parameter­sInterface;
use Predis\Monitor\Con­sumer as MonitorConsumer;
use Predis\Pipeli­ne\Pipeline;
use Predis\PubSub\Con­sumer as PubSubConsumer;
use Predis\Respon­se\ErrorInter­face as ErrorResponse­Interface;
use Predis\Respon­se\ResponseIn­terface;
use Predis\Respon­se\ServerExcep­tion;
use Predis\Transac­tion\MultiExec as MultiExecTran­saction;

chybi usePredis\Pro­file\ProfileIn­terface

Definice tridy

class Client implements **ClientInterface**
{
atributy

metody
}

a v interface je

use Predis\Comman­d\CommandInter­face;
use Predis\Configu­ration\Option­sInterface;
use Predis\Connec­tion\Connecti­onInterface;
use Predis\Profile\Pro­fileInterface;

interface ClientInterface
{
functions
}

Otázka zní, proč to musí být v Clientinterface, když je to ve třídě Client. Proč to musí být definovane na obou místech.
ClientInterface mi říka že musím mít všechny metody z

use Predis\Comman­d\CommandInter­face;
use Predis\Configu­ration\Option­sInterface;
use Predis\Connec­tion\Connecti­onInterface;
use Predis\Profile\Pro­fileInterface;

Tím pádem třída Predis\Client musí mít všechny metody

Clientinterface

+

use Predis\Comman­d\CommandInter­face;
use Predis\Configu­ration\Option­sInterface;
use Predis\Connec­tion\Connecti­onInterface;
use Predis\Profile\Pro­fileInterface;

Doufam, že jsem to napsal zrozumitelně. Jinými slovy proč to musí být na dvou místech. Jednak v klientu a jednak v Clientinterface. Jedna se o definovaní tři interface.

Editováno 25.10.2015 14:03
 
Nahoru Odpovědět
25.10.2015 14:03
Avatar
Odpovídá na Vít Cigánek
Martin Konečný (pavelco1998):25.10.2015 14:21

Nejsem si jistej, jestli chápu správně dotaz. Ty use statementy se používají proto, abys pak v programu nemusel psát celý namespace, tzn. když máš

use Predis\Command\CommandInterface

tak když třeba třída to rozhraní implementuje, stačí napsat jen

class Foo implements CommandInterface   //  namísto celého Predis\Command\CommandInterface
{
}

A pokud daná třída/interfa­ce/trait není vůbec v programu použit, pak je zbytečný mít jeho název v use.

Nahoru Odpovědět
25.10.2015 14:21
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.