• Как в yii2 отправить фатальную ошибку?

    @Mylistryx
    throw new AwesomeException, только зачем?
    Ответ написан
    2 комментария
  • Где хранится информация CMS?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нигде не хранится. Сервисы типа 2ip просто делают догадки на основе косвенных признаков, вроде характерных для конкретной CMS URL'ов, названий статики, вёртски формы логина и т.д. и т.п.
    Ответ написан
    Комментировать
  • Можно ли в PHP отсортировать ассоциативный массив в ручную?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Именно для этого существует usort - чтобы отсортировать массив по значениям используя пользовательскую функцию. Если хотите сортировать не по значениям - есть uksort.

    А как именно вы отсортировать хотите, я не очень понял. Но общий код такой:
    $array = [3, 2, 5, 6, 1];
    
    usort($array, function ($a, $b) {
        if ($a == $b) {
            return 0;
        }
        return ($a < $b) ? -1 : 1;
        //Или ваша любая функция сравнения значений.
    });
    Ответ написан
    Комментировать
  • Headerless cms на базе Laravel можно/нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    С технической точки зрения ларка безусловно поможет сделать cms.
    С бизнес точки зрения вы точно должны понимать, почему существующие решения вам не подходят. Если этого понимания нет, есть очень большая вероятность того, что вы напшете оередной никому не нужный велосипед
    Ответ написан
    Комментировать
  • Headerless cms на базе Laravel можно/нужно?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Вы и из WordPress'а можете сделать headless. WP даёт отличный API. Я на своей практике реализовывал такой бекенд для сайта React и мобилок. Было больно - но не так, как писать всё с нуля. Заказчик получил удобную панель управления + огромный репозиторий плагинов WP.

    Что касается Laravel - да, можно. Но готовы ли вы тратить такое количество времени на то, что, по факту, уже есть в WP? Та же админка - ну вряд ли у вас получится сразу же сделать так удобно и красиво как у WP.
    Ответ написан
    Комментировать
  • Почему в данных таблицы все не по порядку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SQL не гарантирует какого-либо определённого порядка строк в выборке за исключением явно заданного через SORT BY.
    Ответ написан
    Комментировать
  • Как импортировать json в wordpress в виде типа постов?

    @weart
    wp all import
    Ответ написан
    Комментировать
  • Защита ajax от имитации?

    @zkrvndm
    Софт для автоматизации
    Уведомления должен посылать PHP скрипт, тогда вопрос отправки спама упирается лишь в вопрос валидации запросов от браузера к PHP скрипту.

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

    Stalker_RED
    @Stalker_RED
    Потому что по замыслу создателей этого сайта у вас сперва должна открыться страница которая установит куку, затем страница перезагрузится, и уже с кукой начнется скачивание.
    Скачайте через браузер, скопируйте куку, добавьте ее в контекст.
    Возможно придется еще и время в куке правильное выставлять, если они его проверяют.

    'http'=> [
        'header'=>"Cookie: beget=begetok; foo=bar;"
      ]
    Ответ написан
    Комментировать
  • Как запретить массовую регистрацию с одного устройства?

    @zkrvndm
    Софт для автоматизации
    Этих трех мер будет достаточно:
    1) Ограничить частоту регистраций с одного IP адреса.
    2) Ограничить частоту регистрации для одного отпечатка.
    3) Использовать Google Recaptcha v3 для определения ботов.
    Ответ написан
    5 комментариев
  • Если заменить условный оператора полиморфизмом в чём суть?

    Stalker_RED
    @Stalker_RED
    Суть в том, что ООП - это подход для того, чтобы уменьшить сложность СЛОЖНЫХ программ.
    Поэтому когда вы берете простой пример с тремя птичками или "cat says meow, doggy says bark", то разница не видна. В особо тяжелых случаях ООП код будет даже казаться более сложным, чем обычный if или switch.

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

    И если написать это на ООП, то у вас будет класс Unit с общими методами, и несколько десятков классов
    Paladin extends Unit
    GoblinTechies extends Unit
    GoldenDragon extends Unit
    в каждом из которых учтены особенности конкретного типа юнитов.

    А если без ООП, то у вас остаются условные операторы. Десятки условий для здоровья, еще десятки для брони, еще десятки для скорости, и в итоге каша такого размера и сложности, что работать с этим в какой-то момент станет невыносимо.
    Ответ написан
    4 комментария
  • Стоит ли использовать phpdoc для описания методов, если я использую тайпхинт и указываю возвращаемые значения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    IMHO, там где понятно по тайпхинтам, смысла в phpdoc нету. А вот там где непонятно
    /**
     * @return array{uid: string, name: string, isAdmin: bool}
     * @throws AuthenticationException on authentication error
     */
    private static function authenticate(string $login, string $password): array
    {
    }
    Ответ написан
    Комментировать
  • Почему Yii2 HttpClient не отправляет заголовки с именами в snake_case?

    @MarkLb Автор вопроса
    Название параметра должно состоять минимум из одного печатного символа (ASCII-коды от 33 до 126). Регистр символов в названиях не имеет значения. Заголовки с неизвестными именами должны игнорироваться. После названия сразу должен следовать символ двоеточия.

    Wiki

    Символы ASCII с кодом от 33 до 126в этом списке нижнего подчеркивания нет. snake_case не поддерживается.

    UPD: Всё же в данном списке — нижнее подчеркивание есть под №95:
    uJ05noY.png
    Но поделились ссылкой на документацию nginx, с разделом Missing (disappearing) HTTP Headers, который гласит: «NGINX will silently drop HTTP headers with underscores (which are perfectly valid according to the HTTP standard». И изменение snake_case мою проблему решило.
    Ответ написан
    3 комментария
  • Как правильно хранить секунды в базе даных?

    @alexalexes
    1. Храните в БД целочисленно;
    2. Передавайте на фронт целочисленно;
    3. На фронте преобразуйте целочисленную длительность в нужный формат любым доступным способом.
    Ответ написан
    Комментировать
  • Как регулярным выражением получить токен?

    @kalsc12345
    Неизвестный человек.
    preg_match('/csrftoken=([^;]+)/', $login, $matches);
    $csrftoken = $matches[1];

    Кхм?
    Ответ написан
    Комментировать
  • Почему PHP так сравнивает строку и число?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    PHP 8.0
    If both operands are numeric strings, or one operand is a number and the other one is a numeric string, then the comparison is done numerically.

    Более ранние версии PHP:
    If a string is compared to a number or a numeric string then the string was converted to a number before performing the comparison.

    То есть, когда вы в 7.4 сравниваете строку с числом, то строка в любом случае приводится к числу. В 8.0, при сравнении нечисловой строки с числом, число будет приведено к строке.
    А дальше у вас, похоже, проблема XY. Вам надо искать не "как сравнить через ==", а как решить исходную задачу, для которой нужно такое сравнение.
    Ответ написан
    Комментировать
  • Почему PHP так сравнивает строку и число?

    @Sleep
    Так происходит, т.к. вы используете операторы нестрогого сравнения, это означает, что перед сравнением php будет пытаться привести параметры к одному типу.
    Используйте строгое сравнение (===) и будет вам счастье
    Ответ написан
    4 комментария
  • Как лучше организовать запрос к БД на основе данных?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    А имеет ли смысл обращаться к базе при каждом изменении выбора?

    Можно, например, выгрузить весь список допустимых значений и подставлять их используя JS.
    Допускаю, что возможных комбинаций значений (строк в таблице) не так уж и много. И наверняка нет причин получать актуальный список именно в момент совершения выбора, так как данные едва ли меняются часто.

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

    @mletov
    "WHERE CONCAT(',', fieldName, ',') LIKE CONCAT('%,' " + тут искомое значение +  "',%')"

    Идея куда думать.

    Но это с учетом ;)
    Сейчас вообще не важно то, на сколько хорошо или плохо написан запрос
    Ответ написан
    1 комментарий
  • Как исправить ошибку с паролем 1045?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Что тут предлагать? Логин и/или пароль от базы неправильные
    Ответ написан
    Комментировать