Задать вопрос
  • Как решить Fatal error: Uncaught Error: Call to undefined function pll_register_string()?

    ipatiev
    @ipatiev
    bossigorxxx, если плагин стоит, значит функции работают.
    Написано
  • Ошибка Invalid command 'php_value'?

    ipatiev
    @ipatiev Куратор тега PHP
    не нужен никакой модуль пыхи, надо поставить fpm
    Написано
  • Как спроектировать роутер?

    ipatiev
    @ipatiev Куратор тега PHP
    Скалярные типы можно передавать аннотациями. Ну или конфигом, как в старой Симфони.
    Ну или ручное связывание
    А почему не хочется контроллер в контейнер пихать? В любом случае других вариантов нет - созданием объектов с учетом их зависимостей занимается только контейнер.
    Написано
  • Ошибка Invalid command 'php_value'?

    ipatiev
    @ipatiev Куратор тега PHP
    так из-за этих дебильных php_value и не стартует.
    я и предлагаю забить на них пока и двигаться дальше

    конфиг в сотне разных мест можно задать. какой смысл сейчас упираться рогом именно тут?

    плюс там наверняка не какие-то сокровенные тайны написаны, а обычный мусор, который ламеры переписывают друг у друга не понимая смысла
    Написано
  • Ошибка Invalid command 'php_value'?

    ipatiev
    @ipatiev Куратор тега PHP
    ну вот если не стартанёт, то и надо разбираться.

    при том что не стартует он именно сейчас
    Написано
  • Как спроектировать роутер?

    ipatiev
    @ipatiev Куратор тега PHP
    Виктор Кожухарь, вот опять вас шатает по крайностям. Никакая "кодогенерация" и "RoadRunner" ту не нужны.
    Вы бы лучше ознакомились с тем, как работает роутер в связке с контейнером. Там нет ничего сложного.
    Он просто создаёт экземпляр контроллера, точно так же, как создаёт зависимости для него.

    А ещё лучше - попробовали бы написать реальный проект на основе своей "иллюстрации". С вас быстро слетит это шапкозакидательство.

    Одно дело писать "псевдокод", когда ты уже писал реальный, а сейчас упрощаешь. А совсем другое, когда просто выдумал идею из воздуха, а на любые замечания отвечаешь "я не тактик, я стратег!"
    Написано
  • Ошибка Invalid command 'php_value'?

    ipatiev
    @ipatiev Куратор тега PHP
    Я бы просто повыкидывал все эти php_value
    Написано
  • Как спроектировать роутер?

    ipatiev
    @ipatiev Куратор тега PHP
    Виктор Кожухарь вас куда-то не туда унесло. Сначала вы зачем-то пишете, что "ответ кроется в использовании интерфейса", при том что интерфейсы вообще никак не отвечают на вопрос "как внедрять зависимости".

    А потом придумали наивное решение создавать экземпляры ВСЕХ контроллеров при каждом запросе. То есть, вместо автоматизации, про которую спрашивал автор, вы предлагаете ему написать вручную код создания каждого используемого в приложении сервиса.
    Причём глупость этого решения (изначально неприемлемого из-за чудовищного перерасхода ресурсов) очень быстро выходит из-под контроля, увеличиваясь как снежный ком.
    Вы не подумали о том, что зависимости плодятся в геометрической прогрессии. Это только в фантазиях можно сделать new Model1(). И если бы так можно было, то проще было бы это делать в контроллере. Но в реальности модели нужен класс для выполнения запросов. Классу для выполнения запросов нужен класс с соединением к БД. Классу с соединением к БД нужен конфиг. Плюс всем нужны в разных комбинациях конфиг, логгер, мейлер, различные хелперы и куча всего.

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

    ipatiev
    @ipatiev Куратор тега PHP
    Правильно.
    А для вызова контроллеров служит специальный Контейнер внедрения зависимостей. Который создает (или переиспользует) нужные зависимости, и передает их в создаваемый контроллер.

    А вот как он узнает, какие именно нужны зависимости - это самый интересный вопрос :)
    Написано
  • Как избежать race condition при вставки новой записи в бд SQL, PHP?

    ipatiev
    @ipatiev Куратор тега PHP
    ctoburningmvp, только вот это всё - try, catch, echo getMessage - надо убрать. Этот код не имеет смысла при разработке и представляет угрозу в продакшене.
    Написано
  • Как сделать поиск по id по числу без преобразования?

    ipatiev
    @ipatiev
    Лев Салатов, можно и нужно. Причём одно другому не мешает.

    В strict mode БД будет не "не находить", а выдавать ошибку. А доводить БД до ошибки - это моветон. Так что валидация входящих параметров всё равно должна выполняться. Мои студенты делали что-то вроде

    function http_error($code, $message = "") {
        http_response_code($code);
        die($message);
    }
    if (!isset($_GET['id'])) {
        http_error(404);
    }
    $id = $_GET['id'];
    if (!ctype_digit($id)) {
        http_error(400);
    }
    $page = get_page_by_id($id);
    if (!$page) {
        http_error(404);
    }
    Написано
  • Как сделать поиск по id по числу без преобразования?

    ipatiev
    @ipatiev
    scooby_doe, наоборот, проблема есть, и автор как раз молодец, что обратил на неё внимание.
    Написано
  • Как поставить правильную кодировку в mysql-connector-python?

    ipatiev
    @ipatiev
    менял charset на utf8,

    Надо ещё раз поменять. Причем и collation тоже. или вообще убрать
    Написано
  • Ошибка в SQL запросе WHEN THEN как исправить?

    ipatiev
    @ipatiev Куратор тега PHP
    В нормальном коде пустые переменные ошибок не вызывают
    Написано
  • Почему после отправки формы обратной связи на почту приходят иероглифы?

    ipatiev
    @ipatiev Куратор тега PHP
    Refguser, жаль, вопрос был элементарный, я не ожидал что вы так жидко сольётесь.

    я устал метать бисер.

    Ну и то хлеб, не будете под ногами мешаться
    Написано
  • Ошибка в SQL запросе WHEN THEN как исправить?

    ipatiev
    @ipatiev Куратор тега PHP
    Главные причины проблем с кодом это наивность и самомнение.

    Что самое интересное - в других местах работает нормально...,

    - это конечно запредельная наивность.
    Начинающие программисты всегда пишут код так, как будто он будет работать в идеальных условиях. Данные всегда приходят корректные и из доверенного источника. "У меня код eval($_GET['command'])" работает отлично, проблем не доставляет!"

    А вот когда этот замечательный код перестаёт работать, или начинает делать то, о чем никто не подумал, то глазки нашего разработчика наливаются удивлением и даже обидой - "ну как же так, раньше ведь всё работало!"

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

    Не сошло.
    Написано
  • Почему после отправки формы обратной связи на почту приходят иероглифы?

    ipatiev
    @ipatiev Куратор тега PHP
    Refguser, ваша задиристость уступает только вашему невежеству :)
    Но вы делаете успехи.
    Один и тот же клиент принимает/отображает по-разному, отправленное с разных серверов.

    Теперь вам надо подумать, а почему он это делает.
    Подсказка для ответа на этот вопрос не раз давалась в этом обсуждении.
    Написано
  • Почему после отправки формы обратной связи на почту приходят иероглифы?

    ipatiev
    @ipatiev Куратор тега PHP
    Refguser, проблема в том, что и прошлый, и нынешний сервер отправляют один и тот же текст :)
    Написано