• Можно ли на сервере в соответствии с принципами REST хранить хоть какоето состояние клиента?

    @Vitsliputsli
    Владимир Коротенко, ваша статья говорит о том же, о чем я написал выше. Stateless в rest - это особенность построения архитектуры клиент-северного взаимодействия, причём здесь протоколы транспортного уровня?
  • Можно ли на сервере в соответствии с принципами REST хранить хоть какоето состояние клиента?

    @Vitsliputsli
    Владимир Коротенко, что восстановить? Про восстановление речи не идет. stateless REST подразумевает, что каждый запрос не зависим и имеет все необходимые параметры, чтобы его обработать отдельно, т.е. сервер не хранит никакой информации о состоянии клиента.
    vrazbros, по концепции сервер не должен хранить состояния клиента, но может передавать данные в сторонние сервисы (СУБД тоже считается сторонним) в которых состояние фиксируется. Но для сессий php получается что принцип нарушается. Но я не вижу в этом большой проблемы, главное чтобы формирование запросов не подразумевало хранение состояния.
  • Можно ли сделать поддержку json type под mysql 5.5?

    @Vitsliputsli
    Akina, тогда отличный сериализатор, наоборот автосоздание вещь очень опасная, поэтому и не пользуются нативным serialize.
  • Можно ли сделать поддержку json type под mysql 5.5?

    @Vitsliputsli
    Akina, а этот рукописный serialize тоже автоматически создавал объекты?
  • Можно ли сделать поддержку json type под mysql 5.5?

    @Vitsliputsli
    Используйте текст, если только логика по парсингу json уже не затянута в бд. Разница не велика в плане производительности, индексы все равно не построить (есть, конечно, костыли, но их и для текста можно насоздавать).
  • Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    @Vitsliputsli
    Анастасия,
    Может быть вы всё-таки прочтёте вопрос? Тут очень много пользователей, которые пишут свои "ответы" и "комментарии", не читая сам вопрос. Вы даже сейчас не смогли прочесть его. Я не знаю, зачем вы вообще заходите на этот сайт. Я попросила прочесть вопрос уже 3 раза и вы ни разу этого не сделали.

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

    Дайте next после последнего.

    if (next($arr) === false) {
    	reset($arr);
    }
    echo current($arr);
  • Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    @Vitsliputsli
    Анастасия, ок, читаем:
    Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    Пишу повторно:
    Предыдущее относительно заданного $i;
    [$i,$value] = getElementFromArray(--$i,$arr);
    Следующее относительно заданного $i;
    [$i,$value] = getElementFromArray(++$i,$arr);

    Вполне возможно я что-то упускаю, но оттого что вы пишете "нет" с восклицательным знаком и капсом "пожалуйста" ничего не изменится. А вот если напишите, где я ошибся, то возможно процесс пойдет. Попробуйте.
  • Как можно сделать чтобы из друх таблиц информация объединялась в одну?

    @Vitsliputsli
    alexey_khorin,
    Запрос рассматривался,как вариант,но желательно,без запросов

    Если это желательно относится к тому, что запрос из одной таблицы будет выполняться быстрее чем из 2х через join, то есть представления материализованные - можно посмотреть в эту сторону.
  • Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    @Vitsliputsli
    Анастасия,
    Мне нужна функция, которая будет возвращать предыдущие или следующие элементы массива относительно заданных.

    Предыдущее относительно заданного $i;
    [$i,$value] = getElementFromArray(--$i,$arr);
    Следующее относительно заданного $i;
    [$i,$value] = getElementFromArray(++$i,$arr);

    Мне нужно left и right передавать. Где в вашей функции оно?

    Это уже вами придуманная реализация, в вопросе ни о каких left и right речи не было.

    внимательно прочтите вопрос, а потом изучите как эти четверо работают

    Внимательно прочтите ответ "если нужно просто итерировать массив, есть функции...". Если вам не нужно прыгать на произвольный элемент, а из фразы "То есть это слайдер с данными из БД. И мне нужно листать его. Две кнопки "Далее" и "Назад"." можно сделать вывод что не нужно, то функции итерации массива вполне подходят.
  • Как подключиться один раз к базе?

    @Vitsliputsli
    index0h,
    В результате пришли к следующему паттерну. Перед обработкой каждого сообщения из очереди проверяем подключение к БД, если с ним что-то не так - завершаем процесс, сообщение отправляем на повторную обработку, а уже supervisor перезапускает процесс.

    Зачем такие сложности? К примеру, обращаемся к БД, она возвращает Exception, наверное чтото вроде Connection has closed, пересоздаем соединение в воркере и отправляем заново тот же запрос.
  • Как можно достать следующий и предыдущий элемент относительно $array[$i]?

    @Vitsliputsli
    Анастасия, имхо, лучше так:
    function getElementFromArray(int $i, array &$array){
      if ( $i < 0 ) {
        $i = count($array) - 1;
      } else if ( $i >= count($array) ) {
        $i = 0;
      }
      return isset($array[$i]) ? [$i,$array[$i]] : [null,null];
    }
    
    [$i,$value] = getElementFromArray(--$i,$arr);

    меньше вариантов неявного поведения, плюс возвращаем текущий ключ массива, он вам тоже нужен, насколько я понял.
    Либо, если нужно просто итерировать массив, есть функции:
    current
    next
    prev
    key
  • Transactional messaging. Какие существуют реализации транзакционных очередей сообщений?

    @Vitsliputsli
    ksimmi, я имел ввиду, что мне не очень понятна несогласованность сервисов на этапе завершения транзакции. Да, можно чтото пускать асинхронно, если это допустимо, но основные сервисы должны быть согласованы в момент завершения транзакции, несогласованы могут быть только второстепенные сервисы. Иначе мы теряем часть данных, или нет? Для меня это звучит, как, мы подтвердили клиенту что отправили деньги, а в это время все еще идет проверка возможно ли это.

    Если 1 транзакция будет 5 раз прогонят чтото через polling publisher - это будет гарантировано медленно. Но зачем? У вас же есть (или будет) Kafka/Rabbit/Nats?
    По поводу OUTBOX в Transaction log tailing, согласен, это лучшее решение. Но остаются те же вопросы, не смотрели, как данные забирают из журнала? По gtid? Как воркер определит откуда продожать чтение после рестарта? И самое интересное, как это читать многопоточно?
    Если OUTBOX неизменен, то как вы определяете, какая строка обработана, а какая еще нет, какие записи можно чистить? Тоже по gtid?
  • Функции по "Чистому коду" - нужно ли это?

    @Vitsliputsli
    В приведенной Ilnur рецензии очень хорошо написано про такой код Мартина: "Невероятно трудно понять, что делает любой из этих кодов, потому что все эти невероятно крошечные методы почти ничего не делают и работают исключительно через побочные эффекты". Т.е. Мартин упоролся до того, что методы потеряли смысл, какие бы цели он не преследовал, но читаемость кода одно из важнейших свойств, и раз он его потерял, значит что-то он делает не так.
  • Функции по "Чистому коду" - нужно ли это?

    @Vitsliputsli
    sve-kai-itmo, да, перебарщивает. Всегда нужно подходить критически к таким вещам, если непонятно зачем это вообще нужно, то не стоит этому слепо следовать.
    Как уже написали, "Совершенный код" гораздо более адекватный, с объяснениями почему и зачем так, лучше взять его.
  • Нужно ли закрывать соединение, созданное повторно через другую переменную?

    @Vitsliputsli
    Igorek98, если, конечно, в коде на каждый запрос не открывается новое соединение. Соединение, как правило, должно быть одно на все запросы.
  • Как проверить существование поля в таблице?

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

    Как проверить существование поля в таблице?

    SHOW COLUMNS - именно такой вариант ты написал как ответ. Хотя, бредово проверять во время работы существование полей в таблице.

    Существует таблица test_category, как проверить в ней существование категории, чтобы не пытаться по новой добавить уже существующую?

    Далее там делается select с alt_name='test' и вопрос как "Как выполнить проверку, чтобы вновь не добавить категорию test?"
    Собственно все здесь отвечали именно на этот, второй вопрос.
  • Как проверить существование поля в таблице?

    @Vitsliputsli
    Видно, навыки телепатии не сильно помогают, раз автор как решение выбрал:
    SHOW COLUMNS
    , а все предложенные решения совсем про другое.
  • Бизнес и продажа фичей важнее качества кодовой базы?

    @Vitsliputsli
    Рональд Макдональд, потрясающий диалог, "вы все неправильно поняли, но хрен вы вытяните из меня, что я имел ввиду на самом деле". Отсюда и ваши "специально обученные мартышки", которые ни за что не отвечают, и "злой бизнес", который во всем виноват.
  • Недостатки PostgreSQL?

    @Vitsliputsli
    Ерлан Ибраев, а, вы про это, да, каждое поле может иметь свою кодировку - это нормально, и вероятно даже где-то удобно, мне тоже это никогда не было нужно, но кому-то может понадобится.
  • Бизнес и продажа фичей важнее качества кодовой базы?

    @Vitsliputsli
    Рональд Макдональд,
    Ну уж извините, дальше не читал. Я такого не утверждал.

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