Ответы пользователя по тегу Проектирование программного обеспечения
  • Как спроектировать возврат ДС по заказу на laravel?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Почему бы не Использовать эвенты? при изменении модели в событии updating проверяем "грязное" ли поле status (это покажет был ли это запрос на изменение статуса) если грязное то обрабатываем в соответствии с требованиями, если получаем неправильный ответ от обработки - устанавливаем нужный статус или тот который был в чистой модели.

    Итог - или отработает так как надо или т̶а̶к̶ ̶к̶а̶к̶ ̶н̶а̶д̶о̶ возврат к нужному статусу.
    Ответ написан
    7 комментариев
  • В чем преимущества таблицы uploads для проецирования загруженных файлов в базу данных?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Только с таблицей.
    - Для того чтобы удалять неиспользуемые картинки.
    - Для того чтобы делать новые размеры картинок если появляются.
    Со временем этот мусор копится и бесполезно сьедает место.
    Ответ написан
    Комментировать
  • Как спроектировать многоролевое api на laravel 9?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    0) Оставить одну модель Users
    1) Не трогать
    2) Не трогать
    3) Нет

    Используй широко распространенные пакеты и не надо ничего придумывать. Например этот
    Добавляешь роли guest, user, admin а в пермиссион добавляешь разрешение owner если надо глобально или product_owner если например надо отдавать только свои продукты для роли. Далее добавляешь global scope с проверкой если есть owner то к запросу добавляешь чтобы только свои показывало.
    Ответ написан
    Комментировать
  • Laravel Service Layer обработка ошибок?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    sentry.io - попробуй этот сервис и забудь про отслеживание ошибок Установка
    --------
    Исключения вызывают событие и в слушателе этого события можно реализовать свою логику. Не нужно никаких return throw
    Ответ написан
  • Стоит ли разделять проект?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Нет. Можно добавить файлы роутов отдельно для каждого. Папки для контроллеров для каждого. Можно даже вывести это все в модули. Можно легко разделить это все в одном проекте.
    Иначе придется постоянно синхронизировать модели (Общие то будут 100%), константы, конфиги, обновлять 3 а не 1. Имхо разделив только лишние заботы получишь.

    Но все меняется если админка это SPA и обмен данными по APi, тогда можно разделять и не волноваться.
    Ответ написан
    Комментировать
  • Как лучше хранить модели в Laravel?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Можно делать как пожелаешь. До недавнего времени в Laravel вообще не было папки Models хотя одно из первых действий было добавить папку Models. Ограничений нет.

    Большое количество моделей приведет к неудобству постоянного скролинга этой папки в IDE (тк она почти всегда открыта).
    Ответ написан
    6 комментариев