Buffer.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. namespace ZN\Buffering;
  3. class __USE_STATIC_ACCESS__Buffer implements BufferInterface
  4. {
  5. //----------------------------------------------------------------------------------------------------
  6. //
  7. // Yazar : Ozan UYKUN <ozanbote@windowslive.com> | <ozanbote@gmail.com>
  8. // Site : www.zntr.net
  9. // Lisans : The MIT License
  10. // Telif Hakkı: Copyright (c) 2012-2016, zntr.net
  11. //
  12. //----------------------------------------------------------------------------------------------------
  13. //----------------------------------------------------------------------------------------------------
  14. // Call Method
  15. //----------------------------------------------------------------------------------------------------
  16. //
  17. // __call()
  18. //
  19. //----------------------------------------------------------------------------------------------------
  20. use \CallUndefinedMethodTrait;
  21. //----------------------------------------------------------------------------------------------------
  22. // Error Control
  23. //----------------------------------------------------------------------------------------------------
  24. //
  25. // $error
  26. // $success
  27. //
  28. // error()
  29. // success()
  30. //
  31. //----------------------------------------------------------------------------------------------------
  32. use \ErrorControlTrait;
  33. //----------------------------------------------------------------------------------------------------
  34. // Take Methods Başlangıç
  35. //----------------------------------------------------------------------------------------------------
  36. //----------------------------------------------------------------------------------------------------
  37. // File
  38. //----------------------------------------------------------------------------------------------------
  39. //
  40. // @param string $file
  41. // @return content
  42. //
  43. //----------------------------------------------------------------------------------------------------
  44. public function file($file = '')
  45. {
  46. if( ! file_exists($file) )
  47. {
  48. return \Errors::set('Error', 'fileParameter', 'file');
  49. }
  50. ob_start();
  51. require($file);
  52. $contents = ob_get_contents();
  53. ob_end_clean();
  54. return $contents;
  55. }
  56. //----------------------------------------------------------------------------------------------------
  57. // Func
  58. //----------------------------------------------------------------------------------------------------
  59. //
  60. // @param string/callable $func
  61. // @param array $params
  62. // @return callable
  63. //
  64. //----------------------------------------------------------------------------------------------------
  65. public function func($func = '', $params = [])
  66. {
  67. if( ! is_callable($func) || ! is_array($params) )
  68. {
  69. \Errors::set('Error', 'callableParameter', 'func');
  70. \Errors::set('Error', 'arrayParameter', 'params');
  71. return false;
  72. }
  73. ob_start();
  74. if( ! empty($params) )
  75. {
  76. return call_user_func_array($func, $params);
  77. }
  78. else
  79. {
  80. return $func();
  81. }
  82. $contents = ob_get_contents();
  83. ob_end_clean();
  84. return $contents;
  85. }
  86. //----------------------------------------------------------------------------------------------------
  87. // Callback / Func
  88. //----------------------------------------------------------------------------------------------------
  89. //
  90. // func() yönteminin takma adıdır.
  91. //
  92. //----------------------------------------------------------------------------------------------------
  93. public function callback($func = '', $params = [])
  94. {
  95. return $this->func($func, $params);
  96. }
  97. //----------------------------------------------------------------------------------------------------
  98. // Take Methods Bitiş
  99. //----------------------------------------------------------------------------------------------------
  100. //----------------------------------------------------------------------------------------------------
  101. // Data Manipulation Methods Başlangıç
  102. //----------------------------------------------------------------------------------------------------
  103. //----------------------------------------------------------------------------------------------------
  104. // Insert
  105. //----------------------------------------------------------------------------------------------------
  106. //
  107. // @param string $name
  108. // @param callable/object/string $data
  109. // @param array $params
  110. // @return bool
  111. //
  112. //----------------------------------------------------------------------------------------------------
  113. public function insert($name = '', $data = '', $params = [])
  114. {
  115. if( ! is_scalar($name) || ! is_array($params) )
  116. {
  117. \Errors::set('Error', 'valueParameter', 'name');
  118. \Errors::set('Error', 'arrayParameter', 'params');
  119. return false;
  120. }
  121. $systemObData = md5('OB_DATAS_'.$name);
  122. if( is_callable($data) )
  123. {
  124. return \Session::insert($systemObData, $this->func($data, $params));
  125. }
  126. elseif( file_exists($data) )
  127. {
  128. return \Session::insert($systemObData, $this->file($data));
  129. }
  130. else
  131. {
  132. return \Session::insert($systemObData, $data);
  133. }
  134. }
  135. //----------------------------------------------------------------------------------------------------
  136. // Select
  137. //----------------------------------------------------------------------------------------------------
  138. //
  139. // @param string $name
  140. // @return callable/content
  141. //
  142. //----------------------------------------------------------------------------------------------------
  143. public function select($name = '')
  144. {
  145. if( ! is_scalar($name) )
  146. {
  147. return \Errors::set('Error', 'valueParameter', 'name');
  148. }
  149. return \Session::select(md5('OB_DATAS_'.$name));
  150. }
  151. //----------------------------------------------------------------------------------------------------
  152. // Delete
  153. //----------------------------------------------------------------------------------------------------
  154. //
  155. // @param string $name
  156. // @return bool
  157. //
  158. //----------------------------------------------------------------------------------------------------
  159. public function delete($name = '')
  160. {
  161. if( ! is_scalar($name) )
  162. {
  163. return \Errors::set('Error', 'valueParameter', 'name');
  164. }
  165. return \Session::delete(md5('OB_DATAS_'.$name));
  166. }
  167. //----------------------------------------------------------------------------------------------------
  168. // Data Manipulation Methods Bitiş
  169. //----------------------------------------------------------------------------------------------------
  170. }