1 <?php
2 /**
3 * File: ClientInterface.php
4 *
5 * @author Frank Mayer
6 * @copyright Copyright 2013-2015, FRANKMAYER.NET, Athens, Greece
7 */
8
9 namespace frankmayer\ArangoDbPhpCore;
10
11
12 /**
13 * Interface ClientInterface
14 *
15 * @package frankmayer\ArangoDbPhpCore
16 */
17 interface ClientInterface
18 {
19 /**
20 * @param ConnectorInterface $connector
21 *
22 * @param null $clientOptions
23 */
24 public function __construct(ConnectorInterface $connector, $clientOptions = null);
25
26
27 /**
28 * @param $request
29 *
30 * @return mixed
31 */
32 public function doRequest($request);
33
34
35 /**
36 * Binding method for the IOC Container
37 *
38 * @param $type
39 * @param $closure
40 */
41 public static function bind($type, \Closure $closure);
42
43
44 /**
45 * Make method for the IOC Container
46 *
47 * @param $type
48 *
49 * @throws ClientException
50 * @return mixed
51 */
52 public static function make($type);
53
54
55 /**
56 * @param null $plugins
57 *
58 * @return bool
59 */
60 public function setPluginsFromPluginArray($plugins = null);
61
62
63 /**
64 * @param $eventName
65 * @param array $eventData
66 */
67 public function notifyPlugins($eventName, $eventData = []);
68 }
69