• Как в Ubuntu 20.04 установить PHP со всеми нужными для Composer/Laravel расширениями одной-двумя командами?

    DevMan
    @DevMan
    воспользоваться одним из 100500 доступных в инете манов/туториалов.
    на их основе написать простенький скрипт, который будет вызываться одной командой и запускать 100500 других.

    это, конечно же, если не хочется ждать волшебной пилюли, а сделать самому и хоть немного понять "а что происходит".
    Ответ написан
    2 комментария
  • Стоит ли изучать Autodesk Inventor (если знаешь SolidWorks и Autodesk Fusion 360 и продолжаешь в них совершенствоваться)??

    vabka
    @vabka
    Токсичный шарпист
    Я пробовал все три программы, хоть и не профессионально.
    Имхо - если нет какой-то задачи, где нужен именно инвентор, то смысла отдельно его изучать нет. Логика работы в нём такая же, как и в солиде.
    Ответ написан
    Комментировать
  • Как сделать отображение версии и прочей информации в специальном окне на Github?

    DevMan
    @DevMan
    не в специальном окне, а, обычно, в ридми.
    не специальные штуки, а бейджи.

    начать можно с https://shields.io/
    а дальше гуглить по обозначенным словам.
    Ответ написан
    3 комментария
  • Как понять достоин ли ты более лучшей зар.платы или ещё не дорос и не надо высовываться даже?

    t-alexashka
    @t-alexashka
    Сразу пишу legacy код
    Собственно чего не хватает мне, чтобы зарабатывать хотя бы 60 тысяч рублей?

    бро, тебе всего хватает. тебя просто используют. у меня больше $1.5k зп на удаленке, и не со всем что ты описал я работал.

    Тебе просто нужно попроходить собеседования, оффер получишь очень быстро. и потом без раздумий сматывай удочки с текущей должности.
    Ответ написан
    Комментировать
  • Переработка в маленьких IT-компаниях?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Все зависит от конкретной компании.
    Ответ написан
    Комментировать
  • Не могу определиться с фреймворками .NET и Java?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    разработчику в Java EE для работы нужно знать огромное количество фреймворков

    95% вакансий на рынке требуют только Spring. Правда, саму экосистему спринга можно изучать десять лет.
    Ответ написан
    Комментировать
  • Symfony, Argument resolver используется по назначению?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Можно только поабстрактней сделать, чобы любая сущность попадала и проверялась, если указзали, а не для каждой делатьсвой, но оставить такую возможность

    Так неявно сделано в разных админ-панелях. Только не в аргументах контроллера, а просто в реквесте, в EasyAdmin так
    Ответ написан
  • Выборка из БД в огромный excel файл с помощью php или laravel?

    @sl0
    Для этого (не только для этого, конечно, но в том числе) и придумали брокеры очередей. Создаете событие, которое воркер будет обрабатывать в отдельном процессе. Я так делаю выгрузку по гигабайтным базам. В отдельном процессе происходит запись экселевского файла, а по окончании просто выдается ссылка на него.
    Ответ написан
    1 комментарий
  • Можно ли запустить 3 приложения в 1м docker?

    @Tiasar
    Web Developer
    Как тут уже написали можно но не нужно, в 99% случаев это так. Но... бывают задачи, например у меня есть один агент написанный на питоне и к нему в довесок нужны filebeat и merticbeat. Можно было бы поднять 3 контейнера, но начинаются шаманства с тем как читать логи и метрики в разрезе процессов в другом контейнере. К тому же, как и у Вас, мне нужно тиражировать агента и ставить в кучу мест, кое где лютые ИБшники закрыли доступ к половине ресурсов интернета, и таскать по 3 образа не удобно, проще все собрать в один и с него поднять за 5 секунд.

    Решается ваша задача достаточно просто, есть такая замечательная вещь как supervisor. Он запускается как основной процесс контейнера, и он, в свою очередь, поддерживает работу 3-х других процессов, перезпуская их в случае краша. Запускается контейнер через docker-compose что гарантирует перезапуск контейнера в случае его краша.

    Делайте так как Вам удобно, один контейнер - один процесс это для большей части типичных задач, но не для всех!
    Ответ написан
    Комментировать
  • Как отслеживать активность пользователя в системе?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если юзер закрыл вкладку, или перешел на неотслеживаемую страницу - значит у него перестал исполняться JavaScript код, который например каждые 5 секунд делает проверочный AJAX-запрос типа PING-PONG (с токеном страницы, конечно).
    Ответ написан
    3 комментария
  • Как правильно получить запись по slug?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    public function show(string $slug, RegionFetcher $fetcher): Response
        {
            $region = $fetcher->findOneBy(["name.slug" => $slug]);
            return $this->render('app/admin/location/regions/show.html.twig', ['region' => $region]);
        }
    Ответ написан
    Комментировать
  • Как принимать только актуальных данные по API в PHP без базы?

    @rPman
    где то хранить что куда уже отправлял придется, можно не заводить идентификаторы, а считать хеш от ключевых параметров, по которым определяешь уникальность (заголовок или все содержимое), этот хеш и бери и храни как идентификатор.

    тебе нужна key-value база данных, если данных мало и они влезают в память массивом $index[$hash]=true то тогда храни в файле в сериализованном виде var_export/serialize/json_encode или даже по 1 строке на запись - читать array_flip(file('имя файла'))

    p.s. бери sqlite, на столько простой удобной и неприхотливой базы данных не найти, реализованна в файле, ничего не требует для администрирования, работает везде...
    Ответ написан
    Комментировать
  • Есть ли у Postman адекватные альтернативы написанные НЕ на electron?

    @Flying
    Не полноценно, конечно, но в какой-то степени в качестве замены можно рассматривать HTTP Client в IDE от JetBrains, к примеру в PHPStorm.
    Ответ написан
    3 комментария
  • Импорт большого файла с ошибкой recv() failed (104: Connection reset by peer) - что делать?

    @47911 Автор вопроса
    Daria Motorina
    https://serverfault.com/a/782128/441975

    После указания:
    opcache.memory_consumption = 128
    (раскоментировал)
    Импорт прошёл, видимо глючил кешер.

    Обновлено: 18.03.2021
    Я поторопился. Проблема никуда не ушла.
    Но: 1-й запуск за сутки - позволяет импортировать. А вот последующий импорт - не доходит до конца.

    Если важно: php-fpm 5.6, php-fpm 7.0, php-fpm 7.3, php-fpm 7.4(на выбор)
    Скрипт запускается на php-fpm 7.4
    mariadb Ver 15.1 Distrib 10.5.9-MariaDB
    100 гигов оперативки
    2 проца по 16 ядер 2.40GHz
    И загрузка не превышает 50% проца и 70% памяти.
    использую в скрипте:
    mysqli_autocommit и mysqli_commit

    Есть идеи? Импортирую по факту 100 000 статей, в 5 таблиц(количество таблиц к которым обращаюсь), и в одну из них - 15-20 записей(свойства). Итого 20-25 запросов максимум. И оно выпадает с:

    [error] recv() failed (104: Connection reset by peer) while reading response header from upstream

    Я уже не знаю что ещё пробовать. В теории будет ещё импорт с большим количеством записей, неужели делить по 10 000 ? Ещё идеи есть?

    Обновлено
    проблема была решена. Надо запускать под админом, в консоле. Тут нету прерывания.
    Ответ написан
    2 комментария
  • Как работать в php с большим xml?

    link_web
    @link_web
    Magento, Laravel, Zend, Shopify, Prestashop, WP
    Вам стоит обратить внимание на yield в PHP. Можете погуглить , что это. Здесь тоже был вопрос. И переделать код используя yield для более точного считывания файла по частям
    Ответ написан
    Комментировать
  • Как скопировать файлы с умирающего, как я понимаю, жёсткого диска?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    все просто
    НЕМЕДЛЕННО все ВЫКЛЮЧИТЬ.
    Принести диск (или весь ноут) его в сервис по восстановлению дисков, пусть они вытащат диск и снимут с него все файлы.

    Каждый раз когда вы пытаетесь что-то считать, есть вероятность что очередные несколько секторов выходят из строя, теряя ваши данные.

    Да, недешево, но если вам нужны данные - это единственный способ вытащить оттуда максимум.
    Все попытки что-то сделать по интернет инструкциям, если диск физически выходит из строя - риск потерять бОльше данных.
    Ответ написан
    Комментировать
  • Как хранить пароль от базы данных?

    DevMan
    @DevMan
    стоит или нет в первую очередь зависит от требований к сохранности и критичности потери.
    не хотите/можете хранить в конфиге? не вопрос:
    есть переменные окружения;
    есть системное хранилище паролей практически в любой системе;
    есть специализированные хранилища типа vault;
    Ответ написан
    Комментировать
  • Фильтрация данных?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    пароль htmlspecialchars для перестраховки

    зачем?
    htmlspecialchars кодирует служебные символы html. Зачем ее применять для пароля?
    И вообще, пароль у вас никогда нигде не хранится в открытом виде, только его хеш и то внутри системы.

    минимальную фильтрацию где это необходимо

    верное направление мысли.

    Необходимо в двух местах:
    1. запись базу
    2. вывод на страницу

    Чтобы защититься от sql-injection при записи, используйте подготовленные запросы.
    Чтобы не сломать верстку при выводе данных — используйте htmlspecialchars при рендере страницы. А лучше возьмите шаблонизатор. Они все по умолчанию эскейпят вывод.

    разрешить в логин и имя только a-zа-яё0-9


    Это уже не фильтрация, а валидация данных, к безопасности особого отношения не имеет и выполняется в других местах приложения.
    Простой пример. Пользователь отправил форму.
    Вы первым делом сделаете проверку всех полей на допустимые значения, на заполненность и т.д., и если что вернете посетителя обратно на форму с указанием ошибки. Данные здесь не изменяются.
    Если все в порядке, вы будете писать эти данные в базу. Как я уже написал, используя подготовленный запрос. Опять же, ничего менять в них не требуется.
    Потом, вы будете эту информацию где-то выводить на странице. Вот здесь уже, перед выводом, вы прогоните все через htmlspecialchars, возможно какие-то еще корректировки сделаете.

    Но, опять же вы пишете про универсальную фильтрацию на все случаи. Так не бывает.
    Если вы ожидаете во входных данных исключительно текст, то можно, например, смело резать все теги перед записью в базу. А если вы получаете их из визуального редактора, с разметкой, то резать теги уже не нужно.
    Ответ написан
    2 комментария
  • Как сделать приглашение в друзья?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    у тебя уже есть коллекции:
    1) пользователи
    2) друзья (ключ id пользователя, значение set id пользователей или лучше объекты с нужной информацией)
    делаешь 2 доп коллекции:
    1) входящие заявки (ключ - id пользователя к которому стучатся в друзья, значение - set пользователей которые стучатся, set чтобы избежать дублей)
    2) исходящие заявки (ключ - id пользователя который стучится к кому-то в друзья, значение - set id кому отправлены заявки)

    - создание заявки: транзакция (читаем от кого, читаем кому, если все ок, то добавляем 2 документа в коллекции)
    - получение статуса пользователя: читаем 2 документа и видим кому отправили, и кто нам отправил заявки
    - подтверждение заявки: транзакция (читаем от кого, кому, проверяем что пользователь есть, если все ок то удаляем 2 документа, редактируем 2 документа в коллекции друзья, 2 док-та потому что нужно обновить от кого и к кому добавлен друг)
    Ответ написан
    3 комментария
  • Импорт большого файла с ошибкой recv() failed (104: Connection reset by peer) - что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Возможно, лимит времени работы скрипта. set_time_limit()
    А вообще, для экспорта/импорта базы не нужны дополнительные скрипты. Достаточно консольных утилит mysqldump (экспорт) и mysql (импорт).
    Ответ написан
    2 комментария