• Тип возвращаемых значений метода. Как правильно?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Зависит от сценария.
    Судя по коду, отсутствие активности - это не ошибка.
    То есть в данном случае можно вернуть null.

    А вот функции, которые возвращают false в случае ошибки устарели 20 лет назад. И если метод должен вернуть объект, но не может, то он должен кинуть исключение
    Ответ написан
    Комментировать
  • Как ускорить поиск пароля в базе данных MySQL?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В базе данных не должно быть пароля в открытом виде - только хэш. Иначе взломщик, получивший дамп базы данных, сможет авторизоваться от имени любого пользователя.
    И хэш должен быть не SHA, а специально предназначенный для паролей.

    И, да - Dr. Bacon прав: пользователь выбирается из базы по логину, а пароль проверяет не база данных, а серверный код.
    Ответ написан
    Комментировать
  • Как реализовать постоянное подключение к бд?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никакое "постоянное" соединение с БД не нужно.
    Надо просто не запускать игры на хостинге за три копейки.

    "Хостинг", на котором нет таких нелепых ограничений, называется VPS
    Ответ написан
    9 комментариев
  • Как вылечить зависание при импорте в бд?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Запускать операцию через командную строку (cli), а не через браузер.
    https://laravel.com/docs/8.x/artisan#writing-commands
    Ответ написан
    3 комментария
  • Почему вместо кириллицы знаки вопросов?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Давно пора запилить аналог вот этого ответа.
    А то же ведь раз в три дня один и тот же вопрос - кракозябры, вопросики, ромбики.
    И везде одна и та же ересь про "meta charset" в ответах.

    Именно в варианте чеклист, чтобы каждый проверял по конкретным пунктам, в которых четко написано, что делать, вместо невнятного мычания "ну у меня там утээф и еще здесь и вот тута"

    В Mysql
    • Кодировка, которую надо выставлять, называется utf8mb4
    • Что там стоит на "всей БД" абсолютно без разницы. Кодировка должна быть указана для таблиц (в отдельных случаях - для поля) при создании. Проверить можно командой SHOW CREATE TABLE table_name

    В PHP
    • Должна быть быть выставлена кодировка соединения с БД
      • в PDO через DSN $dbh = new PDO('mysql:host=...;charset=utf8mb4');
      • в mysqli $mysqli->set_charset('utf8mb4');


    В браузере
    Для того, чтобы браузер корректно отображал кодировку, её надо указать HTTP заголовках.
    • Либо default_charset = "utf-8" в php.ini.
    • Либо руками в коде header('Content-Type: text/html; charset=utf-8');

    Проверять в консоли разработчика: вкладка Сеть, кликаем на запрос, смотрим заголовки
    Ответ написан
    Комментировать
  • Почему whereIn не распознает переданный массив?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    $productsQuery->whereHas('attributes', function($q) use ($request) {
                   $q->whereIn('size', $request->size);
               })->get();
    Ответ написан
    Комментировать
  • Где можно посмотреть такие проекты?

    @galliard
    Бессмысленная затея, все равно не поймешь почему что-то сделано именно так, а не иначе. Теорию нужно учить и практиковаться потом. Понимание придет со временем.
    Ответ написан
    Комментировать
  • Кто из нас прав про Инкапсуляцию в ООП?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ваш друг описывает смысл инкапсуляции, а вы - средства для её реализации. На мой взгляд, ваш друг трактует в более общем смысле, более полно.
    Ответ написан
    Комментировать
  • Возможно ли подружить Symfony + gRPC + Codeception?

    @HellWalk Автор вопроса
    В общем, все оказалось просто (когда знаешь что делать)

    Необходимо в config/services.yaml в существующую строку:
    exclude: '../src/{DependencyInjection,Entity,Tests,Kernel.php}'

    добавить папку, в которой находятся gRPC-классы, в моем случае это папка src/Grpc и строчка в конфиге выглядит так:
    exclude: '../src/{DependencyInjection,Entity,Tests,Grpc,Kernel.php}'


    Спасибо за наводку по решению BoShurik
    Ответ написан
    Комментировать
  • Как избавиться от ошибки Attempt to modify property of non-object?

    @galaxy
    Ниче, что вы $v потом перетираете?
    foreach($v->autosearch_result as $k => $v) {

    Назовут все одной буквой, потом удивляются...
    Ответ написан
    Комментировать
  • Как правильно оценить свой скилл в web программировании?

    Adamos
    @Adamos
    Было бы очень интересно узнать что должен знать Web-программист middle-senior уровня.

    Программист такого уровня должен знать, как работают все сделанные им сайты и как будут работать те, которые он еще только собирается сделать.
    Оценивать "скиллы" специалиста по прочитанным книжкам - просто смешно. Книжки могут помочь в работе, но специалист определяется только результатами работы.
    Ответ написан
    Комментировать
  • RabbitMQ. Чем отличается exchange от очереди?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Эксчейндж распределяет сообщение по очередям. Кроме того без него ты в очередь нативно ничего не отправишь (можно на самом деле, но не нужно)

    У них на сайте шикарный мануал о том какого типа эксчейнджи бывают и для каких случаев какие надо выбирать
    Ответ написан
    4 комментария
  • Что может вызывать ошибку 502?

    @Flying
    HTTP 502 - это Bad Gateway. Как видно из описания - это означает что proxy (в вашем случае, предположу, nginx) не может получить ответа от upstream'а (php-fpm в вашем случае). Приведённый вами текст ошибки это прямо подтверждает.

    Из этого можно сделать первый вывод: куда-то пропадают процессы php-fpm. Поскольку рабочие процессы php-fpm даже при падении перезапускает основной процесс php-fpm - навскидку можно сделать несколько первичных предположений:
    1. У вас просто не хватает рабочих процессов php-fpm для обслуживания имеющихся запросов. Проверяйте логи php-fpm и подстраивайте параметры pm, pm.max_children, pm.min_spare_servers
    2. Что-то роняет сами процессы php-fpm. Смотрите логи самого PHP и php-fpm на предмет записей об ошибках, устраняйте их

    Также просто понаблюдайте что происходит с процессами php-fpm на вашем сервере, возможно это даст подсказки.

    Конечно есть шанс что проблема в другом, например, действительно, в базе данных. Но здесь для принятия решения явно не хватает имеющейся информации. Однако надеюсь что все тяжёлые процессы вы запускаете не через php-fpm, а в виде фоновых процессов.
    Ответ написан
    4 комментария
  • Объясните на понятном языке, что такое URL обратного вызова?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    callback url - чужой сервер сделает в нужное время запрос на ваш сервер.
    Примеры.
    Платежные агрегаторы делают
    а) пречек - передают информацию что вам хотят оплатить . в ответ нужно дать согласие на принятие денег.
    Типа проверка того что ваш сервер готов отдать товар и сам сервер живой и можно с клиента списывать в вашу пользу деньги.
    б) авизо - деньги с клиента реально списаны.

    Интеграция с телефонией
    дергает ваш сервер CRM о событиях (идет вызов, принят вызов, начат разговор, беседа завершена)

    Телеграм бот - сервер присылает апдейты моментально. Вам не нужно дергать апи по крону чтобы их получить.

    Ну и другие случаи интеграции с АПИ, когда инициатором события должен выступать чужой сервер
    Ответ написан
    Комментировать
  • Где взять больше 1000000 музыки?

    adugin
    @adugin
    Плохо искали. Та же Яндекс.Музыка умеет распознавать. Не говоря про старый добрый Shazam.
    Ответ написан
    2 комментария
  • Насколько хватит аккумулятора 105а/ч?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Чисто умозрительно найти ответ на ваш вопрос непросто. Кое-что понятно сразу (например, зарядку для тлф сразу можно исключить из рассмотрения, по причине мизерности потребления). Но принтер... У него нет постоянного тока потребления, по которому можно было бы рассчитать время. К тому же принтеры бывают разные. Скажем, лазерный имеет киловаттную печку для вплавления краски. Включается она периодически, на поддержку температуры, и ввиду того, что строгого графика включения не имеет, запутает вам все расчёты.
    Да и с ноутом не легче. Когда его батарея заряжается, ток один, когда зарядилась - ток другой, поменьше. То же самое от яркости экрана, от тактовой частоты процессора (при троттлинге ток падает), ну и т.д.

    Это я подвожу вас к мысли, что для ответа на ваш вопрос придётся поэкспериментировать - замерить реальные токи потребления в разных режимах нагрузки, а затем как-то их усреднить. Только тогда у вас (и у нас) появятся данные для ответа.
    Другой вариант такого эксперимента - включить вашу "бортовую аппаратуру" через вот такой счётчик:
    5708248350.jpg
    или любой другой аналогичный. И поэксплуатировать недельку-другую, питая от электросети, конечно. По истечении этого срока станет понятно, какую энергию они потребляют, и появятся данные для расчёта времени.
    Ответ написан
    Комментировать
  • Углубляться, что бы сменить род деятельности?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    А не поздно ли уже для меня углубляться в изучение данной области?

    Не поздно.

    Что выбрать предпочтительней и актуальней для будущего (помечтаю) трудоустройства: .Net или Python?

    Зависит от вас. Актукальны сильные специалисты (это не зависит от стека). Что будет лет через 5 вам никто не скажет.

    Какую область развития выбрать и почему?

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

    Или пойти по стопам некоторых — сначала в QA, а потом в developers?

    Смысла нет. Вы просто потратите время. Следующая ступень за QA manual - это QA automation, но не developer.

    И ,может кто-то, поделиться опытом, у кого получилось сменить род деятельности и сколько заняло сил и времени?

    Даунгрейд - это часто сложный и длительный процесс. Грубо говоря за 2 года вы дошли до джуна и за 3 еще лет вы дошли до твердого мидла. Сменив стек вам прийдется пройти этот путь заново, пусть вы и съэкономите год-два просто за счет того, общего опыта и разработке, но в остальном все прийдется делать заново.
    Самый безболезненный способ перехода - это параллельно с работой изучать то что вам интересно и подрабатывать по этому второму стеку.

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Оператор return, как и следует из его названия, возвращает из метода результат или управление.

    P.S. Поразительно, что вы задаёте вопросы по Java с 2018-го года и до сих пор не освоили самые основы.
    Ответ написан
    Комментировать
  • PhpMyAdmin Как сделать запрет на удаление всей БД?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Нужно разделять понятия
    1. удаление БД (DROP DATABASE)
    2. удаление таблицы (DROP TABLE)
    3. очистка таблицы (TRUNCATE TABLE)
    4. удаление записей в таблице (DELETE FROM TABLE)

    Для первых трёх можно настроить права доступа пользователю https://dev.mysql.com/doc/refman/8.0/en/privileges...

    Для п.4 то вы либо разрешаете удаление либо не разрешаете. Что помешает мне отправить вместо 1 запроса сразу 100000 отдельных запросов на удаление и получить по итогу пустую таблицу?

    Правильное решение - не давать кому попало доступ в PHPMyAdmin, а писать свою админку где сможете контролировать что и как удаляется.
    Ответ написан
    Комментировать