Задать вопрос
  • Как протестировать производительность функций начинающему php-разработчику?

    @Vitsliputsli
    AgentSmith72,
    дело в том что вы просто нарисовались здесь не принеся ни байта полезной информации. Во мне ли дело или в вас пустословах?

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

    @Vitsliputsli
    AgentSmith72,

    Vitsliputsli, ты ничего не понял.

    Тебя что головой роняли в детстве? Я спросил о подходе, а именно как люди делают, гоняют переменные или хранят в свойствах, а вы имбецилы мне тут дичь втираете про мой идеальный код.

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

    @Vitsliputsli
    AgentSmith72,
    Знакома вам функция?

    $data = getrusage();

    Вы опрос проводите?

    Я так и написал..

    Неа, вы предлагали с точностью наоборот.

    Да я уже понял, что вас отвлекает код от сути вопроса.

    Ага, код в разработке - это отвлекающий фактор, философия на первом месте.

    Дело не в объекте рефлексии, сама рефлексия подразумевает проанализировать свой код.
    Разумеется так никто писать не будет. Это просто метафора на подход к работе с информацией из памяти.

    Именно, дело не в рефлексии, а в объекте.
    Да, я уже понял, что вы к разработке подходите только с точки зрения пофилософствовать.
  • Как протестировать производительность функций начинающему php-разработчику?

    @Vitsliputsli
    AgentSmith72,
    ..причём тут код, вопрос о разнице в подходах, измерении скорости скрипта и затрат памяти.

    Когда обсуждаем код, он всегда причем. Какие еще подходы в измерении скорости и затрат памяти? Кроме как засечь время и посмотреть расход памяти.

    Считаю крайне неэтичной, привычку использовать память, чтобы хранить там всякую дичь и постоянно использовать её, хотя можно обойтись без этого.

    Логично, если все работает без дичи, то она и не нужна.

    Хотите оценить мой код, изучите мои комментарии с ThunderCat, там внизу присутствует код RouteController.

    Речь не про оценку, а про то что по коду гораздо проще понять что вы имеете ввиду, чем по словесному описанию. И уж тем более не проводить розыск кода.

    ..написали бы как и для чего выделяется память, было бы полезней намного..

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

    @Vitsliputsli
    Роман Юрьевич Ипатьев,
    ну в реальной практике не обойтись без использования имён полей на основе пользовательского ввода

    Разумеется нужны динамические запросы, и они могут формироваться на основе запросов пользователей. Но поля в таких запросах не берутся из пользовательских данных, выбираются на их основе - да, но не сами пользовательские данные подставляются в запрос. А потому их можно подставлять прямо в запрос и никакие плейсхолдеры prepared statements здесь не нужны. Т.к. это не данные.

    Jesse Pinkman, неплохо, как функция в составе обертки для работы с БД. Пока сами разработчики не косячат вполне устойчива к инъекциям (т.е. названия таблиц и полей должны задаваться только внутри). Насчет global правильное замечание, но с этими проблемами столкнетесь тогда, когда будете подменять этот объект (при его расширении или при тестировании).
  • Как правильно переписать код из PDO в процедурный стиль?

    @Vitsliputsli
    krypt3r, заканчивается 2021 год, а Mysql до сих пор не умеет нормально работать с prepared statements. Что поделать, мир не совершенен.
    Здесь нет подстановки внешних данных, поэтому проблем не будет с sql-инъекциями. Хотя, конечно, лучше бы кастануть в int, чтобы не сомневаться. Да и вряд ли это сознательное решение автора. А замена на mysqli с его убогим синтаксисом - очень странное решение.
    Даже иинтересно, что сподвигло автора на такой шаг.
  • Что лучше использовать доктрину, ActiveRecord и Миграции в yii2?

    @Vitsliputsli
    Active Record и Doctrine принципиально разные подходы. К yii2 active record прибит гвоздями, поэтому возможны сложности при отказе от него. Обычно модели в yii2 генерятся на основе таблиц в базе.
    Кто-то скажет что Доктрина лучше, т.к. все описываем в моделях, а база формируется на этой основе. Кто-то скажет, что yii2 много удобных инструментов именно под AR. А кто-то скажет, что с ORM теряем контроль над базой, что недопустимо для больших проектов.

    цель использования фреймфорка использовать rest запросы на сторонний сервис.

    Только для этого фреймворк не нужен.
  • Как заставить использовать индекс в сортировке?

    @Vitsliputsli
    Ни один из индексов не используется полностью, только первая часть user_id, по которой делили таблицу. Поэтому эти индексы практически равнозначны, а short_ndx выбран лишь потому, что он меньше по объему.
    Если у вас версия MySQL младше 5.7.3, то она не поддерживает индексы для партиционированных таблиц.
  • Где найти примеры качественной архитектуры на PHP?

    @Vitsliputsli
    Валентин, я в общем согласен, но вот в каких случаях "прямые селекты в БД из шаблона будут оправданы", даже интересно?
  • Как очищать текст в 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 абзаца звучат, как будто я предложил все передавать по ссылке, а все наоборот, я говорил, что есть разные инструменты, и они ни хорошие, и ни плохие.
    Исключить что? Отличный необходимый инструмент? Зачем?

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

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

    И чем нам помогут генераторы?