DataProviderInterface.php 2.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace yii\data;

/**
11
 * DataProviderInterface is the interface that must be implemented by data provider classes.
12
 *
13 14
 * Data providers are components that sort and paginate data, and provide them to widgets
 * such as [[GridView]], [[ListView]].
15 16 17 18
 *
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
19
interface DataProviderInterface
20
{
Qiang Xue committed
21 22 23 24 25 26 27 28 29 30 31 32
	/**
	 * Prepares the data models and keys.
	 *
	 * This method will prepare the data models and keys that can be retrieved via
	 * [[getModels()]] and [[getKeys()]].
	 *
	 * This method will be implicitly called by [[getModels()]] and [[getKeys()]] if it has not been called before.
	 *
	 * @param boolean $forcePrepare whether to force data preparation even if it has been done before.
	 */
	public function prepare($forcePrepare = false);

33
	/**
34 35
	 * Returns the number of data models in the current page.
	 * This is equivalent to `count($provider->getModels())`.
Qiang Xue committed
36
	 * When [[pagination]] is false, this is the same as [[totalCount]].
37
	 * @return integer the number of data models in the current page.
38
	 */
Qiang Xue committed
39
	public function getCount();
40 41

	/**
42
	 * Returns the total number of data models.
Qiang Xue committed
43
	 * When [[pagination]] is false, this is the same as [[count]].
44
	 * @return integer total number of possible data models.
45
	 */
Qiang Xue committed
46
	public function getTotalCount();
47 48

	/**
49 50
	 * Returns the data models in the current page.
	 * @return array the list of data models in the current page.
51
	 */
52
	public function getModels();
53 54

	/**
55 56
	 * Returns the key values associated with the data models.
	 * @return array the list of key values corresponding to [[models]]. Each data model in [[models]]
57 58 59 60 61 62 63 64 65 66 67 68 69 70
	 * is uniquely identified by the corresponding key value in this array.
	 */
	public function getKeys();

	/**
	 * @return Sort the sorting object. If this is false, it means the sorting is disabled.
	 */
	public function getSort();

	/**
	 * @return Pagination the pagination object. If this is false, it means the pagination is disabled.
	 */
	public function getPagination();
}