• Есть ли в Laravel какие-то методы для динамического добавления полей в модель/сущность на основе MySQL?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Вы придумали проблему там где её нет, потому что объединили две несвязанные задачи.
    Добавление и прочие изменения можно подсмотреть в миграциях, есть готовый компонент \Illuminate\Database\Schema\Builder
    После этого поле ничем не отличается от остальных. Это не Doctrine, где поля надо явно прописывать.

    Вторая задача это работа админки, она никак не связана с путём появления поля в модели. Та же простейшая динамическая сортировка или фильтрация делается в лоб.
    Допустим в урле приходит
    ?filterBy=fieldName&filterValue=value&filteOperation=%3D
    в контроллере
    $model->where($request->get('filterBy'), urldecode($request->get('filterOperation')), $request->get('filterValue'));
    И не важно как вы добавили колонку и есть ли она вообще в базе, Eloquent не проверяет этого.
    Но не забывайте про безопасность.
    Ответ написан
    1 комментарий
  • Как понять микросервисы?

    @deliro
    Как понять микросервисы?

    Прочитать соответствующую книгу (а лучше ещё парочку про DDD или хотя бы посмотреть этот доклад)

    Затем ответить на несколько вопросов:
    1. Почему вы решили, что микросервисы что-то вам дадут?
    2. Есть ли у вас настоящие причины для микросервисной архитектуры? (А именно: зоопарк технологий с невозможностью написать 99% на одном языке; более тысячи разработчиков; сложность выкатки монолита в виде часов прогонов CI/CD — тестов, билда, деплоя, стопоров выкатки в виде кучи проблем из-за разработчиков; вы такие же большие как гугл, убер, амазон и т.п.). Или вам просто нравится модное слово "микросервисы"?

    Не получится создать хорошую микросервисную архитектуру без умения создать хороший модульный монолит. В этом случае вы получите не только все проблемы плохого монолита: высокая связанность, каскадные падения, долгий CI/CD; но и все проблемы микросервисов: их надо оркестрировать (у вас же есть команда, которая будет поддерживать инфраструктуру?); каждому микросервису нужно своё CI/CD (и хорошее); сеть может (и будет) лагать и обрываться; длительность запросов увеличится на порядок(ки) (особенно если выбрать какой-нибудь JSON-RPC over HTTP); нужно предусмотреть failover strategy (например, идемпотентные ретраи. Вы же уже знаете про correlation id, саги и что делать, если прилетел network error на запрос в другой сервис "списать 10 баксов"?) и circuit breakers; трейсы и логи, которые не пришлось бы искать по сотням .log файлов от каждого сервиса; бизнес-логика расползётся по разным микросервисам и нарушит SRP (пофиг, что нарушит, важнее то, что это починить будет сильно сложнее). Список можно продолжать долго.
    Ответ написан
    11 комментариев
  • Чем делать резервную копию Windows?

    delphinpro
    @delphinpro
    frontend developer
    Важные файлы на яндекс-диске.
    Рабочие проекты на гитхабе/гитлабе.
    А саму систему нафига бэкапить? Она у меня на днях в первый раз за 8 лет рухнула. Ну накатил по новой и фиг с ней.
    Ответ написан
  • Какие бесплатные сервисы для отправки email есть для Laravel?

    Skiphog
    @Skiphog
    Crutch developer
    В одном проекте, для транзакционных писем использую SendPulse
    Бесплатный тариф - 12к писем в месяц, но с ограничением до 50 писем в час.
    Правда, об этом ограничении на сайте ничего не написано. (Может я плохо искал) Об этом вы узнаете только в личном кабинете )))

    Письма отправляются через них уже более трёх лет. Если не превышать лимит, то проблем не возникнет.

    Использую не в Laravel.
    Для PHP у них есть своя библиотечка. Очень простая, всё задокументировано и есть примеры использования.

    НО! На packagist можно найти библиотеки для интеграции sendPulseApi с Laravel.

    Если вам это подходит, то можете попробовать.
    Ответ написан
    Комментировать
  • Как правильно реализовывать фронтэнд в 2021?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    В современном мире действительно стоит разделять backend и frontend. Везде есть свои фреймворки которые стоит использовать для облегчения разработки. Бакенд обычно имеет только api и этого бывает достаточно. А шаблонизатор twig применяют в этом случае для email писем.

    Frontend сейчас разнообразен. Это сейчас больше чем CSS+HTML и небольшой функционал на JS. Более того на Frontend сейчас тоже можно делать микросервисы. Одна страница может работать сразу на нескольких JS фреймворках. Например, меню на Vue, а Navbar на ReactJS.

    С точки зрения поддержи и развития вы тоже проигрываете. Ведь большой проект требует узких специалистов, в том числе и фронтенд. Если Ваш фронтенд будет на PHP, то на фронтент уже потребуется фул стек разработчик, что дороже и проблематичнее. Значит сложнее масштабирование и развитие. Да и возникают проблемы монорепозитория, куда все изменения с frontend и backend поступают в один репозиторий, без возможности отделения их. Таким образом ко всем разработчикам сразу попадает готовый проект, который легко скопировать и украсть.

    Поэтому, если ваш фронт слишком сложный, то его следует отделить. Иначе вам придётся столкнуться с множеством проблем, зависимостью и сложностью как проекта, так и репозитория.
    Ответ написан
    Комментировать
  • Расписание на неделю по часам, как хранить?

    Если просто бинарное свободно/занято, можно хранить целый день как 24-битную маску, одно целое число. Каждый бит означает вакантность соотв. часа.
    Ответ написан
    1 комментарий
  • Как отправлять сообщения в приватный телеграм-канал через бота (PyTelegrambotAPI)?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Точно так же как и в другой канал/группу/чат - по ID
    Ответ написан
    2 комментария
  • Вызов команд Телеграм-бота при сканировании QR-кодов?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    Наверное единственный работающий вариант это https://core.telegram.org/bots#deep-linking
    Ответ написан
    Комментировать
  • Как работают с крупными сайтами, развёрнутыми на чистых VPS?

    vabka
    @vabka Куратор тега Веб-разработка
    Разворачиваешь у себя как-нибудь nginx+mysql+php, например через докер.
    Переносишь схему данных с прода к себе в локальную БД, переносишь код (вообще он по-хорошему должен лежать отдельно в гит-репозитории).
    И в принципе всё. Локальную БД можно заполнить либо частью продакшен данных, либо нагенерить фейковые данные.
    Ответ написан
    Комментировать
  • Как зарегистрировать глобальную переменную или получить данные по API единожды при загрузке странице?

    @vism
    1. кэш
    2. синглтон
    3. тупо статическая переменная в классе.
    Ответ написан
    Комментировать
  • Как исправить проблемы с выдачей результатов поиска при изменения input?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Надо отменять предыдущий запрос при запуске нового
    Ответ написан
    Комментировать
  • Как сделать локализацию бота?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    я данную задачу решал самописным модулем.

    https://www.npmjs.com/package/msg-localize
    Ответ написан
    Комментировать
  • Как составить MySQL запрос SELECT из 2-х таблиц, исходя из нескольких значений?

    idShura
    @idShura
    select t1.id,
           t1.model,
           t2.category,
           t2.main_category
      from table1 t1
           left join table2 t2 on t2.id = t1.id
     where t2.main_category = 1
    Ответ написан
    Комментировать
  • Javascript фреймворки - дань моде или быстрота и удобство?

    @maxbublik
    JS фреймворки уже несколько лет - это будни фронтэнда, и это не мода, и это никуда не уйдет. Также как никуда не уйдет традиционная верстка. Они будут жить вместе. Четкую границу между веб-сайтами и веб-приложениями провести нельзя, но суть вопроса автора вопроса понятна.

    Конечно же, делать простой лендинг на чем-то типа Angular/React - это клиника. Хотя если нужны интерактивные блоки, очевидно лучше использовать Vue, чем городить что-то на jQuery. Vue как раз хорош тем, что его можно задействовать только для отдельных виджетов, а весь остальной сайт продолжай писать как тебе угодно.

    Сам Vue фреймворк и свой код Vue-виджетов нет необходимости всегда собирать. Шаблоны для Vue не похожи на кошмар, приведенный в листинге. Все верстать кастомными тегами не обязательно, по мне, так это тоже клиника. Да, в продуктив все равно придется собирать, и сборка всегда сложная, и это якорь, который еще несколько лет придется тащить, но со временем втягиваешься, скрипт сборки кочует из проекта в проект. Со сборкой придется потерпеть.

    Короче, если вы верстаете но на JavaScript ничего сложней jQuery вы не умеете, то вы в заднице. И каждый год вы все глубже.
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    @Silm
    Вам проще почитать документацию пары тройки популярных фреймворков, сразу все поймете.

    При разработке сайта всегда появляются рутинные задачи. Если пишите сами, то вам надо написать роутинг, надо написать подгрузку классов, MVC, конфигурирование, обертку к БД, обертку к кешу, ..., да даже кучу мелких функций для работы со строками. Либо собрать все это их готовых библиотек.

    В фреймворке все это уже собрано, подробно описано и задокументировано. Хороший фреймворк старается минимально обязать вас к чему то и предоставить максимум гибкости и возможностей. Если вам так надо, можете игнорировать большую часть возможностей фреймворка, а можете вместо каких то его частей использовать сторонние или свои.

    PHP веб фреймворк - это каркас приложения, набор инструментов, набор деталей, набор стандартов, в какой то мере - рабочее пространство.

    Проводя аналогию, если бы PHP разработчик, который все проекты пишет с нуля, был плотником: ему бы пришлось в какой то степени овладеть кузнечным делом, чтобы выковать себе инструмент. Инструмент он изобретал бы сам, поэтому самодельной, уникальной, отверткой не получилось бы закрутить стандартный саморез. И скорее всего в каждом проекте появлялась бы парочка саморезов нового типа + отвертки под них, не совместимые с предыдущими. По той же причине ни у кого бы не получилось с ходу собрать/разобрать/починить его изделие.

    Самостоятельно бы пришлось изобретать и многие технологии деревообработки. Само собой они бы уступали технологиям проверенным временем и тысячами других мастеров, поэтому изделия получались бы массивными, хрупкими и в целом сомнительного качества.

    Ну и так далее.
    Ответ написан
    Комментировать
  • Можно ли создать сайт загрузив движок WordPress на Google Drive?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Что вы там курите? Google Drive - это сервис хранения, редактирования и синхронизации файлов. Это не хостинг с php.
    Будут ли данные авторизации админов и пользователей доступны всем или это можно скрыть?
    - серьёзные у вас там админы.
    Ответ написан
    Комментировать
  • Как реализовать загрузку видео-файла с помощью php?

    twix007
    @twix007
    за вас гуглить никто не будет, есть много примеров уже
    Ответ написан
    Комментировать
  • Будет ли большое количество колонок замедлять работу с базой данных?

    @MaLuTkA_UA
    Ваша идея полный бред. В таблице должна хранится информация, а не дефолтные значения. Так как вы написали у вас буду заполнятся 5 колонок уникальными данными, id подозреваю в их числе (если нет добавьте) и все это ваша главная таблица. Все остальное нужно хранить в другой таблице которая сказывается с главной по foreign key.

    Пример названий колонок второй таблицы:
    - ид из основной таблицы
    - дата записи
    - запись

    По такой системе проблем с работой не будет, так как вы с лёгкостью можете получить любую требуемую информацию одним запросом
    Ответ написан
    1 комментарий
  • Адекватно ли несколько сайтов Wordpress (да и вообще других сайтов) размещать на одном домене?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    Это нормально. Потому как его это положение дел устраивает
    Ответ написан
    2 комментария
  • Как лучше передавать большие коллекции данных из Laravel в Vue.js?

    DevMan
    @DevMan
    пагинация же. вываливать за раз всех юзеров не имеет смысла.
    Ответ написан
    Комментировать