1 <?php
2
3 /**
4 * This file is part of the Grido (https://github.com/o5/grido)
5 *
6 * Copyright (c) 2011 Petr Bugyík (http://petr.bugyik.cz)
7 *
8 * For the full copyright and license information, please view
9 * the file LICENSE.md that was distributed with this source code.
10 */
11
12 namespace Grido\DataSources;
13
14 /**
15 * The interface defines methods that must be implemented by each data source.
16 *
17 * @package Grido
18 * @subpackage DataSources
19 * @author Petr Bugyík
20 */
21 interface IDataSource
22 {
23 /**
24 * @return int
25 */
26 public function getCount();
27
28 /**
29 * @return array
30 */
31 public function getData();
32
33 /**
34 * @param array $condition
35 * @return void
36 */
37 public function filter(array $condition);
38
39 /**
40 * @param int $offset
41 * @param int $limit
42 * @return void
43 */
44 public function limit($offset, $limit);
45
46 /**
47 * @param array $sorting
48 * @return void
49 */
50 public function sort(array $sorting);
51
52 /**
53 * @param mixed $column
54 * @param array $conditions
55 * @param int $limit
56 * @return array
57 */
58 public function suggest($column, array $conditions, $limit);
59 }
60