Задать вопрос
  • Php самостоятельно не способен работать с server sent event?

    Stalker_RED
    @Stalker_RED
    lexstile, у nginx по умолчанию лимит в 512 подключений, и он не случайно такой. При этом не так важно SSE там или вебсокеты.
    Да, можно накрутить лимит побольше, но потом вы упретесь в количество TCP-соединений (обычно 1024 ограничение в ОС), можно подкрутить и его, но упретесь еще во что-нибудь. В общем будьте готовы, что с ростом подключенных пользователей вам придется масштабировать серверы.
    У вебсокетов на ноде немножко веселее, известны случаи, когда выжимали все 65 тысяч соединений на один ip адрес, но придется постараться.

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

    Stalker_RED
    @Stalker_RED
    Дмитрий, 10 лет - не приговор, сильно зависит от того, какое именно железо. У меня до сих пор живет комп который был собран в декабре 2008, на данный момент от изначальной сборки осталась мамка, память и корпус. Им уже полных 14 лет. и они отлично себя чувствуют.

    Изначально Core 2 duo e7300 / msi p35 neo-2 / gtx260 / 4Gb.
    Позже был докуплен SSD, память увеличена до 8, проц заменен на ксеон, видео на radeon 5870, и эта тачка работает до сих пор.

    В возрасте 9-10 лет на ней летала вин7, можно было открывать большие проекты в IDE, и даже в AAA-тайтлы можно было поиграть - ведьмак, цивилизация 5, elite dangerous до выхода апдейта с посадкой на планеты вполне себе летала.

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

    Stalker_RED
    @Stalker_RED
    Дмитрий, эта материнка сможет 4гига ддр2, и все.

    Проще на авито найти в сборе, вот с третьего клика нашлось
    5900р - Intel core i3 2100 4gb 120GB SSD
    Может и выгоднее что-то есть.
  • Посоветуете проекты для домашнего Linux сервера?

    Stalker_RED
    @Stalker_RED
    astar7922,
    Я вас понимаю, каое-нибудь управление шторами или выключатели настенные менять в съемной квартире совсем не хочется. Но есть штуки, которые легко забрать с собой при переезде.

    Несколько управляемых лампочек - и у вас уже пусть и не везде, но уже умный свет.
    Парочка беспроводных датчиков температуры/влажности саами по себе ничего кроме мониторинга не делают. Добавляем ик-модуль - и можно рулить кондиционером.
    И умные розетки типа tuya или tapo тоже могут чем-то простым порулить.
  • Help с роутером PHP?

    Stalker_RED
    @Stalker_RED
    Atom54, переходить на ООП стоит, со временем оцените. Буквально вчера отвечал на подобный вопрос.

    Говнокод вот почему:
    stalkerred.xtreemhost.com/profile/Vasya/azaza
    stalkerred.xtreemhost.com/profile?hello=world&q=Vasya
    ...и все сломалось, потому что обработку параметров вот так по тупому делать не стоит.
    Специально для подобных штук есть parse_url() и parse_str(), в сумме с регулярками можно сделать совсем хорошо.
    А теперь еще задумайтесь как обработать POST.
  • Help с роутером PHP?

    Stalker_RED
    @Stalker_RED
    Atom54, вы дали пример URL, и что дальше?
    Вот я написал роутинг который обрабатывает 4 вида ссылок

    $actionShowProfile = function($matches) {
        $userName = $matches[1];
        echo "Это профиль юзера $userName";
    };
    $actionShowBalance = function($matches) {
        $userName = $matches[1];
        echo "Это баланс юзера $userName";
    };
    
    
    $routes = [
        '/profile\?q=(.+)/' => $actionShowProfile,
        '/profile\?user=(.+)/' => $actionShowProfile,
        '/profile\/(.+)/' => $actionShowProfile,
    
        '/balance\/(.+)/' => $actionShowBalance,
    ];
    
    foreach ($routes as $rule => $action) {
        if (preg_match($rule, $_SERVER['REQUEST_URI'], $matches)) {
            $action($matches);
            exit;
        }
    }
    echo 'Error 404';
    exit;

    И он даже работает, можете проверить
    stalkerred.xtreemhost.com/profile/Vasya
    stalkerred.xtreemhost.com/profile?user=Kolya
    stalkerred.xtreemhost.com/profile?q=foo
    stalkerred.xtreemhost.com/balance/Vasya

    Можно подставлять любые значения.
    Осталось только в класс завернуть.
    Так вы хотели? Если да. то я готов вам рассказать почему это говнокод и сколько в нем проблем.
  • Help с роутером PHP?

    Stalker_RED
    @Stalker_RED
    Atom54,

    есть такая штука как PSR, так вот модули из разных фремфорков совместимые с PSR - можно взаимозаменять.
    То есть если ваш проект следует рекомендациям PSR, то вы можете без проблем подключить модули из laravel или symfony.
    Если не следует этим рекомендациям, то подключить все равно можете, но уже сложнее.
  • Help с роутером PHP?

    Stalker_RED
    @Stalker_RED
    Atom54, я не совсем понимаю что вы куда добавляете, и что он воспринимает, но возможно вам помогут регулярные выражения или parse_url()
  • Help с роутером PHP?

    Stalker_RED
    @Stalker_RED
    Atom54, в том то и дело, что никакого myCheck у вас в коде нет, и вы сами не сформулировали пока что такое "неправильный URl" и чем он отличается от "правильного". Пока вы это не решите - проверку написать невозможно.

    include 'includes/profile.php?q=... include так не работает.
    Вы можете сделать include 'includes/profile.php'; и потом вызвать какой-то код, который в этом profile.php c gfhfvtnhjv/
    Либо вызывайте через вебсервер, передавая GET параметры, но это костыль.

    Ну и обычно роутинг обслуживает не один путь, а некоторое их количество.
    Хорошие примеры реализации роутинга можно посмотреть в фреймворках типа laravel, symfony, yii.

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

    как сделать, чтобы роутер не выдавал ошибку?

    Опасная формулировка - "не выдавал ошибку". Отключите отображение ошибок, и он перестанет их выдавать (но работать все равно не начнет, хаха).
    Устранение "выдаваемых" ошибок - одна из самых легких штук в программировании - читайте текст ошибки, смотрите в код, выясняйте почему эта ошибка появляется. Гораздо сложнее ситуации, когда ошибок нет, но и не работает как вам надо.

    Для начала придумать как оно должно работать. (Если не получается придумать - посмотрите какой-нибудь пример или книжку).
    Потом сравнить чем текущаяя реализация отличаетсяот задуманной.
    Устранить отличия (или написать с нуля, если отличий слишком много).
  • Как в web интерфейсе добавить выборку по датам из таблицы?

    Stalker_RED
    @Stalker_RED
    Atroshchenko-Dima, посмотрите лог ошибок.
    Как минимум я не вижу у вас кода, который принимает POST.
    Также не вижу кавычек вокруг дат.
    Учтите, что данные из формы надо валидировать и/или фильтровать, чтобы с клиента не передавали мусор вместо даты.
    Подготовленные запросы уберегут от sql-инъекций.
  • Если заменить условный оператора полиморфизмом в чём суть?

    Stalker_RED
    @Stalker_RED
    Speakermen, если вы делаете игрушку типа пасьянса или 2048, то это хорошая тема для обучения. Но нужно сразу предупредить - это для души и скиллов, а не ради прибыли прямо сейчас. Учитывайте, что в мире уже сотни тысяч этих игр от новичков, а известными и прибыльными становятся даже не единицы процентов, а исчезающе малая величина.
    Писать что-то масштабное - сложно, долго, дорого. В принципе в истории есть примеры инди-игр которые взлетели до небес (тот-же майнкрафт, например), но примеры единичные.
  • Как адаптировать js код для множества идентичных элементов?

    Stalker_RED
    @Stalker_RED
    FrolovSite, неплохо бы научиться проверять свои утверждения :)
    <select name="" id="a">
      <option value="1">1</option>
      <option value="2">2</option>
    </select>
    <select name="" id="b">
      <option value="1">1</option>
      <option value="2">2</option>
    </select>
    <select name="" id="c">
      <option value="1">1</option>
      <option value="2">2</option>
    </select>
    <pre id="out"></pre>
    <script>
    $('select').on('change', function() {
        out.textContent += this.id;
    }).trigger('change'); // -> выводит abc, то есть срабатывает хоть на двух, хоть на трех, значит проблема где-то в другом месте.
    </script>

    Вы же видите, что у вас в селекторе?
  • Как адаптировать js код для множества идентичных элементов?

    Stalker_RED
    @Stalker_RED
    FrolovSite, можно и с разными, хотя странноватый у вас плагин или что это за код, который даже в классах везде циферки добавляет., непонятно зачем.
    https://codepen.io/stalker-red/pen/ExdYydr?editors=0010
  • Как отложить запрос к апи во время кликов на кнопку?

    Stalker_RED
    @Stalker_RED
    stollyar, если у вас не подключен lodash, то я бы взял отдельную функцию
  • Дубль формы через JS и присваивание атрибута name c индексом?

    Stalker_RED
    @Stalker_RED
    greedy_wizard, достаточно вызвать один раз функцию не по клику, а сразу при загрузке страницы.
  • Как адаптировать js код для множества идентичных элементов?

    Stalker_RED
    @Stalker_RED
    FrolovSite, у вас в логике пробел:
    если предзаказы разрешены - дату показываем.
    если в наличии - дату показываем.
    а теперь ситуация: в наличии, но предзаказ запрещен - показывать или нет?
  • Как сделать, чтобы кнопки с одинаковым class не срабатывали все сразу по click в javascript?

    Stalker_RED
    @Stalker_RED
    Uzumeti, Зачем эти навешивания обработчиков при клике?
    Пользователь откроет меню, обработчики добавятся, он откороет меню еще пару раз, и уже по клику три одинаковых обработчика, и они все одновремено будут срабатывать. Что вы вообще пытаетесь сделать?
  • D3d игра.Как запаковать ресуры?

    Stalker_RED
    @Stalker_RED
    mayton2019, да, но многие игры не перепаковывают ресурсы чтобы использовать их d3d или opengl каким-нибудь.
    Я давно не ковырялся в игровых движках, но помню что 20 лет назад в каком-нибудь half-life или quake3 был переключатель directx / opengl, и оба работали с одними ресурсами, и версия под линукс имела другие исполняемые файлы, но те-же ресурсы.
  • D3d игра.Как запаковать ресуры?

    Stalker_RED
    @Stalker_RED
    mayton2019, "для windows" тоже можно убрать.