• Как очищать текст в php?

    @Vitsliputsli
    Добавлю, про "использую pdo". PDO с защитой от sql-инъекций не связан от слова совсем. Гарантированную защиту от sql-инъекций дает использование подготовленных выражений (и не важно в каком драйвере, PDO, pg, mysqli, odbc). Причем именно натуральных SQL подготовленных выражений, а не эмуляции. Практически же, и в эмуляциях сейчас достаточно высокая защита. Если же пользовательские данные - число, то достаточно использовать тип число, очевидно, что это тоже вполне эффективно.
    И разумеется речь про подстановку пользовательских данных как параметризованных значений. Если вы поля берете из пользовательских данных, вы явно что-то делаете не так.
  • Php Ratchet - как отследить разрыв соединения?

    @Vitsliputsli
    MasterCopipaster, если клиент не пошлет FIN по TCP, сервер не узнает, что соединение разорвано. Т.е. мы не можем узнать что клиент жив на транспортном, да и на прикладном уровне. Поэтому нужно реализовать на программном уровне, постоянную проверку, что клиент все еще жив. Вряд ли это есть в Ratchet, вещь простая, но в то же время очень сильно зависящая от вашей внутренней реализации.
    Это как один шлет ping, а второй отвечает pong. Не важно как конкретно это сделать. Раз в какой-то интервал времени сервер посылает запрос клиенту и ждет отведенный интервал времени, не получает ответа - считаем что клиент умер. Этого можно не делать, если и так видим, что пакеты от клиента приходят. Можно сделать еще проще, обязать клиент раз в какой-то интервал времени отправлять любой пакет.
  • Как задать окно в таблице до значение 0 в поле?

    @Vitsliputsli
    Антон Шаманов, with будет мало, а оконные функции это как правило аналитические.
  • Как задать окно в таблице до значение 0 в поле?

    @Vitsliputsli
    Антон Шаманов, нельзя сделать требуемое только через агрегационные функции. Здесь нужны аналитические, как автор и писал. Ну или в mysql, может получится через извращения с переменными.
  • Php Ratchet - как отследить разрыв соединения?

    @Vitsliputsli
    MasterCopipaster, эхо запрос внутри ws, по ответу, будете знать, что клиент жив.
  • Как использовать встроенный текстовый редактор linux и редактировать в нем файлы по ssh?

    @Vitsliputsli
    Павел, только чтобы форвардить иксы, они должны быть на сервере. Чего на нормальных серверах не бывает.
  • Как правильно организовать работу между разработчиками?

    @Vitsliputsli
    Не делите код на продовый и тестовый.
    Выкладывайте код и на 1ый, и на 2ый из гита.
    Автоматизируйте деплой на 1ый и на 2ый сервер.
  • Нужно ли фильтровать глобальные переменные в PHP?

    @Vitsliputsli
    Иван василичь,
    а то у меня получается в каждом методе в модели например нужно проверять а не пустая ли у меня пришла переменная? я понимаю что это не правильно

    В каждом методе модели это делать не нужно. Запись:
    public function method(string $arg)
    Жёстко фиксирует, что arg только строка, там уже не может быть null или int. Хотя php по прежнему преобразовывает типы.
    Или ещё лучше, передавайте в ваши модели объекты, само существование объекта должно гарантировать, что все его свойства уже не требуют дополнительных проверок.
  • Что пришло на смену кэшу запросов в Mysql?

    @Vitsliputsli
    Лентюй, но когда он полезен? Именно практически, решение для которого был бы важен именно кэш запросов. У нас есть bufferpull где данные и так кэшируются, смысл кэшировать сами запросы?

    Vitaly Karasik, даже если не смогли, вопрос в том, а нужен ли? В каком решении вам позарез нужен был именно кэш запросов?
  • Почему не стоит передавать аргументы в функцию по ссылке?

    @Vitsliputsli
    batyrmastyr, первые 2 абзаца звучат, как будто я предложил все передавать по ссылке, а все наоборот, я говорил, что есть разные инструменты, и они ни хорошие, и ни плохие.
    Исключить что? Отличный необходимый инструмент? Зачем?

    «ужасные последствия» всё же наступают

    Тут хоть с кавычками, хоть без, смысл что что-то пошло не так.

    И чем нам помогут генераторы?
  • Почему не стоит передавать аргументы в функцию по ссылке?

    @Vitsliputsli
    batyrmastyr, если ссылки так "ужасны" значит все объекты нужно сделать "неизменяемыми", почему так не сделали? Потому что дело не в ссылках. А на что предложите заменить встроенные процедурные функции использующие ссылки?
    Когда вы работаете с огромным массивом, как вы его будете передавать? Правильно, по ссылке, какие "ужасные последствия"? Никаких, но они будут, если вы так не сделаете.
    Исходя из всего перечисленного, еще раз, дело не в ссылках, а в непонимании, как они работают. А для того чтобы "выстрелить себе в ногу" есть много возможностей, но ссылки в этом не виноваты.
  • Как обработать все аргументы функции?

    @Vitsliputsli
    Shimpanze, нет, я пишу совсем про другое, что не нужно приводить данные в порядок здесь, делайте это заранее, на этапе валидации.

    Если же, посмотреть на задачу, как just fo fun, то для решения, можно нагородить такое:
    function foo( string $str, array $arr = [], int $int = 123 ) {
        $parameters = (new ReflectionFunction(__FUNCTION__))->getParameters();
        foreach($parameters as $parameter) {
            if ($parameter->getType()->getName()==='string') {
                $parameterName = $parameter->getName();
                $$parameterName = trim($$parameterName);
            }
        }
        var_dump( $str );
    }
  • Как избежать PHP Notice: Undefined offset?

    @Vitsliputsli
    Александр, в принципе согласен, но повторюсь, дело не в null, а в слишком широком диапазоне возвращаемых типов. Все что вы описали справедливо будет и для любых других типов, когда от функции ожидается только определенные типы, а она возвращает иные. И абсолютно согласен, что очень часто встречается проблема именно с null, но это нисколько не умаляет возможность вернуть null там, где это необходимо и ожидаемо.
  • Как избежать PHP Notice: Undefined offset?

    @Vitsliputsli
    Flying, корректный ответ на вопрос автора дал Rsa97.
    if (array_key_exists(0, $var)) { ... }, но довольно быстро становится плохо читаемым, если вложенность глубже. isset() в случаях более глубокой вложенности тоже не работает, а вот null coalescing - работает, поэтому он и был предложен

    null coalescing и isset не могут один работать, а второй нет. Они имеет одну и ту же проверку, т.к. первое - это сахар для второго. А вот array_key_exists совсем другое дело, она иначе реагирует на null.
  • Что пришло на смену кэшу запросов в Mysql?

    @Vitsliputsli
    Лентюй, а есть пример, когда кеш запросов полезен? Как СУБД в этом случае решает проблему инвалидации кэша?
  • Как избежать PHP Notice: Undefined offset?

    @Vitsliputsli
    Александр,
    люди поняли, что нул возвращать нельзя лет так 25 назад

    Почему нет? Такой же тип данных, как и остальные. Что тип возвращаемых данных должен быть как можно уже - да, это удобнее, проще контролировать вариативность. Но удобнее, не значит нельзя.
    К примеру, метод работающий с бд возвращает значение одной ячейки. Ячейка в базе имеет значение null, что в этом случае должен вернуть метод, если не null?
    Так что, кто эти люди и что конкретно они поняли?
  • Как избежать PHP Notice: Undefined offset?

    @Vitsliputsli
    Роман Юрьевич Ипатьев, это да, я тоже только сейчас понял, что обсуждаем не то, что решает задачу автора. Получилось, что я предлагаю вариант isset, а я как бы просто сравнил 2 конструкции, и совсем забыл про задачу.
  • Как избежать PHP Notice: Undefined offset?

    @Vitsliputsli
    Issue,

    Это как в ответе ниже?

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

    В вашем случае, скорее всего, будет достаточно заменить на $var[0] ?? null. Исходя из того, что существующий код работает и вас устраивает. Интерпретатор, когда натыкается на несуществующую переменную, идет дальше используя null вместо этой переменной. Поэтому $var[0] ?? null должно быть достаточно.
    Но это по-сути лишь подавление ошибок, нужно разбираться откуда эти обращения к несуществующему, а здесь уже нужно понимать логику. Собственно об этом Rsa97 и написал.
  • Как спроектировать базу данных слов?

    @Vitsliputsli
    судя по фразе "необходимо затем ещё удобно это всё селектнуть и запихнуть в один массив", вся работа будет с массивом с помощью языка программирования, а база нужна только, чтобы положить и забрать весь этот массив одним куском. А раз обрабатывать с помощью СУБД не нужно, размер ограничен 150шт, по-моему проще положить все в одно поле json.
  • Как спроектировать базу данных слов?

    @Vitsliputsli
    zxcursed, если просто забираете из базы все одним куском, то храните в json.