Задать вопрос
  • Зачем в обычном проекте может понадобиться использование __invoke?

    @Vitsliputsli
    Роми,
    Но я все равно не понял :)
    А почему мы просто не можем вызвать
    SomeClass::someStaticMethodInsteadInvoke()
    в чем именно преимущество Invoke перед обычными методами?
    // я просто пытаюсь понять, могу ли я где-то применить Invoke в своих проектах, и главное: нужно ли мне это?))

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

    @Vitsliputsli
    Как раз уровень изоляции. При правильно выбранном уровне хрен чего второй прочитает, пока первый не завершит свою транзакцию и не отпустит ресурсы.

    А вы применяли этот уровень изоляции на хорошо нагруженной системе?
  • Как защититься от двойного списания в многопоточном приложении?

    @Vitsliputsli
    DevMan, просто транзакции здесь недостаточно.

    Stalker_RED, а если 2 разных запроса с разными order_id?

    user_of_toster, а вы применяли его на хорошо нагруженной системе?
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    Максим Федоров, 15000 исключений при работе с СУБД, это 15000 ошибочных sql-запросов, так? Я не могу придумать ни одного варианта, когда такое было бы оправдано.
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    Максим Федоров, да это я понял, но мне интересен пример бизнес-логики, которая при нормальной работе использует 15000 исключений.
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    HellWalk,
    мне не интересно сейчас спорить по поводу терминов.

    Для меня удаление 99 из 100 Exception в коде - это удаление exception. Для кого-то это "правильное использование" (хотя для меня это костыли), сути правок не меняет.

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

    @Vitsliputsli
    Максим Федоров, а можно пример?
    Я понимаю ситуацию, когда мы обратились к базе, а там не нашлось объекта (например, он динамически создается) - упали в исключение, обработали его, т.е. создали нужный объект, и вернулись к нормальной работе.
    Но что за ситуация, когда нужно 15000 исключений?
  • Как можно ускорить работу Exception?

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

    @Vitsliputsli
    Круто, подводя итог, с тем, кто соответствует хотелкам конторы.
  • Как улучшить код?

    @Vitsliputsli
    Удалите все и будет идеально.
    Иначе, не совсем хорошо расписан phpdoc, плохо выбрано название, и т. д., и т. п. Конечно, все это так. Но работающий код гораздо эффективнее грёз об идеальном. Это не значит что нужно писать говно, просто находить баланс между сроками и требованиями, и кодом, который им удовлетворяет. Да, нужно правильно выбирать названия методам и переменным, но мы все не идеальны. Да, нужны проверки и защиты, но не всюду и везде.
    Поэтому в отрыве от всего кода, вопрос бессмысленен.
    Хотя вопрос есть, вы что phpdoc вручную писали? Есть же ide.
  • Сколько времени должен занимать такой запрос MySQL?

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

    @Vitsliputsli
    Роми, стандарт в php - это PSR. В ООП почти все признают SOLID и наверное GRASP, но это не стандарты, а принципы, т.к. не несут чётких требований. Всё остальное, ещё менее чёткое и ещё более спорное, в том числе шаблоны проектирования.
  • Как протестировать производительность функций начинающему 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 запросы на сторонний сервис.

    Только для этого фреймворк не нужен.