Ответы пользователя по тегу PHP
  • Почему php скрипт зависает после 10к итераций?

    @kazmiruk
    Потому что вы написали мягко говоря говнокод, который сжирает всю память. Спросить 10к результатов и записать их все в один массив очень плохая идея. Убираете сохранение промежуточного результата, функция просто возвращает true/false и вызывается 10к раз, или 100к. А в нашем случае вызывается функция в которую передается огромный массив и возвращается еще более огромный массив.
    Ответ написан
    2 комментария
  • Что это такое (new someClass($_POST));?

    @kazmiruk
    Подход называется говнокод. Почитать - любую статью из гугла по запросу.
    Ответ написан
    Комментировать
  • Что лучше pymorphy2 vs phpMorphy для обработки русских слов?

    @kazmiruk
    Я бы взял pymorphy (я даже не выбирал в принципе, так как php не приемлю, но не суть), так как phpmorphy не поддерживается больше разработчиком (последнее изменение 4 года назад) и Вы останетесь со всеми вопросами и багами один на один.
    Какой инструмент имеет круче предсказатель - накатайте тестик по формированию частотных отношений лемм и натравите на хабр, к примеру. А потом смотрите на результат (думаю он не будет отличаться даже) На pymorphy это примерно 20 строк кода. На phpmorphy думаю не многим больше. Результат работы pymorphy по определению части речи и выдергивания лемм меня более чем удовлетворил.
    По скорости - разработчик pymorphy заявляет, что одной из задач для него была оптимизация, поэтому есть шанс, что работать будет быстрее.
    Ответ написан
    Комментировать
  • Какое filestorage решение выбрать?

    @kazmiruk
    Поднимите WebDAV. В качестве api к WebDAV - запросы через curl (хотя какой-нибудь велосепедостроитель обязательно написал уже обертку, это ведь php).
    Ответ написан
    Комментировать
  • Как объективно протестировать производительность node.js и PHP в запросах к mysql БД?

    @kazmiruk
    Как уже писали выше нода асинхронна, поэтому получилось и быстрее. Но это не значит, что она быстрее. Просто Вы не учли эту особенность при написании теста. Как работает тест в php:
    цикл - (отправить запрос - подождать результат) - вывести время работы; как работает Ваш тест на ноде - цикл - (отправить запрос) - вывести время отправки всех запросов - начать получать результаты. Т. е. function(error, result, fields){} не попадает в замер.
    Ответ написан
  • Как выбрать всех работников, которые не принимают участие в данном тренинге?

    @kazmiruk
    SELECT * FROM employee WHERE employeeID NOT IN (SELECT id_employee FROM employee_to_training WHERE id_training = < id >)
    Ответ написан
    1 комментарий
  • Сложение чисел PHP?

    @kazmiruk
    printf("%06d", 000000 + 000001);
    или если нужно в переменную, то
    $x = sprintf("%06d", 000000 + 000001);
    Ответ написан
    Комментировать
  • Как определить наиболее подходящий формат изображения?

    @kazmiruk
    Метрики для определения формата не всегда однозначны и трудно формализуются. Создать какие-то приближенные методы возможно, но они будут работать не со 100% результатом (хотя, возможно, и близким к ним). Работал над чем-то подобным для обработки наборов изображений поступающих роботу и ничего адекватного для С++, python, C# не нашел. По пхп не точно, но предполагаю, что ситуация аналогичная. Ну и подобную задачу решать на пхп не самый лучший вариант, так как для распознавания в любом случае потребуется разбор изображения, получение производных и т. п. в чем пхп явно не лучший игрок.
    Ответ написан
  • MYSQL сложная выборка многое ко многим, как организовать?

    @kazmiruk
    SELECT *
    FROM Peoples
    INNER JOIN peoples_to_region
    ON Peoples_to_region.people_id = Peoples.id AND Peoples_to_region.region_id IN ({region_list})
    INNER JOIN Peoples_to_metros.people_id = Peoples.id AND Peoples_to_metros.metro_id IN ({metro_list})

    Ну и peoples - "народы" переводится, а не "люди"
    Ответ написан
  • Как отправить ответ на AJAX запрос раньше окончания выполнения скрипта PHP?

    @kazmiruk
    Можете использовать fastcgi_finish_request, если на сервере у вас стоит php-fpm. Его суть в том, что скрипт висит еще некоторое время (пока не выполнятся все операции) после ответа клиенту. Но это неправильный путь. Вреное решение будет примерно такое: вы присылаете аякс, валидируете данные, добавляете в очередь сообщений (я люблю gearman, но вы можете использовать любую другую) запись, что надо отправить письмо. Как только в очередь добавляется запись обработчик хватает его и отправляет.
    Ответ написан
    Комментировать
  • Может ли в highload проекте c архитектурой frontend + REST backend использоваться PHP на обеих сторонах?

    @kazmiruk
    Вы изначально неверно поняли картинку, посмотрите внимательно какие технологии используются на фронтэнде (HTML, CSS, JS). Обычно делается так:
    бекэнд - любой язык, REST
    фронтэнд - nginx отдает index.html (условно говоря на любой запрос) + стили + js (много кода на js. Фактически вся логика сайта написана на js). JS код уже смотрит на текущий адрес страницы, производит роутинг, рендерит layout (пока ни одного запроса к бекэнду, кроме инициализирующего), затем по ссылке он понимает какие данные ему нужны от бекэнда (к примеру список задач на сегодня) и делает асинхронный запрос (из js'а. Это может быть несколько запросов к разным частям апи). Получив ответ на этот запрос (в виде json) js разбирает его и рендерит на шаблон (все это на js). Таким образом мы получаем: бекэнд не занимается рендерингом шаблонов, значительная часть логики отрисовки и роутинга находится на клиенте и он сам с ней разбирается, гибкость системы (бекэнд может использоваться для мобильных приложений, к примеру).
    То, что описали Вы - трудно назвать правильной архитектурой. По сути Ваш "фронтэнд" - обычный прокси запросов, который все также генерит Html на сервере (тратит ресурсы сервера, а не клиента) + еще курлом гоняет бекэнд. Прироста производительности с такой архитектурой Вы не получите.
    Ответ написан
    2 комментария
  • Стоит ли использовать вместо PHP / Ajax для сайта общения/знакомств Node.js?

    @kazmiruk
    Стоит. Задача очень хорошо накладывается на модель асинхронных событий. Дергать сервер аяксом, чтобы проверить есть ли новые сообщения - не риал тайм, а если дергать часто (чтобы приблизиться к риал тайм), то создадите сами себе проблемы в виде ддоса запросами от клиентов.
    Ответ написан
    Комментировать
  • Структура и архитектура приложения

    @kazmiruk
    1. Лучше сокет, так как не надо будет впустую теребить сервер каждые 3 секунды. Но надо помнить про поддержку сокета браузерами
    2. Номер заявки. Применял похожу схему - относительно медленно работает передача из пхп через сокет, особенно если много данных. Достать из мускуля по PK очень дешевая операция.
    Ответ написан
    Комментировать