Aleksandr
kraujodonoryste.lt
Nikolay
я проклял тот день пока выливал один проект на хостинг)
Поэтому и поинтересовался заранее. Кстати, отклик нормальный у сайта получается?
Aleksandr
да
Nikolay
Кстати, если ajax юзать хочу, то мне стоит какой-то бандл подключить или отдавать ответ обычным return new Response() это нормальная практика?
Sergey
я проклял тот день пока выливал один проект на хостинг)
я помню как один из клиентов поднял у себя дидекейтед сервер и сказал деплоить все по ftp
Nikolay
Ничем, но просто искал примеры и увидел, что пожключают restful
Sergey
мы ставили наночь деплоймент и уходили домой потому что эти тысячи файлов лились часами
Sergey
не забивай себе голову словами которые ты пока не понимаешь
Sergey
воспринимай сейчас весь этот булшит как "фази вордс", слова которыми можно хвастаться.
Nikolay
не забивай себе голову словами которые ты пока не понимаешь
То есть принимать реквест контроллером и отдавать респонсом - нормальный ход?
Sergey
приведу пример. 4 из 5 людей которые будут филосовствовать на тему "это restful а это нет" на самом деле даже понятия не имеют что они обсуждают
Sergey
То есть принимать реквест контроллером и отдавать респонсом - нормальный ход?
не "отдавать респонсом" а "формировать респонс"
Sergey
да
Nikolay
Спасибо:)
Sergey
1 из 5 понимает? что-то слишком много :)
ну может у меня выборка не репрезентативна)
Sergey
у меня ж специализация - апишочки
Sergey
и на собесах всегда по ним прохожусь
Модератор
Alexey проголосовал Нет
Alexey
у меня ж специализация - апишочки
А нет хорошего примера апишечки?
Sergey
Эм, только учусь) Как в форме используя FormBuilderInterface поменять названия полей, точнее показать в шаблоне в читаемом формате?
Sergey
у линкедин неплохая апишка была помниться
Sergey
но в целом "хорошая" это та, которая удобная
Sergey
Alexey
гитхабы, фэйсбучики
Просто хотел пример, который именно по твоему мнению хорош) Ну будем искать
Sergey
ну то есть все зависит от кучи переменных
Sergey
пример - загоны по гипермедиа (линки на действия в ресурсах)
Sergey
это реально круто когда тебе надо со стороны сервера декларировать например переходы в приложении
Sergey
когда у тебя еще нет четкого флоу работы клиента и ты хочешь его корректировать сервером
Sergey
с другой стороны если ты понятия не имеешь как будет использоваться апишка (например это просто очередная апка) то лучше дать максимальную свободу (graphql например)
Sergey
и вот дальше все начинает просто балансировать между этими вещами
Bogdan
/help@AngryModerBot
Модератор
Я бот-модератор для чатов, помогу тебе следить за ними пока тебя нет Что я могу? • Приветствовать новых участников чата • Предупреждать и банить пользователей за мат в чате • Вести статистику по сообщениям, по забаненным участникам чата • Устраивать голосование за бан Что бы я мог банить в чатах - мне нужно выдать права администратора (Делается как и с людьми, но по нику) Присоединяйся к веселому общению в International Chat! Нажми и начинай общаться! @InterChat
Sergey
мм, как на шаред хостинг перекинуть проект? что-то дополнительно надо прописать?
Alexey
Странный вопрос.
Sergey
сейчас 504 ошибка, Gateway Timeout
Alexey
Логи?
Sergey
походу sql
Nikolay
Парни, это ненормально ведь держать в контроллере функцию, которая достает последний добавленный сайт в базу (Имеется сущность Site)? Подозреваю, что в файл Repository/SiteRepository.php ? Направьте меня, пожалуйста
Nikolay
метод*
Sergey
а для чего используется?
Sergey
просто для UI?
Sergey
короч простое правило - все методы репозитория должны либо ничего не возвращать (add, remove например) либо возвращать не null и не массив)
Sergey
в целом это только те штуки которые используются в бизнес логике
Sergey
"поиск" что бы отобращить список чего-нибудь - это UI логика
Nikolay
У меня контроллер для генерации сайдбара, в который достаются из разных таблиц данные. В контроллере реализована пара методов типа getLastSite(), которые достают нужную инфу из БД
Sergey
ну вынеси в отдельные сервисы
Sergey
но не в репозиторий
Sergey
и покури про Single Reponsibility
Nikolay
Спасибо👌
Sergey
оно может и занудство но если проект разрастается и ты хочешь контролировать что происходит - полезно соблюдать все SOLID принципы
Sergey
(и нарушать их там где лень уже)
Nikolay
То есть в SiteRepository.php стоит реализовать метод для удаления записи по id, но никак не для получения списка последних 10 сайтов?
Sergey
ну как.... зависит от уровня лени и как много у тебя выборок
Sergey
в целом вся соль в сегрегации интерфейсов и обязанностей. Например если ты запихнешь все это в репозиторий и даш кому-то попользоваться что бы тот мог взять 10 последних сайтов, то он как бы получает возможность сайты и добавлять и удалять
Sergey
слишком много власти для одного объекта
Sergey
в сферическом вакууме зависимости объектв должны предоставлять ровно те методы, которые юзаются и не методом больше
Sergey
но настолько загоняться частенько бывает лениво
S
Это ж сколько сервисов должно быть
Sergey
много много много
Sergey
есть еще хитрости
Sergey
например - нотификации
Sergey
у тебя в системе например есть 20 нотификаций различных
Sergey
пилить 20 сервисов как-то не прикольно, учитывая что они будут копией друг дружки
Sergey
так?
S
Угу
Sergey
что можно сделать - один сервис нотификатор, который имеет метод public function send(Notification $notification) { $swiftMailerNotification = $notification->prepare($this->twig, $this->someOtherStuff); $this->mailer->send($swiftMailerNotification); }
Sergey
теперь у нас по объекту на каждую нотификацию и они прекрасно знают как себя "отрендрить".
Sergey
и только один сервис который уже будет отправлять нотификации
Sergey
точно так же можно делать и с выборками
Sergey
еще можно поскрипеть головой и придумать что-то типа композиции выборок но это уже сложнова-то
Sergey
у нас по итогу тогда будут очень маленькие объекты и их будет много, но сервисов будет не так много как объектов
Sergey
и пока у тебя вся система состоит из маленьких самодостаточных объектов и ты следишь за зависимостями - все будет красиво и удобно
S
Но придёт момент и ты сойдёшь с ума?
Sergey
да нет, ты скорее сойдешь с ума если у тебя система будет состоять из классов по 1000 строк
Sergey
с наследованием, статикой и кучей ифов
Sergey
когда непонятно что кто юзает и зачем