You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LuBusiness.php 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace Luticate\Utils;
  3. class LuBusiness {
  4. /**
  5. * @var LuDataAccess
  6. */
  7. protected $dataAccess = null;
  8. /**
  9. * @param string $name
  10. * @param mixed $default
  11. * @return mixed
  12. */
  13. public static function getParam($name, $default = null)
  14. {
  15. return array_key_exists($name, LuController::$parameters) ? LuController::$parameters[$name] : $default;
  16. }
  17. /**
  18. * @param string $name
  19. * @param mixed $value
  20. */
  21. public static function setParam($name, $value)
  22. {
  23. LuController::$parameters[$name] = $value;
  24. }
  25. /**
  26. * @param string[] $params
  27. * @return bool
  28. */
  29. public static function hasParam(array $params)
  30. {
  31. foreach ($params as $p)
  32. {
  33. if (!array_key_exists($p, LuController::$parameters))
  34. return false;
  35. }
  36. return true;
  37. }
  38. /**
  39. * @param string $param
  40. * @param mixed $validate
  41. * @return string
  42. */
  43. public static function checkParam($param, $validate = null)
  44. {
  45. $value = self::getParam($param);
  46. if (is_null($value) || trim($value) == '')
  47. abort(400, 'Missing parameter: ' . $param);
  48. if ($validate != null) {
  49. if (is_callable($validate)) {
  50. $validate = $validate($value);
  51. }
  52. else {
  53. $validate = preg_match($validate, $value);
  54. }
  55. if (!$validate)
  56. abort(400, 'Bad parameter value: ' . $param);
  57. }
  58. return $value;
  59. }
  60. /**
  61. * @param string
  62. */
  63. public static function unauthorized($reason = 'Unauthorized')
  64. {
  65. abort(401, $reason);
  66. }
  67. /**
  68. * @param string
  69. */
  70. public static function notFound($reason = 'Resource not found')
  71. {
  72. abort(404, $reason);
  73. }
  74. /**
  75. * @param $param string
  76. * @param $values string[]
  77. * @return string
  78. */
  79. public static function getParamInArray($param, $values)
  80. {
  81. $value = self::getParam($param);
  82. if (is_null($value) || !in_array($value, $values))
  83. $value = $values[0];
  84. return $value;
  85. }
  86. /**
  87. * @param $param string
  88. * @param $default int
  89. * @return int
  90. */
  91. public static function getParamInt($param, $default = 0)
  92. {
  93. $value = self::getParam($param);
  94. if (!is_null($value) && is_numeric($value))
  95. return (int)$value;
  96. return $default;
  97. }
  98. public static function __callStatic($name, $arguments)
  99. {
  100. $class = get_called_class();
  101. $me = new $class();
  102. return call_user_func_array(array($me, $name), $arguments);
  103. }
  104. /**
  105. * @param $page int
  106. * @param $perPage int
  107. * @param $column string
  108. * @param $order string
  109. * @param $query string
  110. * @return LuDbo[]
  111. */
  112. public function search($page, $perPage, $column, $order, $query = null)
  113. {
  114. return $this->dataAccess->search($page, $perPage, $column, $order, $query);
  115. }
  116. /**
  117. * @param $id int
  118. * @return LuDbo|null
  119. */
  120. public function getById($id)
  121. {
  122. $data = $this->dataAccess->getById($id);
  123. if (is_null($data))
  124. $this->notFound();
  125. return $data;
  126. }
  127. /**
  128. * @param $id int
  129. */
  130. public function deleteById($id)
  131. {
  132. $this->dataAccess->deleteById($id);
  133. }
  134. }