• Как исправить ошибку composer?

    glaphire
    @glaphire
    PHP developer
    Нужно вручную поправить буквы верхнего регистра на нижний в composer.json и composer.lock в названии пакета и установить зависимости заново. Ошибка начала возникать из-за несовместимости названия пакета с версией композера (v2)
    Ответ написан
    7 комментариев
  • Как правильно спарсить?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Контент догружается ajax запросами. Смотрите вкладку chrome dev tools > network, поспроизводите запросы в коде и парсите из ответов недостающие данные
    Ответ написан
    Комментировать
  • Зачем вообще использовать брокеры очередей?

    glaphire
    @glaphire
    PHP developer
    Для простого приложения, как в описании вопроса, это действительно оверхед)
    По ответам из разных источников получается, что реббит становится полезен тогда, когда в системе появляется много продюсеров и консюмеров, и реббит, как самостоятельная прослойка, инкапсулирует логику рассылки, попыток переотправки и т.д. То, что сообщеня могут теряться это да, проблема, но можно снизить ее вероятность, если углубиться в настройки и покрутить экстеншены реббита
    Ответ написан
    4 комментария
  • Как работать с RabbitMQ через докер?

    glaphire
    @glaphire
    PHP developer
    Если реббит в отдельном контейнере, то нужно чтобы лара и реббит были в одной подсети докера,у Вас в docker-compose написаны только настройки контейнера без подсети)
    https://forums.docker.com/t/internal-network-betwe...
    В комментах есть примеры, от чего отталкиваться при поиске
    Ответ написан
    Комментировать
  • Чем лучше автоматизировать работу с сайтами?

    glaphire
    @glaphire
    PHP developer
    Selenium отлично подойдет.
    Headless browser (запуск браузера без графики) не подойдет, во всяком случае у меня не получилось в нем загружать и скачивать файлы
    Ответ написан
    Комментировать
  • Как парсить сохраняя стили (заголовки, выделения, абзацы и пр. )?

    glaphire
    @glaphire
    PHP developer
    В комментариях упомянули wget, оказывается действительно можно выкачать все файлы через wget (пример 9 из статьи)
    https://m.habr.com/ru/company/ruvds/blog/346640/
    Если это не подходит или недостаточно, то в принципе селениум же может доступаться к любому узлу DOM-дерева и может получить текст вместе с версткой (стилизацией из Wysiwyg-ов). У тегов img тоже можно получить значения атрибутов src и скачать файлы по урлу. Я не могу привести примеры кода на python, но точно знаю что это возможно и достаточно легко сделать, главное селекторы этих элементов понаходить)
    Ответ написан
    Комментировать
  • Нужна помощь, срочно, как назвать позицию в которой разработчик выступает как support?

    glaphire
    @glaphire
    PHP developer
    То, что Вы описали и дополнили комментарии, это на 60% набор обязанностей сеньор разработчика или тимлида/техлида. Просто техлидами обычно назначаются люди, которые еще что-то привносят в проект новое, пишут что-то с нуля и распределяют по команде, а тут в основном контроль уже существующего. У тимлида акцент на управление результатом работы других людей в команде, сам он почти не пишет код.
    Написать просто "senior {language} developer" в тайтле и описать те обязанности, что Вы перечислили это будет маскимально близко к правде
    Ответ написан
    Комментировать
  • Какие классы должны быть в тестовом задании на CRUD новостей?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    По-сути от задания на фреймворке эта задача будет отличаться тем, что надо создать свои базовые классы роутинга, авторизации, моделей и контроллеров. Просто это будет раз в 5 упрощеннее по сравнению с фреймворком - без абстракций на каждый чих) ну или на часть задач использовать пакеты - красивый роутинг с нуля не так легко написать
    Ответ написан
    Комментировать
  • Как использовать переменную контроллера в представлении?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    $domainsosi = $onsameip['name'];
    - это перезапись переменной в каждой итерации
    $domainsosi[] = $onsameip['name'];
    - это добавление элемента в массив на каждой итерации.
    Пысы. Пожалуйста, пишите переменные через camelCase)) а то получается не "домейнс о эс ай", а по-другому))
    Пысы2. В шаблоне тоже надо использовать foreach, чтобы вывести все что было записано в массив
    Ответ написан
    1 комментарий
  • Какой выбрать фреймворк PHP, желательно простой и обязательно отечественного автора(-ов)?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    https://github.com/bluzphp
    Антон Шевчук с ним много выступал, но для серьезного проекта он имхо очень стар
    Ответ написан
    1 комментарий
  • Почему в Laravel при при использовании метода save() выходит ошибка Column not found: 1054 Unknown column 'id'?

    glaphire
    @glaphire
    PHP developer
    Скорее всего она под капотом тянется здесь
    $sub_task = Task_1st_kind::where('sub_task', $sub_id)->first();

    Потому что вытягивает объект со всеми полями.
    Причины:
    1) в базе нет колонки id
    2) id это не primary key в таблице
    3) у таблицы нестандартный primary key, это нужно указать в классе модели
    Ответ написан
    3 комментария
  • Как вы организуете большое кол-во собеседований?

    glaphire
    @glaphire
    PHP developer
    Искала работу этой осенью)
    Могу сказать что если Вы давно проходили собеседования, то лучше не начинать с компаний, в которые очень хотите попасть, потому что можно быть умным, но поплыть на ряде простых вопросов просто потому, что не освежили память и это собъет хорошее впечатление. Мода на стандартный набор вопросов меняется, то что спрашивали 5 лет назад могут не спросить сейчас, но при этом придумать новые вопросы из стандартного списка. Я была уверена что спросят что-то из серьезных тем, а спрашивали совсем другое и простое, причем нужно было быстро напрячься и вспомнить, чтобы ответить)
    У меня была пара дней, когда были два hr и два технических собеса подряд и это была огромная ошибка - это выматывает очень сильно. Лучше планировать не больше одного тех.собеса в день или делать между ними перерыв минимум 2 часа, а лучше больше.
    На прескрининге/hr собеседовании очень часто говорят - да мы максимум на полчаса созвонимся - не верьте)) Это спокойно растягивается на час и больше, если разговор пошел не по шаблону.
    По итогу могу сказать, что важно помнить о своих жизненных силах и не пытаться с наскоку пройти все собесы, важно оставаться со свежей головой и оставлять время проработать все вопросы, на которых завалились, на некоторые из них может уйти весь вечер)
    Удачи в поисках)
    Upd. Неплохо бы составить список стандартных вопросов, у меня это были:
    1) локация офиса
    2) предоставляет ли компания технику
    3) есть ли овертаймы и оплачиваются ли они, какой темп работы и дедлайны
    4) как оформляется и ведется сотрудничество, когда подписывать контракт
    5) сколько месяцев испыталка
    6) состав команды, кто ею управляет
    7) тематика проекта
    8) технологии, какие из них основные, какие второстепенные
    9) какие средства разработки и коммуникации используются (может вылезти нежданчик с виндой, запретом на лицензионный софт и прочей ерундой)
    10) для чего нужен английский (только технический, только переписка или полноценное общение one-to-one)

    Часть этих вопросов помогла избежать разочарований и зря потраченного времени
    Ответ написан
    Комментировать
  • Как избавиться от ошибки Attempt to modify property of non-object?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Это значит что $v - это не объект, поэтому нельзя в отношении него вызывать свойство autosearch_result. В примере кода не видно самого создания этого объекта v. Странно эта ошибка не вылезла раньше по стеку)
    Ответ написан
  • Какими кистями (интересуют их названия) пользуются в фотошоп для рисования?

    glaphire
    @glaphire
    PHP developer
    Я просто кручу настройки стандартных кистей перед началом работы (просто зайти в меню кистей и менять любые настройки, пока не выйдет что-то интересное), брашпак удобен разве что набором форм(отпечатков), но их тоже можно самому сделать. Раньше на deviantart художники выкладывали ссылки на свои паки, но нп. Loish тоже использует стандартный набор, корректирует только мягкость, прозрачность и размер круглой кисти
    Ответ написан
    Комментировать
  • Почему библиотека так сильно "размазана"?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Как сказали уже в комментариях - все правильно, классы разбиты по зоне ответственности. По PSR тоже - надо разбивать классы на отдельные файлы и корректно именовать. Вес пакета играет второстепенную роль.
    Даже если откинуть современные стандарты, то классы до 500, в идеале до 200 строк банально проще читать в IDE и git при диффах и мердж реквестах - быстрее найти что к чему относится)
    Ответ написан
    Комментировать
  • Как реализовать правильное удаление связанных данных в Symfony?

    glaphire
    @glaphire
    PHP developer
    Можно попробовать иначе - сделать метод удаления на уровне какого-то сервиса, перед удалением проверять наличие связанных сущностей (select /exists), если нашлись - кидать эксепшен с предупреждением. Мне кажется что на уровне стандартной аннотации это просто не получится, нужны доп.меры)
    Ответ написан
    3 комментария
  • При обновлении компонентов выдает ошибку, как это решить?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Open server здесь вторичен, проблема в первую очередь в отсутствии расширения fileinfo в php. После его установки возможно придется доустановить точные версии тех пакетов, что композер не смог зарезолвить из-за отсутствия экстеншена.
    Ответ написан
    2 комментария
  • Где проверять условие по отправленным данным?

    glaphire
    @glaphire
    PHP developer
    Можно попробовать прикрутить rate limiter component, но имхо лучше создать свою логику набором правил, как оценивать частоту отправки формы и кастомное сообщение в случае превышения лимита
    Ответ написан
  • Вывод информации из поиска?

    glaphire
    @glaphire
    PHP developer
    Смотрите, сейчас у Вас уже написан вывод результатов в шаблон admin/test.blade.php в контроллере
    public  function  search(Request $request)
        {
            $name = $request->input('Name');
            $item = DB::connection('555')->table('Shop_Goods')->where('name', 'LIKE', '%' . $name . '%')->get();
    
    
            return view('adminka.test')->with($name, $item);
        }

    Тут нужно только создать этот шаблон, добавить в него инклуд секций и базового лейаута и вывести $name и $item в шаблоне.

    Единственное что создавать урлы такого плана (search1) это плохо, лучше заменить чем-то более человекопонятным и без цифр (можно даже разделить один урл search на GET /search и POST /search с привязкой к разным экшенам).
    Ответ написан
  • Как добавить проек в github?

    glaphire
    @glaphire
    PHP developer
    git is not recognised as an
    Думаю что хоть один ответ с этой страницы поможет донастроить гит
    Ответ написан
    Комментировать