You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В каждом контроллере, мы сейчас инициализируем Формы, сами засовываем данные из Запроса, и также потом это все обрабатываем, добавляем Фильтры, которые по id объекта получают Модели, и т.д.
В итоге в контроллере находится огромное количество кода, который уменьшает как качество кода, так и читаемость.
В Symfony была реализована автоподстановка Значений из БД (как MySql, так и Mongo), в виде Entity, но при этом перехватить сообщение, о том, что что-то не найдено - не очень хорошо.
Я предлагаю реализовать классы - Mapper'ы, которые могут проверить полученные данные, отфильтровать их, а только потом предоставить эти данные в контроллер.
Суть очень похожа на Формы в ZF2, то-есть все те же InputFilter'ы, с Фильтрацией и Валидацией, но при этом этот код должен работать до(!) Контроллера, и предоставлять интерфейс к данным запроса.
Данный подход реализован в большинстве фреймворков на Java, так как это позволяет инкапсулировать данные запроса.
Также при портировании приложения на HACK, в режиме sctrict, типизация запроса смогла бы помочь.
The text was updated successfully, but these errors were encountered:
Основная проблема реквест-маперов - сложность в понимании для большинства начинающих разработчиков. Данный функционал имеет смысл пилить только как альтернативный, но ни в коем случае как основной, иначе порог вхождения в фреймворк резко скакнёт вверх.
Хотя в целом идея мне симпатична.
В каждом контроллере, мы сейчас инициализируем Формы, сами засовываем данные из Запроса, и также потом это все обрабатываем, добавляем Фильтры, которые по id объекта получают Модели, и т.д.
В итоге в контроллере находится огромное количество кода, который уменьшает как качество кода, так и читаемость.
В Symfony была реализована автоподстановка Значений из БД (как MySql, так и Mongo), в виде Entity, но при этом перехватить сообщение, о том, что что-то не найдено - не очень хорошо.
Я предлагаю реализовать классы - Mapper'ы, которые могут проверить полученные данные, отфильтровать их, а только потом предоставить эти данные в контроллер.
Пример такого Mapper'а:
Суть очень похожа на Формы в ZF2, то-есть все те же InputFilter'ы, с Фильтрацией и Валидацией, но при этом этот код должен работать до(!) Контроллера, и предоставлять интерфейс к данным запроса.
Данный подход реализован в большинстве фреймворков на Java, так как это позволяет инкапсулировать данные запроса.
Также при портировании приложения на HACK, в режиме sctrict, типизация запроса смогла бы помочь.
The text was updated successfully, but these errors were encountered: