Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.78 KB | None | 0 0
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: askanim
  5. * Date: 08.06.2016
  6. * Time: 12:30
  7. */
  8.  
  9. namespace System\Http\Controller;
  10.  
  11. use System\Http\View\Mod;
  12. use System\Http\Model\Model;
  13. use App\Models As Models;
  14. use System\Http\View\Views;
  15. class Controllers
  16. {
  17. protected $newObject;
  18. protected $newMethod;
  19. protected $prepareData = [];
  20. public function controller ($value, $parameters = Null) {
  21.  
  22. /*
  23. * Данный контроллер controller('string') осуществляет создание
  24. * Класса и вызов метода переданного с ним
  25. *
  26. *
  27. * */
  28.  
  29. $this->value($value);
  30.  
  31. $newObject = new $this->newObject();
  32. $newMethod = $this->newMethod;
  33.  
  34. if ($parameters != Null) {
  35. $newObject->$newMethod($parameters);
  36. }
  37. else {
  38. $newObject->$newMethod();
  39. }
  40.  
  41.  
  42.  
  43.  
  44. }
  45.  
  46. public function getData ($value, $parameters = Null) {
  47.  
  48. /*
  49. * Данный контроллер getData('string')
  50. * Вызывает Класс и возвращает массив данных из вашего метода
  51. *
  52. *
  53. * */
  54.  
  55. $this->value($value);
  56.  
  57. $newObject = new $this->newObject();
  58. $newMethod = $this->newMethod;
  59. if ($parameters != Null) {
  60. return $newObject->$newMethod($parameters);
  61. }
  62. else {
  63. return $newObject->$newMethod();
  64. }
  65.  
  66. }
  67. protected function prepareData ($value, $key, $parameters = Null) {
  68.  
  69. /*
  70. * Данный контроллер prepareData('string')
  71. * Подготовливает классы перед отправкой
  72. * Вызывает Класс и записывает массив данных из вашего метода
  73. *
  74. *
  75. * */
  76.  
  77. $this->value($value);
  78.  
  79. $newObject = new $this->newObject();
  80. $newMethod = $this->newMethod;
  81. if ($parameters != Null) {
  82. $this->prepareData[$key] = $newObject->$newMethod($parameters);
  83. }
  84. else {
  85. $this->prepareData[$key] = $newObject->$newMethod();
  86. }
  87. }
  88. protected function prepareArray ($key, $value = 'DEFAULT DATA ARRAY') {
  89. $this->prepareData[$key] = $value;
  90. }
  91. protected function executeData ($nameTemp, $template) {
  92.  
  93. /*
  94. * Данный Контроллер executeData
  95. * Отправляет подготовленные Данные Моделей, в шаблон
  96. *
  97. *
  98. * */
  99.  
  100. $view = New Views();
  101. $view->view($nameTemp.'.html', $this->prepareData, $template);
  102. }
  103. private function ModuleEnabled($valueArray, $template) {
  104. /*
  105. * Контроллер предназначен
  106. * Для отправки определённых моделей массивом
  107. * Для конфигурации модуля. на php
  108. * где $valueArray - Это массив передаваемых данных для view Модуля
  109. * где $tamplate - Это короткий путь к модулю
  110. *
  111. *
  112. *
  113. * */
  114.  
  115. ob_start();
  116. require ROOT.'/App/Views/Modules/'.$template.'.php';
  117. $getModuleContent = ob_get_contents();
  118. ob_end_clean();
  119. return $getModuleContent;
  120.  
  121.  
  122. }
  123. protected function dataModule ($key, $stringValue, $template) {
  124. /*
  125. * Контроллер предназнычен
  126. * Для подготовительной отправки переменной в твиг
  127. * из контроллера ModuleEnabled
  128. * где $key - Это имя переменной вызываемой в TWIG.
  129. * где $stringValue - Это путь к вашему классу и методу Class->Method
  130. *
  131. *
  132. * */
  133.  
  134. $valueArray = $this->getData($stringValue);
  135. $this->prepareData[$key] = $this->ModuleEnabled($valueArray, $template);
  136.  
  137. }
  138. protected function FrameEnabled($valueArray, $template) {
  139. /*
  140. * Контроллер предназнычен
  141. * Для конфигурирования отдельной страницы для выгрузки API данных. Которые можно забрать с сайта.
  142. *
  143. *
  144. *
  145. * */
  146.  
  147. $modules = new Mod();
  148.  
  149. foreach ($valueArray as $key => $value ) {
  150. $modules->Model($value, $key);
  151. }
  152.  
  153. $modules->Enable($template);
  154.  
  155. }
  156. protected function dataPage ($key, $link) {
  157. /*
  158. * Данный контроллер предназначен для получения конфигурируемого модуля на чистом php
  159. * И подготовки отправки его в виде переменной в шаблонизатор TWIG
  160. *
  161. * */
  162.  
  163. $this->prepareData[$key] = file_get_contents('http://sosed.ru/modules/'.$link);
  164.  
  165.  
  166.  
  167. }
  168. protected function dataView($value = [], $nameTemp ,$template) {
  169.  
  170. /*
  171. * Данный контроллер dataView('string', 'имя ' ,'template')
  172. * Отправляет не посредственно в шаблон полученный массив из
  173. * переданного метода в переданном классе
  174. *
  175. *
  176. *
  177. * */
  178. if (is_array($value) === FALSE)
  179. {
  180.  
  181. $this->value($value);
  182. $newObject = new $this->newObject();
  183. $newMethod = $this->newMethod;
  184. $arrParameters = $newObject->$newMethod();;
  185.  
  186. }
  187. else {
  188. $arrParameters = $value;
  189. }
  190. /*
  191. * ВНИМАНИЕ!!!!
  192. * Массив данных получаемый из вашей Модели Должен обязательно возвращать Массив в вашей модели.
  193. *
  194. * */
  195. $view = New Views();
  196. $view->view($nameTemp.'.html', $arrParameters, $template);
  197.  
  198. }
  199. protected function getUri () {
  200. /*
  201. * Функция для возврата массива
  202. * данных переданных по url
  203. *
  204. *
  205. * */
  206.  
  207. $url = $_SERVER['REQUEST_URI'];
  208. $url = explode('?', $url);
  209. $url = $url[1];
  210. $urlArray = explode('&&', $url);
  211. $uriArray = [];
  212. foreach ($urlArray As $uri ) {
  213. $newArray = explode('=', $uri);
  214. $uriArray[$newArray[0]] = $newArray[1];
  215. };
  216.  
  217. return $uriArray;
  218. }
  219. protected function getUrl () {
  220. /*
  221. * Функция для возврата
  222. * одног опереданного параметра в url
  223. *
  224. *
  225. * */
  226.  
  227. $url = $_SERVER['REQUEST_URI'];
  228. $url = explode('?', $url);
  229. $url = $url[1];
  230. $url = explode('=', $url);
  231. return $url;
  232. }
  233. private function value ($value) {
  234.  
  235. /*
  236. * Данная функция работает в пределах этого класса
  237. * Она записыват путь к новому классу,
  238. * и записывает название Метода.
  239. *
  240. *
  241. * */
  242.  
  243. $newArray = explode ('->', $value);
  244.  
  245. $newClass = 'App\\Models\\'.$newArray[0]; // Получаем полный путь к классу
  246.  
  247.  
  248. $this->newObject = $newClass;
  249.  
  250. $this->newMethod = $newArray[1];
  251.  
  252.  
  253.  
  254.  
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement