Цитата |
все данные собираються в роутере (у меня), и передаються как отдельный массив дальше. А не юзаем, чтоб не было потом искажения данных |
Цитата |
будет юзать суперглобальные переменные (изменять их). |
Цитата (Zzepish @ 22.04.2016 - 20:53) |
который будет писать модуль, будет юзать суперглобальные переменные (изменять их). |
Цитата (Arh @ 22.04.2016 - 22:58) |
Ты на правильном пути, только тут фишка не в защите супер глобальных массивов, а в их инъекциях. |
Цитата (Zzepish @ 22.04.2016 - 15:20) |
$router = new MainRouter($_POST, $_GET, $_SESSION, $_COOKIE, $_SERVER, $_FILES); |
Цитата |
От дураков все-равно не защитишься. Ты сейчас обезопасишь суперглобальные, а он придумает нечто такое, которое нормальным людям даже в бреду не придет. И всё испортит. Так что забей. Отдал код - отдал ответственность за него. Или недопускай чудаков или пусть делают что хотят тогда. |
Цитата |
Вообще считаю что у каждой формы или правильнее сказать каждого запроса, должен быть свой объект данных. Его заполнять при непустых параметрах и натравливать валидатор. Таким образом к моменту запуска контроллера оъект с данными будет обладать не только полученной информацией, но и знать валиден он или нет. Ну или тоже самое, но заполнять упомянутый объект из контроллера с помощью утилитного класса, передав ему ссылку. Он заполнит и отвалидирует. Получим "транспортный" объект с данными, вместо массива. В нем можно производить дополнительную обработку через геттеры и сеттеры. Может натравливать сам на себя валидатор и определять свое состояние в любой момент времени. Удобно пускать такую штуку в путешествие через бизнес-логику. |
Цитата |
Инъкции? Хм. Интересный термин для суперглобальных. надо погуглить |
$old = $_GET['key'];
$_GET['key'] = 'нужное значение';
$Obj = new Controller();
$Obj->result();
$_GET['key'] = $old;
//vs
$Obj = new Controller([
'key' => 'нужное значение'
]);
$Obj->result();
$request = new Request($_POST, $_GET);
$controller = new Controller($request);
$request = new Request($_POST, ['key' => 'нужное значение']);
$controller = new Controller($request->get);
$_GET['key'] = 'нужное значение';
$Obj = new Controller();
$Obj = new Controller(['key' => 'нужное значение']);
Цитата |
И да, с юмором у тебя всё плохо :lol: |
Цитата (Arh @ 23.04.2016 - 12:00) |
просто передача объекта в конструктор. |
Цитата (Arh @ 23.04.2016 - 12:00) |
У тебя такая репутация тут, что сложно воспринимать с позитивом. |
Цитата |
Нет, этот будет именно внедрение зависимости через конструктор, путем передачи объекта в конструктор. Внедрение зависимостей это именно объектная фишка, так как объект может быть программным компонентом, который инкапсулирует в себе логику и представляет интерфейс для работы с ней. Массив это просто массив, это просто данные. |
$Comment = new Comment($_REGUEST['uri']);
Цитата |
Какая у меня репутация? |
Цитата (Arh @ 23.04.2016 - 13:30) |
Эгоцентричная |
Цитата (chee @ 23.04.2016 - 11:15) |
$request = new Request($_POST, $_GET); $controller = new Controller($request); |