Diskuze: redis klient
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Třída Exception je zabudována přímo v 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
}
Dá se někde najít seznam zabudovaných tříd? Abych příště nekoukal jako tele..
Poslední dotaz.
Mám třídu
use Predis\Command\CommandInterface;
use Predis\Command\RawCommand;
use Predis\Command\ScriptCommand;
use Predis\Configuration\Options;
use Predis\Configuration\OptionsInterface;
use Predis\Connection\AggregateConnectionInterface;
use Predis\Connection\ConnectionInterface;
use Predis\Connection\ParametersInterface;
use Predis\Monitor\Consumer as MonitorConsumer;
use Predis\Pipeline\Pipeline;
use Predis\PubSub\Consumer as PubSubConsumer;
use Predis\Response\ErrorInterface as ErrorResponseInterface;
use Predis\Response\ResponseInterface;
use Predis\Response\ServerException;
use Predis\Transaction\MultiExec as MultiExecTransaction;
chybi usePredis\Profile\ProfileInterface
Definice tridy
class Client implements **ClientInterface**
{
atributy
metody
}
a v interface je
use Predis\Command\CommandInterface;
use Predis\Configuration\OptionsInterface;
use Predis\Connection\ConnectionInterface;
use Predis\Profile\ProfileInterface;
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\Command\CommandInterface;
use Predis\Configuration\OptionsInterface;
use Predis\Connection\ConnectionInterface;
use Predis\Profile\ProfileInterface;
Tím pádem třída Predis\Client musí mít všechny metody
Clientinterface
+
use Predis\Command\CommandInterface;
use Predis\Configuration\OptionsInterface;
use Predis\Connection\ConnectionInterface;
use Predis\Profile\ProfileInterface;
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.
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/interface/trait není vůbec v programu použit, pak je zbytečný mít jeho název v use.
Zobrazeno 6 zpráv z 6.