Loading...
Вилы Выкидные (24.04.2021 в 12:01) а теперь учись, как правильно
php
   call_user_func_array($routes['/'](), $_REQUEST);   
.67.
Правильно в твоей извращенной логике. В роутах никто не хранит объекты контроллеров
Dark_AKC (24.04.2021 в 12:02)
Правильно в твоей извращенной логике. В роутах никто не хранит объекты контроллеров


да ты ещё большее дно, чем оказалось, в роуте хранится коллбэк функция, никакого объекта там нет пока она не будет вызвана .67.

говорит мне иди ООП почитай ну-ну *arbuz*
Что если условный заказчик или тимлид попросит тебя перенести роуты в формат json? Что ты будешь делать? :-)
Dark_AKC (24.04.2021 в 12:08)
Что если условный заказчик или тимлид попросит тебя перенести роуты в формат json? Что ты будешь делать? :-)


буду вспоминать, как ты написал, что в коллбэке роута висит готовый объект :-D
Но ведь объект можно создать в момент совпадения роута. А до тех пор хранить строковое представление контроллера php
php
   $routes = ['/' => ['controller' => IndexController::class, 'action' => 'indexAction']];   
json
json
   {   "/": {     "controller": "IndexController",     "action": "indexAction"   } }   
Вызов
php
   list($cont, $act) = $routes['/']; if (class_exists($cont) && method_exists($cont, $act)) {   $App = new $cont;   $App -> $act(...$_REQUEST); }   

________
посл. ред. 24.04.2021 в 12:22; всего 3 раз(а); by Dark_AKC
Dark_AKC (24.04.2021 в 12:19) Но ведь объект можно создать в момент совпадения роута. А до тех пор хранить строковое представление контроллера php
php
   $routes = ['/' => ['controller' => IndexController::class, 'action' => 'indexAction']];   
json
json
   {   "/": {     "controller": "IndexController",     "action": "indexAction"   } }   
Вызов
php
   list($cont, $act) = $routes['/']; if (class_exists($cont) && method_exists($act)) {   $App = new $cont;   $App -> $act(...$_REQUEST); }   
это ты потом будешь рассказывать нанимателю, когда он уволит тебя с работы, узнав, что доплачивал за лишние строки кода :-D и вот это - list($cont, $act) = $routes['/']; начиная с версии 7.4.3 будет работать и без list - [$cont, $act] = $routes['/']; и вот так - if (class_exists($cont) && method_exists($act)) уже никто не делает, потому что если в конструкторе класса есть проверка с отлупом или редиректом, то зачем тогда проверять наличие метода, нужно создать объект, если отработает отлуп то и проверка метода не нужна, а если нет отлупа, то ПОСЛЕ создания объекта нужно проверять существование метода вызывать его, но так тоже уже не делают, потому что есть is_callable() которая проверит, можно ли запустить метод объекта :-D Ну как, почитал я ООП? :-D
Вилы Выкидные , а ты кем работаешь?
649469590 (24.04.2021 в 12:34)
Вилы Выкидные , а ты кем работаешь?


дедом *034*
Критики с дивана мамины) Какая Вам разница? Вам скинули на халяву в ЗЦ, если такие умные так не пользуйтесь)
1. Наниматель платит за выполнение задачи, а не количество написанных строк
2. (list) Я уже пару лет как не пишу на php. Неудивительно, что я забыл про эту фичу
3. Сначала ты говоришь, что method_exists не нужен, потом оказывается нужен. Дальше ты вообще проверяешь возможность вызова метода с помощью is_callable

Что тут вообще происходит мать твою?!
Онлайн: 3
Время:
Gen. 0.1281
(c) Bym.Guru 2010-2026