PageRenderTime 58ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/base/interfaces.php

https://bitbucket.org/stden/yiiru
PHP | 604 lines | 102 code | 29 blank | 473 comment | 0 complexity | 877f0891993b7320f2d831f367019d51 MD5 | raw file
  1. <?php
  2. /**
  3. * Файл содержит интерфейсы ядра для фреймворка Yii.
  4. *
  5. * @author Qiang Xue <qiang.xue@gmail.com>
  6. * @link http://www.yiiframework.com/
  7. * @copyright Copyright &copy; 2008-2011 Yii Software LLC
  8. * @license http://www.yiiframework.com/license/
  9. */
  10. /**
  11. * IApplicationComponent - это интерфейс, который должен быть реализован всеми компонентами приложения.
  12. *
  13. * После завершения конфигурации приложения вызывается метод {@link init()} каждого
  14. * загруженного компонента приложения.
  15. *
  16. * @author Qiang Xue <qiang.xue@gmail.com>
  17. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  18. * @package system.base
  19. * @since 1.0
  20. */
  21. interface IApplicationComponent
  22. {
  23. /**
  24. * Инициализирует компонент приложения.
  25. * Метод вызывается после завершения конфигурации приложения.
  26. */
  27. public function init();
  28. /**
  29. * @return boolean был ли выполнен метод {@link init()}
  30. */
  31. public function getIsInitialized();
  32. }
  33. /**
  34. * ICache - это интерфейс, который должен быть реализован компонентами кэша.
  35. *
  36. * Данный интерфейс должен реализовываться классами, поддерживающими функцию кэширования.
  37. *
  38. * @author Qiang Xue <qiang.xue@gmail.com>
  39. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  40. * @package system.caching
  41. * @since 1.0
  42. */
  43. interface ICache
  44. {
  45. /**
  46. * Получает значение из кэша по определенному ключу.
  47. * @param string $id ключ, идентифицирующий кэшированное значение
  48. * @return mixed сохранненое в кэше значение; false, если значения в кэше нет или у него истек срок годности
  49. */
  50. public function get($id);
  51. /**
  52. * Получает несколько значений из кэша по определенному ключу.
  53. * Некоторые кэш-хранилища (такие, как memcache, apc) позволяют получать за раз несколько значений,
  54. * что может улучшить производительность за счет уменьшения издержек соединения.
  55. * Если кэш-хранилище не поддерживает данную функцию, данный метод будет сымитирован.
  56. * @param array $ids список ключей, идентифицирующих значения кэша
  57. * @return array список кэшированных значений, соответствующих определенным ключам.
  58. * Возвращается массив пар (ключ, значение). Если значения нет в кэше или его срок
  59. * годности истек, соответствующее значение массива будет равно значению false
  60. */
  61. public function mget($ids);
  62. /**
  63. * Сохраняет значение, идентифицируемое по ключу, в кэше.
  64. * Если кэш уже содержит такой ключ, существующее значение и срок годности будут заменены на новые.
  65. *
  66. * @param string $id ключ, идентифицирующий кэшируемое значение
  67. * @param mixed $value кэшируемое значение
  68. * @param integer $expire количество секунд, через которое истечет срок годности кэшируемого значения. 0 означает бесконечный срок годности
  69. * @param ICacheDependency $dependency зависимость кэшируемого элемента. Если зависимость изменяется, элемент помечается как недействительный
  70. * @return boolean true, если значение успешно сохранено в кэше, иначе - false
  71. */
  72. public function set($id,$value,$expire=0,$dependency=null);
  73. /**
  74. * Сохраняет в кэш значение, идентифицируемое ключом, если кэш не содержит данный ключ.
  75. * Если такой ключ уже содержится в кэше, ничего не будет выполнено.
  76. * @param string $id ключ, идентифицирующий кэшируемое значение
  77. * @param mixed $value кэшируемое значение
  78. * @param integer $expire количество секунд, через которое истечет срок годности кэшируемого значения. 0 означает бесконечный срок годности
  79. * @param ICacheDependency $dependency зависимость кэшируемого элемента. Если зависимость изменяется, элемент помечается как недействительный
  80. * @return boolean true, если значение успешно сохранено в кэше, иначе - false
  81. */
  82. public function add($id,$value,$expire=0,$dependency=null);
  83. /**
  84. * Удаляет из кэша значение по определенному ключу.
  85. * @param string $id ключ удаляемого значения
  86. * @return boolean не было ли ошибок при удалении; true - успешное удаление
  87. */
  88. public function delete($id);
  89. /**
  90. * Удаляет все значения из кэша.
  91. * Будьте осторожны при выполнении данной операции, если кэш доступен в нескольких приложениях.
  92. * Классы-потомки могут реализовать этот метод для создания операции очистки.
  93. * @return boolean whether the flush operation was successful.
  94. */
  95. public function flush();
  96. }
  97. /**
  98. * ICacheDependency - это интерфейс, который должен быть реализован классами зависимостей кэша.
  99. *
  100. * Данный интерфейс должен реализовываться классами, используемыми в качестве зависимостей кэша.
  101. *
  102. * Объекты, реализующие данный интерфейс, должны быть сериализуемы и десереализумы.
  103. *
  104. * @author Qiang Xue <qiang.xue@gmail.com>
  105. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  106. * @package system.caching
  107. * @since 1.0
  108. */
  109. interface ICacheDependency
  110. {
  111. /**
  112. * Выполняет зависимость, генерируя и сохраняя данные, связанные с зависимостью.
  113. * Метод вызывается кэшем перед записью в него данных.
  114. */
  115. public function evaluateDependency();
  116. /**
  117. * @return boolean изменилась ли зависимость
  118. */
  119. public function getHasChanged();
  120. }
  121. /**
  122. * IStatePersister - это интерфейс, который должен быть реализован классами постоянного состояния.
  123. *
  124. * Данный интерфейс должен реализовываться всеми классами постоянного состояния (такими, как {@link CStatePersister})
  125. *
  126. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  127. * @package system.base
  128. * @since 1.0
  129. */
  130. interface IStatePersister
  131. {
  132. /**
  133. * Загружает данные состояния из постоянного хранилища.
  134. * @return mixed данные состояния
  135. */
  136. public function load();
  137. /**
  138. * Сохраняет состояние приложения в постоянное хранилище.
  139. * @param mixed $state данные состояния
  140. */
  141. public function save($state);
  142. }
  143. /**
  144. * IFilter - это интерфейс, который должен быть реализован фильтрами действий.
  145. *
  146. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  147. * @package system.base
  148. * @since 1.0
  149. */
  150. interface IFilter
  151. {
  152. /**
  153. * Выполняет фильтрацию.
  154. * Метод должен реализовываться для выполнения реальной фильтрации.
  155. * Если фильтр хочет, чтобы выполнение действия продолжалось, он должен вызвать метод
  156. * <code>$filterChain->run()</code>.
  157. * @param CFilterChain $filterChain цепочка фильтров, в которой находится фильтр
  158. */
  159. public function filter($filterChain);
  160. }
  161. /**
  162. * IAction - это интерфейс, который должен быть реализован действиями контроллера.
  163. *
  164. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  165. * @package system.base
  166. * @since 1.0
  167. */
  168. interface IAction
  169. {
  170. /**
  171. * @return string идентификатор действия
  172. */
  173. public function getId();
  174. /**
  175. * @return CController экземпляр контроллера
  176. */
  177. public function getController();
  178. }
  179. /**
  180. * Интерфейс IWebServiceProvider может быть реализован классами провайдеров веб-служб.
  181. *
  182. * Если реализован данный интерфейс, экземпляр провайдера сможет перехватывать
  183. * вызов удаленного метода (например, для целей журналирования или аутентификации).
  184. * @author Qiang Xue <qiang.xue@gmail.com>
  185. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  186. * @package system.base
  187. * @since 1.0
  188. */
  189. interface IWebServiceProvider
  190. {
  191. /**
  192. * Метод вызывается перед вызовом запрошенного удаленного метода.
  193. * @param CWebService $service запрашиваемый в данный момент веб-сервис
  194. * @return boolean должен ли выполнится удаленный метод
  195. */
  196. public function beforeWebMethod($service);
  197. /**
  198. * Метод вызывается после вызова запрошенного удаленного метода.
  199. * @param CWebService $service запрашиваемый в данный момент веб-сервис
  200. */
  201. public function afterWebMethod($service);
  202. }
  203. /**
  204. * Интерфейс IViewRenderer реализуется классом рендерера представления.
  205. *
  206. * Рендерер (генератор) представления - это компонент {@link CWebApplication::viewRenderer viewRenderer}
  207. * приложения, заменяющий логику рендера представлений по умолчанию, реализованную в
  208. * {@link CBaseController}.
  209. *
  210. * @author Qiang Xue <qiang.xue@gmail.com>
  211. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  212. * @package system.base
  213. * @since 1.0
  214. */
  215. interface IViewRenderer
  216. {
  217. /**
  218. * Рендерит файл представления.
  219. * @param CBaseController $context контроллер или виджет, рендерящий файл представления
  220. * @param string $file путь к файлу представления
  221. * @param mixed $data данные, передаваемые в представление
  222. * @param boolean $return должен ли возвращаться результат рендера
  223. * @return mixed результат рендера; null, если результат не требуется
  224. */
  225. public function renderFile($context,$file,$data,$return);
  226. }
  227. /**
  228. * Интерфейс IUserIdentity реализуется классом идентификации пользователя.
  229. *
  230. * Идентификация представляет способ аутентификации пользователя и получения
  231. * информации, требуемой для однозначного определения пользователя. Обычно используется
  232. * с {@link CWebApplication::user пользовательским компонентом приложения}.
  233. *
  234. * @author Qiang Xue <qiang.xue@gmail.com>
  235. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  236. * @package system.base
  237. * @since 1.0
  238. */
  239. interface IUserIdentity
  240. {
  241. /**
  242. * Аутентифицирует пользователя.
  243. * Информация, требуемая для аутентификации пользователя,
  244. * обычно получается в конструкторе.
  245. * @return boolean успешна ли аутентификации
  246. */
  247. public function authenticate();
  248. /**
  249. * Возвращает значение, показывающее, аутентифицирован ли пользователь.
  250. * @return boolean аутентифицирован ли пользователь
  251. */
  252. public function getIsAuthenticated();
  253. /**
  254. * Возвращает значение, однозначно определяющее пользователя.
  255. * @return mixed значение, однозначно определяющее пользователя (например, значение первичного ключа)
  256. */
  257. public function getId();
  258. /**
  259. * Возвращает отображаемое имя пользователя (например, имя пользователя).
  260. * @return string отображаемое имя пользователя
  261. */
  262. public function getName();
  263. /**
  264. * Возвращает дополнительную пользовательскую информацию, которая должна быть постоянной во время сессии пользователя.
  265. * @return array дополнительная пользовательская информация, которая должна быть постоянной во время сессии пользователя (кроме {@link id})
  266. */
  267. public function getPersistentStates();
  268. }
  269. /**
  270. * Интерфейс IWebUser реализуется {@link CWebApplication::user пользовательским компонентом приложения}.
  271. *
  272. * Пользовательский компонент приложения представляет информацию, идентифицирующую текущего пользователя.
  273. *
  274. * @author Qiang Xue <qiang.xue@gmail.com>
  275. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  276. * @package system.base
  277. * @since 1.0
  278. */
  279. interface IWebUser
  280. {
  281. /**
  282. * Возвращает значение, уникально определяющее пользователя.
  283. * @return mixed значение, уникально определяющее пользователя (например, значение первичного ключа)
  284. */
  285. public function getId();
  286. /**
  287. * Возвращает отображаемое имя пользователя (например, имя пользователя).
  288. * @return string отображаемое имя пользователя
  289. */
  290. public function getName();
  291. /**
  292. * Возвращает значение, показывающее, является ли пользователь гостем (не аутентифицирован).
  293. * @return boolean является ли пользователь гостем (не аутентифицирован)
  294. */
  295. public function getIsGuest();
  296. /**
  297. * Выполняет проверку доступа для данного пользователя.
  298. * @param string $operation имя проверяемой операции
  299. * @param array $params пары имя-значение, которые будут переданы в бизнес-правила, ассоциированные
  300. * с задачами и ролями, заданными для пользователя
  301. * @return boolean может ли данный пользователь выполнять операции
  302. */
  303. public function checkAccess($operation,$params=array());
  304. }
  305. /**
  306. * Интерфейс IAuthManager реализуется компонентом приложения менеджера аутентификации.
  307. *
  308. * В основном менеджер аутентификации отвечает за обеспечение контроля доступа, основанного на ролях (RBAC).
  309. *
  310. * @author Qiang Xue <qiang.xue@gmail.com>
  311. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  312. * @package system.base
  313. * @since 1.0
  314. */
  315. interface IAuthManager
  316. {
  317. /**
  318. * Выполняет проверку возможности доступа для определенного пользователя.
  319. * @param string $itemName имя проверяемой на доступ операции
  320. * @param mixed $userId идентификатор пользователя. Должен быть либо целым числом либо строкой,
  321. * представляющей уникальный идентификатор пользователя. См. {@link IWebUser::getId}.
  322. * @param array $params пары имя-значение, которые будут переданы в бизнес-правила, ассоциированные
  323. * с задачами и ролями, заданными для пользователя
  324. * @return boolean может ли данный пользователь выполнять операции
  325. */
  326. public function checkAccess($itemName,$userId,$params=array());
  327. /**
  328. * Создает элемент авторизации.
  329. * Элемент авторизации представляет разрешительные действия (например, создание записи).
  330. * Он имеет три типа: операция (operation), задача (task) и роль (role).
  331. * Элементы авторизации образуют иерархию. Более высокие уровни элементов наследуют разрешения от
  332. * более низких уровней.
  333. * @param string $name имя элемента. Должен быть уникальным идентификатором
  334. * @param integer $type тип элемента (0: операция, 1: задача, 2: роль).
  335. * @param string $description описание элемента
  336. * @param string $bizRule бизнес-правило, ассоциированное с элементом. Это блок
  337. * PHP-кода, выполняемого при вызове метода {@link checkAccess} для элемента
  338. * @param mixed $data дополнительные данные, ассоциированные с элементом
  339. * @return CAuthItem элемент авторизации
  340. * @throws CException вызывается, если элемент с таким именем уже существует
  341. */
  342. public function createAuthItem($name,$type,$description='',$bizRule=null,$data=null);
  343. /**
  344. * Удаляет определенный элемент авторизации.
  345. * @param string $name имя удаляемого элемента
  346. * @return boolean находился ли элемент в хранилище и был ли удален
  347. */
  348. public function removeAuthItem($name);
  349. /**
  350. * Возвращает элементы авторизации по определенным типу и пользователю.
  351. * @param integer $type тип элемента (0: оперция, 1: задача, 2: роль). По умолчанию - null,
  352. * т.е. возвращаются все элементы независимо от их типа
  353. * @param mixed $userId идентификатор пользователя. По умолчанию - null, т.е. возвращаются все элементы,
  354. * даже если они не заданы для пользователя
  355. * @return array элементы авторизации определенного типа
  356. */
  357. public function getAuthItems($type=null,$userId=null);
  358. /**
  359. * Возвращает элементы авторизации по определенному имени.
  360. * @param string $name имя элемента
  361. * @return CAuthItem элемент авторизации. Null, если элемент не может быть найден
  362. */
  363. public function getAuthItem($name);
  364. /**
  365. * Сохраняет элемент авторизации в постоянное хранилище.
  366. * @param CAuthItem $item сохраняемый элемент
  367. * @param string $oldName старое имя элемента. Если null, то имя элемента не меняется
  368. */
  369. public function saveAuthItem($item,$oldName=null);
  370. /**
  371. * Добавляет к элементу дочерний элемент.
  372. * @param string $itemName имя родительского элемента
  373. * @param string $childName имя дочернего элемента
  374. * @throws CException вызывается, если родитель или дочерний элемент не существует или замечен цикл в иерархии
  375. */
  376. public function addItemChild($itemName,$childName);
  377. /**
  378. * Удаляет дочерний элемент от его родителя.
  379. * Примечание: сам дочерний элемент не удаляется, удаляется только связь родитель-потомок.
  380. * @param string $itemName имя родительского элемента
  381. * @param string $childName имя элемента-потомка
  382. * @return boolean успешно ли удаление
  383. */
  384. public function removeItemChild($itemName,$childName);
  385. /**
  386. * Возвращает значение, показывающее, существует ли дочерний элемент для данного родителя.
  387. * @param string $itemName имя родительского элемента
  388. * @param string $childName имя элемента-потомка
  389. * @return boolean существует ли дочерний элемент
  390. */
  391. public function hasItemChild($itemName,$childName);
  392. /**
  393. * Возвращает дочерние элементы определенного элемента.
  394. * @param mixed $itemName имя родительского элемента. Может быть строкой или массивом.
  395. * Массив представляет список имен элементов
  396. * @return array все дочерние элементы определенного элемента
  397. */
  398. public function getItemChildren($itemName);
  399. /**
  400. * Присваивает элемент авторизации пользователю.
  401. * @param string $itemName имя элемента
  402. * @param mixed $userId идентификатор пользователя (см. {@link IWebUser::getId})
  403. * @param string $bizRule бизнес-правило, выполняемое при вызове метода {@link checkAccess}
  404. * для данного конкретного элемента авторизации
  405. * @param mixed $data дополнительные данные, ассоциированные с данным присваиванием
  406. * @return CAuthAssignment информация присваивания авторизации
  407. * @throws CException вызывается, если элемент не существует или уже присвоен пользователю
  408. */
  409. public function assign($itemName,$userId,$bizRule=null,$data=null);
  410. /**
  411. * Удаляет элемент авторизации от пользователя.
  412. * @param string $itemName имя элемента
  413. * @param mixed $userId идентификатор пользователя (см. {@link IWebUser::getId})
  414. * @return boolean успешно ли удаление
  415. */
  416. public function revoke($itemName,$userId);
  417. /**
  418. * Возвращает значение, показывающее, присвоен ли элемент пользователю.
  419. * @param string $itemName имя элемента
  420. * @param mixed $userId идентификатор пользователя (см. {@link IWebUser::getId})
  421. * @return boolean присвоен ли элемент авторизации пользователю
  422. */
  423. public function isAssigned($itemName,$userId);
  424. /**
  425. * Возвращает информацию элемента привязки (item assignment).
  426. * @param string $itemName имя элемента
  427. * @param mixed $userId идентификатор пользователя (см. {@link IWebUser::getId})
  428. * @return CAuthAssignment информация элемента привязки (item assignment).
  429. * Если элемент не присвоен пользователю, то возвращается значение null
  430. */
  431. public function getAuthAssignment($itemName,$userId);
  432. /**
  433. * Возвращает элементы привязки определенного пользователя.
  434. * @param mixed $userId идентификатор пользователя (см. {@link IWebUser::getId})
  435. * @return array элементы привязки (item assignment) пользователя. Если элементов,
  436. * присвоенных пользователю, нет, возвращается пустой массив
  437. */
  438. public function getAuthAssignments($userId);
  439. /**
  440. * Сохраняет изменения элемента привязки.
  441. * @param CAuthAssignment $assignment изменяемый элемент привязки
  442. */
  443. public function saveAuthAssignment($assignment);
  444. /**
  445. * Удаляет все данные авторизации.
  446. */
  447. public function clearAll();
  448. /**
  449. * Удаляет все элементы привязки.
  450. */
  451. public function clearAuthAssignments();
  452. /**
  453. * Сохраняет данные авторизации в постоянное хранилище.
  454. * Если внесены изменения в данные авторизации, убедитесь, что данный метод вызван
  455. * для сохранения измененных данных в постоянное хранилище.
  456. */
  457. public function save();
  458. /**
  459. * Выполняет бизнес-правило.
  460. * Бизнес-правило - это кусок PHP кода, выполняемый при вызове метода {@link checkAccess}.
  461. * @param string $bizRule выполняемое бизнес-правило
  462. * @param array $params дополнительные параметры, передаваемые в бизнес-правило при выполнении
  463. * @param mixed $data дополнительные данные, ассоциированные с соответствующими элементом авторизации или привязкой
  464. * @return boolean возвращает ли результат выполнения бизнес-правила значение true.
  465. * Если бизнес-правило пусто, также возвращается значение true
  466. */
  467. public function executeBizRule($bizRule,$params,$data);
  468. }
  469. /**
  470. * Интерфейс IBehavior реализуется всеми классами поведения.
  471. *
  472. * Поведение - это способ расширить компонент дополнительными методами, определенными в классе поведения
  473. * и не доступными в классе компонента.
  474. *
  475. * @author Qiang Xue <qiang.xue@gmail.com>
  476. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  477. * @package system.base
  478. */
  479. interface IBehavior
  480. {
  481. /**
  482. * Присоединяет объект поведения к компоненту.
  483. * @param CComponent $component компонент, к которому присоединяется поведение
  484. */
  485. public function attach($component);
  486. /**
  487. * Отсоединяет объект поведения от компонента.
  488. * @param CComponent $component компонент, от которого отсоединяется поведение
  489. */
  490. public function detach($component);
  491. /**
  492. * @return boolean включено ли данное поведение
  493. */
  494. public function getEnabled();
  495. /**
  496. * @param boolean $value включено ли данное поведение
  497. */
  498. public function setEnabled($value);
  499. }
  500. /**
  501. * Интерфейс IWidgetFactory должен быть реализован классом фабрики виджетов.
  502. *
  503. * Если фабрика виджетов доступна, то она будет использована для создания запрашиваемого
  504. * виджета вызовом метода {@link CBaseController::createWidget}.
  505. *
  506. * @author Qiang Xue <qiang.xue@gmail.com>
  507. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  508. * @package system.web
  509. * @since 1.1
  510. */
  511. interface IWidgetFactory
  512. {
  513. /**
  514. * Создает новый виджет с переданным именем и начальными параметрами.
  515. * @param CBaseController $owner контроллер-владелец нового виджета
  516. * @param string $className имя класса виджета. Может быть псевдонимом пути (например, system.web.widgets.COutputCache)
  517. * @param array $properties начальные значения параметров виджета (имя=>значение)
  518. * @return CWidget созданный виджет с параметрами, проинициализированными начальными значениями
  519. */
  520. public function createWidget($owner,$className,$properties=array());
  521. }
  522. /**
  523. * Интерфейс IDataProvider должен быть реализован классами провайдеров данных.
  524. *
  525. * Провайдеры данных - компоненты, которые могут передавать данные виджетам, таким как таблица (data grid), список(data list).
  526. * Кроме передаваемых данных, провайдеры поддерживают пагинацию и сортировку.
  527. *
  528. * @author Qiang Xue <qiang.xue@gmail.com>
  529. * @version $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
  530. * @package system.web
  531. * @since 1.1
  532. */
  533. interface IDataProvider
  534. {
  535. /**
  536. * @return string уникальный идентификатор, отличающий данный провайдер данных от других провайдеров данных
  537. */
  538. public function getId();
  539. /**
  540. * Возвращает количество элементов данных на текущей странице.
  541. * Эквивалентно <code>count($provider->getData())</code>.
  542. * Если параметр {@link pagination} установлен в значение false, возвращается значение, равное {@link totalItemCount}.
  543. * @param boolean $refresh должно ли быть пересчитано количество элементов данных
  544. * @return integer количество элементов данных на текущей странице
  545. */
  546. public function getItemCount($refresh=false);
  547. /**
  548. * Возвращает общее количество элементов.
  549. * Если параметр {@link pagination} установлен в значение false, возвращается значение, равное {@link itemCount}.
  550. * @param boolean $refresh должно ли быть пересчитано общее количество элементов данных
  551. * @return integer обще количество элементов данных
  552. */
  553. public function getTotalItemCount($refresh=false);
  554. /**
  555. * Возвращает доступные в данный момент элементы данных.
  556. * @param boolean $refresh должны ли быть данные перезагружены из постоянного хранилища
  557. * @return array список доступных в данный момент в данном провайдере данных элементов данных
  558. */
  559. public function getData($refresh=false);
  560. /**
  561. * Возвращает значения ключей, ассоциированных с элементами данных.
  562. * @param boolean $refresh должны ли ключи быть пересчитаны
  563. * @return array список значений ключей, соответствующих {@link data}. Каждый элемент данных в свойстве {@link data}
  564. * уникально идентифицируем соответствующим значением ключа в массиве
  565. */
  566. public function getKeys($refresh=false);
  567. /**
  568. * @return CSort the объект сортировки. Если возвращается значение false, то сортировка отключена
  569. */
  570. public function getSort();
  571. /**
  572. * @return CPagination объект пагинации. Если возвращается значение false, то пагинация отключена
  573. */
  574. public function getPagination();
  575. }