Задать вопрос
  • В чём отличие в Laravel web.php и api.php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Попробуем отделить коней от людей, насколько это получится.
    Говоря просто: API - для отдачи непосредственного среза данных, обычно в виде JSON, WEB - для отдачи целых страниц в виде HTML.

    Всегда думал что api.php нужно для запроса от сторонних приложений, сайтов к твоему сайту для получения какой то информации, которую я хочу предоставить, без авторизации.
    Ну, неправильно думали, ничего страшного. Точнее, очень узко. Вот есть у вас сайт, а потом вы решили сделать к нему в пару мобильное приложение. Оно стороннее? Ничего сделать с отданным через WEB HTML оно не сможет*, потребуется API.
    Наличие или отсутствие авторизации тут совершенно ни при чём.

    в тоже время используя api.php любой человек может запросить любой роут и получить кучу информации
    Любой человек получит то, что вы ему отдадите. Никакого запрета (или сложностей) на внедрение авторизации в API нет.

    Количество Middleware на web.php значительно больше, т.е. любой запрос проходит больше проверок перед тем как выдать результат.
    Middleware - это любые обработчики, а не только проверки. Т.е. "больше обработчиков не значит больше проверок". Любые обработчики вы можете навесить и на API**. И их даже не надо писать отдельно, в Laravel уже всё есть.

    В итоге вопрос, с точки зрения безопасности, производительности есть преимущества api.php перед web.php
    С точки зрения безопасности разницы нет. API может быть несколько производительнее за счёт того, что обрабатывает и отдаёт меньше "лишнего". Но по этим аспектам их вообще не надо сравнивать, это всё равно, что выбирать между экскаватором и самосвалом по степени лёгкости угона того или другого.

    * без костылей
    ** с поправкой на отсутствие сессии обычно
    Ответ написан
    Комментировать
  • Sury.org заблокирован для России?

    dyuriev
    @dyuriev
    A posteriori
    Да

    Вернее sury.org заблокировал Россию

    Пруф: https://github.com/oerdnj/deb.sury.org/issues/2155
    Ответ написан
    3 комментария
  • Как одновременно отобразить страницу, выдать файл и удалить его после?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    так как вы используете Response-фасад то есть встроенный метод

    response()
    ->download($pathToFile, $name, $headers)
    ->deleteFileAfterSend(true); //<--

    https://dev.to/codeanddeploy/how-to-delete-files-a...

    Альтернативные варианты
    Terminable Middleware позволит выполнить любой код перед завершением работы скрипта (уже после того как был отдан Response), туда можно разместить код удаления файла. Под капотом используется fastcgi_finish_request()

    или Job::dispatchAfterResponse()
    https://divinglaravel.com/running-a-task-after-the...
    Ответ написан
    5 комментариев
  • Что стоит использовать для защиты PHP-кода на текущий момент?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Сообщество считает, что всё это бессмысленные ужимки, которые в 99% случаев используются только для того, чтобы прикрыть крайнее убожество кода. Серьёзные продукты никто не шифрует. Чем, в частности, объясняется заброшенность всех этих, на первый взгляд многочисленных, проектов, которые не выходят из стадии "мы тут с одноклассниками придумали крутую штуку". потом одноклассники либо умнеют и перестают теребить ерунду, либо находят занятие более интересное, чем пхпе.

    Сам по себе код мёртв. Он устарел ещё до релиза. В работе софта важна не дискетка с исходниками, а поддержка. Вот поддержку и надо продавать. И не дрожать над каждым вором. Потому что защита от одного вора отпугивает 10 честных покупателей.

    Плюс всегда есть SAAS.
    Ответ написан
    4 комментария
  • Как сохранить другую сущность при авторизации?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите пожалуйста как сохранить модель Doctors как авторизованного пользователя?

    1) Модели не называются во множественном числе. Модель Doctor привязывается к таблице doctors. И "я получаю модель Users," - то же самое, модель User.
    2) Доктор или пациент это не пользователь, это либо роль, и тогда надо делать RBAC, либо авторизированная сущность, и тогда нужно связывать юзера и сущность через один-к-одному, в случае если доктор и пациент кардинально различаются по свойствам, а не просто имеют разные права. А пользователь просто способ авторизации/идентификации.
    Ответ написан
    Комментировать
  • На примере каких баз готовиться к собеседованию php разработчика?

    Ну ты же видишь что в вакансии требуют, верно?
    Будет странно, если в вакансии требуют mysql или pg, а спрашивать будут про mssql.

    Так что готовься к тому, что пишут в конкретной вакансии
    Ответ написан
    2 комментария