TableInterface.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace Ipol\DPD\DB;
  3. /**
  4. * Интерфейс работы с таблицой БД
  5. */
  6. interface TableInterface
  7. {
  8. /**
  9. * Возвращает соединение ассоциированное с таблицей
  10. *
  11. * @return \Ipol\DPD\DB\ConnectionInterface
  12. */
  13. public function getConnection();
  14. /**
  15. * Возвращает инстанс PDO
  16. *
  17. * @return \PDO
  18. */
  19. public function getPDO();
  20. /**
  21. * Возвращает имя таблицы
  22. *
  23. * @return string
  24. */
  25. public function getTableName();
  26. /**
  27. * Возвращает имя класса модели
  28. *
  29. * @return string
  30. */
  31. public function getModelClass();
  32. /**
  33. * Возвращает набор полей таблицы
  34. * [
  35. * fieldName => defaultValue
  36. * ]
  37. *
  38. * @return array
  39. */
  40. public function getFields();
  41. /**
  42. * Добавление записи
  43. *
  44. * @param array $values
  45. *
  46. * @return bool
  47. */
  48. public function add($values);
  49. /**
  50. * Обновление записи
  51. *
  52. * @param int $id
  53. * @param array $values
  54. *
  55. * @return bool
  56. */
  57. public function update($id, $values);
  58. /**
  59. * Удаление записи
  60. *
  61. * @param int $id
  62. *
  63. * @return bool
  64. */
  65. public function delete($id);
  66. /**
  67. * Выборка записей
  68. *
  69. * $parms = "id = 1" or
  70. * $parms = [
  71. * 'select' => '*',
  72. * 'where' => 'id = :id',
  73. * 'order' => 'id asc',
  74. * 'limit' => '0,1',
  75. * 'bind' => [':id' => 1]
  76. * ]
  77. *
  78. * @param string|array $parms
  79. *
  80. * @return \PDOStatement
  81. */
  82. public function find($parms = []);
  83. /**
  84. * Выборка одной записи, псевдномим над find([limit => 0,1])
  85. *
  86. * @param int|string|array $parms
  87. *
  88. * @return array
  89. */
  90. public function findFirst($parms = []);
  91. /**
  92. * Проверка и создание таблицы по необходимости
  93. *
  94. * @return void
  95. */
  96. public function checkTableSchema();
  97. }