Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
VicTHOR

VicTHOR

(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
  • 178
    вклад
  • 140
    вопросов
  • 169
    ответов
  • 100%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как называется эффект перелистывания страницы и какие плагины есть?

    Александр Шипин @alexshipin
    javascript-developer
    Пример 1

    Пример 2

    Плагины
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как синхронизировать сессию в нескольких docker контейнерах?

    karabanov
    Александр Карабанов @karabanov
    Системный администратор
    Добавь контейнер с Redis и храни сессии там. ID сессии передаётся в cookie, так и можно определить сессию конкретного пользователя.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как сделать try { action } catch ( Exception ) по умолчанию?

    vitaly_74
    vitaly_74 @vitaly_74
    Может имеет смысл обернуть init()?
    а еще у контроллера есть метод runAction(); его тоже можно обернуть, т.к. yii2 вызывает этот метод.
    public function runAction($id, $params = [])
        {
            try{
                return parent::runAction($id, $params); // TODO: Change the autogenerated stub  
            }catch(Exception $e){
                 echo "hello world"
            }
          }
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как динамически изменять версию образа?

    yarkov
    Алексей Ярков @yarkov
    Помог ответ? Отметь решением.
    Перед FROM пишем ARG FOO_TAG
    Ответ написан более года назад
    3 комментария
    3 комментария
  • Можно ли магическим образом создать объект?

    Vitaly48
    Виталий Артемьев @Vitaly48
    Может так?
    Router::get('/', [new SiteController(), 'home'])
    Ответ написан более года назад
    3 комментария
    3 комментария
  • Можно ли магическим образом создать объект?

    Skiphog
    Alexey Hog @Skiphog
    Crutch developer. Looking for a job.
    Вы всё делаете правильно, метод render() и не должен быть статическим, но что бы всё заработало корректно, вам нужно использовать другой вид записи.
    Router::get('/', 'Неймспейс\\SiteController@home');

    Либо использовать PHP 8.0

    Постараюсь вкратце пояснить почему.
    Когда вы пишете такую конструкцию
    use App\Controllers; // к примеру
    //...
    
    Router::get('/', [SiteController::class, 'home']);

    SiteController::class как бы так сказать, преобразуется в App\Controllers\SiteController

    Но автор библиотеки плевать хотел на эти ваши неймспейсы и всё что вы там себе придумали.
    Он берёт данные, которые вы передали и получает массив вида
    [
        0 => 'App\Controllers\SiteController',
        1 => 'home'
    ];

    Потом проверяет этот массив на is_callable()
    https://github.com/skipperbent/simple-php-router/b...

    А такое выражение до PHP8 возвращает true, поэтому всё это дело отправляется дальше на исполнение в
    call_user_func_array() пытаясь вызвать метод статически
    https://github.com/skipperbent/simple-php-router/b...
    Отсюда и ошибка.
    Объект же класса ещё не создан
    ---
    Автор предлагает все неймспейсы указать отдельным методом до старта
    SimpleRouter::setDefaultNamespace('App\Controllers');

    Тогда можно указывать класс без неймспейса и всё будет работать.

    Но в этом случае любой анализатор кода либо тот же Шторм скажет вам, что вы делаете какую-то дичь.
    И как поступить решать уже вам.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему nginx удерживает map файл?

    Sand @sand3001
    Всего по немногу
    open_file_cache max=65000 inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors on;

    тут у нас могут храниться "дескрипторы открытых файлов, информация об их размерах и времени модификации". Попробуйте отключить.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как изменить или скрыть ip если сайт запрещает использование Proxy и Vpn?

    Drno @Drno
    Да нет сайтов которые запрещают ВПН. Сайт вообще не вкурсе что вы через него сидите)

    Просто общеизвестные Proxy и VPN есть в свободном доступе и вот их как раз админы сайтов и отсекают, чтоб небыло накруток всяких.

    Личный ВПН себе поднимите, думаю вопрос решится
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как заполнить поля pivot таблицы при создании записи в зависимой талице?

    feycot
    feycot @feycot
    Вы можете создать связующую модель, например CompanyDocument, куда може складывать нужную информацию.
    Её можно унаследовать как от Pivot, Так и от Model, работая с ней как с обычной моделью.
    Информация по связям тут
    Ответ написан более двух лет назад
    7 комментариев
    7 комментариев
  • Как реализовать отправку данных с ограничением на количество запросов к внешнему сервису - 10 запросов в секунду?

    pLavrenov
    pLavrenov @pLavrenov
    Разработка сайтов
    Для этого надо использовать middleware для job. Я не знаю в какой версии оно появилось.

    Метод middleware() добавляется в нужный Job
    public function middleware()
        {
            return [
                new LimitJobThrottleMiddleware
            ];
        }


    сам middleware выглядит так...

    class LimitJobThrottleMiddleware
    {
        public function handle($job, $next)
        {
            Redis::throttle('throttle:sync')
                ->allow(10) // Разрешено максимум 10 тасков
                ->every(1) // каждую секунду
                ->then(fn() => $next($job), fn() => $job->release());
        }
    }

    Важно! throttle:sync - должен быть уникальный. Все что превышает ограничение отправляется снова в очередь и ждет когда можно будет.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Что за модуль "Push and Pull" в битриксе?

    gromdron
    Андрей Николаев @gromdron
    Работаю с Bitrix24
    Модуль push'n'pull отвечает за "мгновенную" доставку "сообщений" на подписанный/активный клиент.
    "Мгновенность" зависит от того как именно он настроен, в каком окружении работает сайт/портал и какая нагрузка на сервер.
    "Сообщение" это любой пересылаемый набор unicode, который обрабатывает клиент сам (т.е. для мобильного приложения, и каждой страницы сайта может быть свой обработчик).

    Как работать с модулем есть в статье разработчика:
    https://dev.1c-bitrix.ru/community/blogs/hazz/work...

    К тому же в документации есть:
    https://dev.1c-bitrix.ru/api_help/push_pull/index.php
    кто подписался, с пользовательским содержимым (например, "В нашем магазине акция!") от браузера

    Все зависит от того что вы вкладываете в понятие "рассылать". Если вы имеете ввиду, вывести пользователю на открытую страницу - да.
    Для отправки в браузер напрямую нужно написать "Service worker".
    Для отправки пушей в мобильное приложение нужно написать мобильное приложение.
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Какой-нибудь ответ сервера закрыт от индексации?

    Надим Закиров @zkrvndm
    Софт для автоматизации
    Вы можете на суб доменах тупо выдавать пустую страницу с тегами noindex и nofollow, а также дополнительно прописать метатег http-equiv="refresh" и футболить всех ботов на основной домен. До кучи, можно еще в заголовках прописать HTTP/1.0 401 Unauthorized.
    Ответ написан более двух лет назад
    4 комментария
    4 комментария
  • Как сказывается количество таблиц на производительности?

    tsklab
    Константин Цветков @tsklab
    Здесь отвечаю на вопросы.
    По сути можно некоторые ссылки, такие как season, gender, measure не делать ссылками
    Для этого существует перечисление.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как сказывается количество таблиц на производительности?

    dimonchik2013
    Dimonchik @dimonchik2013
    non progredi est regredi
    в твоих предложениях одно другому не противоречит
    таблиц можно создавать много (там есть лимит на БД, не помню сколько - хватит для любой обозримой базы) и это не сказывается никак (ну, на 0,0000001% меняется производительность)

    а вот ЧТО ТАКОЕ таблица, и КАК работает JOIN - надо понимать

    таблица -это обычный файл, в котором данные вписаны деревом (лень искать каким - считай, самым оптимальным)
    рядом лежат индексные файлы и шустро извлекая ИД по ИД шустро достается строка из дерева (строка = запись в таблице) - все!

    когда происходит JOIN - СУБД выполняет XOR попарно над ИД (ну, если точно - над значениями полей) из разных таблиц - именно в этот момент грузится процессор и правильно спроектированная база работает быстрее - проц всегда используется меньше памяти - поменьше данных в таблице - поменьше занимаемой памяти, все довольны

    но(!)

    JOIN выполняются последовательно (еще одна точка оптимизации в каком порядке)
    и база вынуждена где-то хранить результаты предыдущ(его/их) JOIN ов
    а так как последующие JOIN выполняются ПО ДРУГИМ ПОЛЯМ
    база хранит в памяти не только ID, а еще и данные этих полей (ну или вообще всех записей, тут кто как реализовал)

    и вот тут да: чем больше JOINов - тем больше таблиц (частично) выгружаются в память

    итого: серебряной пули нет - с СУБД надо уметь обращаться
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Как задать пользователя и пароль по умолчанию для пуша в GitHub?

    Zarom
    Дмитрий Шицков @Zarom
    Используйте ключи ssh
    https://help.github.com/en/github/authenticating-t...
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Возможно ли не получать 403 с правами 770?

    Lynn
    Lynn «Кофеман» @Lynn
    nginx, js, css
    Добавить (или поправить) директиву user
    user nginx vboxsf;
    Ответ написан более двух лет назад
    12 комментариев
    12 комментариев
  • Как получить массив ключей, по которым из вложенного объекта можно достать известное значение?

    Seasle
    Александр @Seasle Куратор тега JavaScript
    \( ゚ヮ゚)/
    А есть попытки это сделать? На задание больше смахивает.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как узнать структуру каталога?

    fox_12
    Владимир Куц @fox_12
    Расставляю биты, управляю заряженными частицами
    Просмотреть статистику расширениям
    find ./dir/ -type f | awk -F . '{print $NF}'  | sort | uniq -c | sort -nr


    Глянуть структуру - можно например через
    tree -d ./dir/
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно переписать класс?

    udjin123
    Евгений @udjin123
    PHP, Golang, React
    Если бы класс был изначально ваш то наследоваться, но так как он из ядра битрикса и может кардинально обновляться, то это может привести к сбою после очередного обновления. Вообщем копировать!
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему php приравнивает 2 к 3-м?

    Александр Епихин @leshiple
    У вас опечатка
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • Drno
    • 24 ответа
    • 0 вопросов
  • mayton2019
    • 7 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 7 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 7 ответов
    • 0 вопросов
  • GNUBack
    • 6 ответов
    • 0 вопросов
  • vovka3003
    Владимир Шаблий
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации