Loading...
Вилы Выкидные (24.04.2021 в 12:01)
а теперь учись, как правильно
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

$routes = ['/' => ['controller' => IndexController::class, 'action' => 'indexAction']];


json

{
"/": {
"controller": "IndexController",
"action": "indexAction"
}
}


Вызов

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

$routes = ['/' => ['controller' => IndexController::class, 'action' => 'indexAction']];


json

{
"/": {
"controller": "IndexController",
"action": "indexAction"
}
}


Вызов

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

Что тут вообще происходит мать твою?!
Онлайн: 0
Время:
Gen. 0.1254
(c) ByMAS.RU 2010-2025