Задать вопрос
  • Какой стек выбрать для бэкэнда?

    @dimuska139
    Backend developer
    Важна производительность, поэтому и стал вопрос о переходе от PHP/Laravel

    Тут вообще нет связи. Узким горлышком в таких проектах является не язык, на котором приложение написано, а база данных. Если медленно выполняются запросы, то хоть на ассемблере бэкенд напиши - быстрее сервер отвечать не будет. Ну может пару миллисекунд выиграете, но на фоне времени выполнения запроса в БД и сетевых издержек это смешные цифры - даже не заметите разницу. А если речь идёт о Django, то это вообще не про производительность, потому что этот фреймворк довольно тяжёлый сам по себе, да и Python - это далеко не самый производительный язык даже среди скриптовых.

    Если речь идёт про большие нагрузки, то тоже язык тут не особо при делах, потому что обеспечиваются они масштабированием, кешированием и оптимизацией запросов к БД. Язык приложения тут вообще не при чём - разве что памяти какой-то больше жрёт, какой-то меньше. 200к в сутки - это в среднем всего лишь 2-3 запроса в секунду - то есть вообще ни о чём. Понятно, что распределение посещаемости вряд ли непрерывное равномерное, но тем не менее 200к даже если за один час - это всего лишь 140 запросов в секунду. С такой нагрузкой справится любой современный язык и фреймворк даже без масштабирования, кстати.
    Ответ написан
    1 комментарий
  • Как написать функцию на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Примерно так:
    function encodeWav(array $raw) : array
    {
        $result = "RIFF"
            . pack('V', count($raw))
            . "WAVEfmt "
            . pack('V', 16)
            . pack('v', 1)
            . pack('v', TTS_DEFAULT_OPTIONS['numChannels'])
            . pack('V', TTS_DEFAULT_OPTIONS['sampleRate'])
            . pack('V', TTS_DEFAULT_OPTIONS['sampleRate'] * 4)
            . pack('v', 4)
            . pack('v', 16)
            . 'data'
            . pack('V', count($raw) * 2);
        $volume = 1;
        foreach ($raw as $unit) {
            $result .= pack('v', $unit * $volume);
        }
        return [
            'type' => 'audio/x-wav',
            'content' => $result
        ];
    }
    Ответ написан
    2 комментария
  • В компе стояла оперативка DDR3 2 Гб 1600 МГц ( 1,65 V )- 2 шт. Добавил DDR3 2 Гб 1333 МГц ( 1,5 V )- 2 шт. Почему не запускается?

    Zoominger
    @Zoominger
    System Integrator
    1. Вставьте старую пару.
    2. Выставите в BIOS принудительно частоту 1333 МГц.
    3. Вставьте дополнительно новую пару.
    Всё.
    Перед каждым шагом ПК надо выключать, конечно.
    Ответ написан
    Комментировать
  • Как правильно проверить код ответа для списка ссылок?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    get_headers(), желательно использовать HEAD-запрос, а не GET, в доке есть пример как это делать.
    Ответ написан
    Комментировать
  • Как привести массив к виду?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    <?php
        $arr = ['Слово 1', 'Слово 2', 'Слово 3', 'Слово 4'];
        $arr2 = array_chunk($arr, 2);
        print_r($arr2);
    Ответ написан
    Комментировать
  • Какое приложение есть для развертывания базы данных в памяти?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Приложение, которое позволяет посмотреть таблицы по дампу, называется СУБД
    Ответ написан
    2 комментария
  • Как научиться правильно использовать классы?

    briahas
    @briahas
    ObjC, Swift, Python
    Ваш вопрос относится к архитектуре приложения, а не к "как правильно использовать классы".

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

    Мой ответ - пишите как хотите (это в себе подразумевает и "как нравится" и " как легче" и "как левая пятка захочет"). Вы только учитесь, и если вы не гений, то, полюбому, сначала напишите не правильно. Так что - тренируйтесь, и , как следствие, учитесь.
    Ответ написан
    9 комментариев
  • Как вложить шаблон в шаблон (исправить мою ошибку проектирования в коде)?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я же уже отвечал на этот вопрос. С готовым примером кода, где как раз и показано, как вкладывать шаблоны друг в друга.
    А вас настолько подкосила детская проблема с путями к файлам на кривом сайте, что сам ответ вы, похоже, даже не прочитали. Зачем было спрашивать?
    Ответ написан
  • Что означает данное выражение?

    Aetae
    @Aetae
    Тлен
    0 и более подряд символов л, <пробел> или ".

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

    @pfg21
    ex-турист
    вариант: от импульса стат.электричества сдох бп.
    это обычно происходит когда за окном стабильно ниже -10.
    воздух в протапливаемом доме сухой, плюс множество шерстяных и синтетических теплых одежек, что позволяет накапливать на теле человека большие стат.потенциалы.

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

    на этом бп проверить все напряжения.
    Ответ написан
    Комментировать
  • Почему все файлы добавляются в коммит?

    DevMan
    @DevMan
    именно из-за них: любое изменение в файле (вайтспейс и/или перенос строк) – измененный файл.
    Ответ написан
    Комментировать
  • Какая разница между пакетами, зависимостями, extensions, модулями?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Обычно это одно и то же в контексте дополнений к php или библиотек в ОС, от которых зависят эти дополнения.
    Тут на реддите был интересный топик, который раскрывает нюансы
    What's a difference between PHP extension and PHP ...
    Ответ написан
    Комментировать
  • Можно ли отправить в CURLfile только что полученный файл, не записывая его на диск?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    В PHP 8.1 появится нативный класс для этого CURLStringFile
    https://www.php.net/manual/ru/migration81.new-feat...

    Для версии PHP < 8.1 можете использовать полифилл
    if(!class_exists('CURLStringFile')) {
    
    class CURLStringFile extends CURLFile {
        public function __construct(string $data, string $postname, string $mime = "application/octet-stream") {
            $this->name     = 'data://'. $mime .';base64,' . base64_encode($data);
            $this->mime     = $mime;
            $this->postname = $postname;
        }
    }
    
    }
    
    $jpg_curlfile = new \CURLStringFile($res, 'screenshot.jpg', 'image/jpeg');
    
    $ch = curl_init('http://example.com/upload.php');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $jpg_curlfile]);
    curl_exec($ch);


    2. Можно полностью эмулировать Multipart/form-data и вручную расставлять boundry и тд
    3. Можно использовать временные файлы функцией tmpfile() и тогда файл сам удалится при завершении скрипта (кроме аварийных случаев завершения)
    Ответ написан
    Комментировать
  • Что не так с функцией?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Настал момент познакомиться с такими понятиями, как отладка и безопасное выполнение SQL запросов.

    Программисты не задают посторонним вопрос, "почему мой код не работает".
    Они задают его своему коду.

    Вы уже начали отлаживать свой код, выводя промежуточные результаты. Это очень хорошо. Но почему-то тут же остановились

    Ну если запрос не находит записей - разве не логично вывести его на экран и посмотреть, что с ним не так.

    А после того, разберётесь с запросом, надо будет его переписать на подготовленные выражения. Потому что вот это вот - это какой-то позор
    Ответ написан
    Комментировать
  • Как реализовать не могу понять как убрать фон?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Формат jpeg в который вы сохраняете картинку в конце imageJpeg($image); не поддерживает прозрачность
    Используйте для сохранения формат поддерживающий прозрачность, например: png, webp, gif
    Ответ написан
    1 комментарий
  • Как сделать вывод последнего сообщения между двумя юзерами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сообщение - это три значения: id, from_id (отправитель), to_id (получатель), msg (сообщение).
    Точно три??? А то я плохо считаю на пальцах... А еще неплохо было бы дату сообщения как то хранить, и собсно по ней сортировать...

    Мы получим дупликаты. Как поступить?
    Дубликаты чего?

    Как поступить?
    Зависит от того что вам нужно, в приведенных запросах вы получаете всю выборку, так как лимит на количество записей у вас не обозначен. Последний запрос с ограничением в одну запись я думаю подойдет, но я бы все же рекомендовал добавить дату (чисто по логике- хотелось бы знать кто и что когда кому отправлял) и уже по дате делал ордер.
    Ответ написан
    Комментировать
  • Как отличить отправку формы методом POST от обновления страницы в браузере, при котом повторно отправляются те же самые данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Просто в нормальном коде такой хрени не происходит. Даже если так случилось что отправка у вас методом пост, ну допустим надо так, то при обработке запроса на сервере делается редирект методом гет, по этому при перезагрузке ничего не отправляется повторно.
    Ответ написан
    Комментировать
  • Как протестировать производительность функций начинающему php-разработчику?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как абсолютно верно заметил Роман Юрьевич Ипатьев, проблема не в вызове аргументов, а в абсолютно нелогичном подходе к архитектуре, которая тут просто швах...

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

    Файл RouteController.php обрабатывает URL
    уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

    и делает вывод о типе контроллера (гость, авторизованный пользователь или администратор).
    Как тип контроллера соотносится с ролью пользователя?

    Создаёт объект этого контроллера и отправляет в него аргументами (str)имя контроллера и (str) полученный URL.
    У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

    Эти аргументы попадают в родительский контроллер файла Controller.php и оттуда далее используются в условном ветвлении и передаются в соответствующие функции, где дальше из этих функций опять передаются в нужные функции.
    Сложнааа, слоожжнаа (с) Карина. Очень запутанно и очень странно работает ваша творческая мысль.

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

    Про то как оно примерно должно работать рассказывать наверное не стоит, чтобы не смутить ваш творческий поиск готовыми решениями. Если будет интересно - Дмитрий скинул вам замечательный курс от Елисеева, прям рекомендую.
    Ответ написан