Задать вопрос
  • Как реализовать переход с Bootstrap 3 на Bootstrap 5?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Варианты перехода с Bootstrap 3 на Bootstrap 5:
    1. Постепенная миграция (Hybrid approach)

    Подключить Bootstrap 5 с префиксом классов
    Переписывать компоненты по одному
    Использовать CSS-изоляцию для избежания конфликтов
    Плюсы: Сайт остается рабочим, можно мигрировать частями
    Минусы: Увеличенный размер CSS, сложность поддержки

    2. Использование Bootstrap Migration Tool

    Автоматические инструменты для замены классов
    Скрипты для массовой замены в файлах
    Плюсы: Быстрая автоматизация базовых изменений
    Минусы: Не покрывает все кейсы, нужна ручная доработка

    3. Создание CSS-моста (Polyfill)

    Написать CSS-правила для совместимости классов BS3
    Создать алиасы для старых классов
    Плюсы: Минимальные изменения в HTML
    Минусы: Не все компоненты можно эмулировать, устаревший подход

    4. Полная перепись с нуля

    Установить Bootstrap 5
    Переписать все компоненты и страницы
    Плюсы: Современный код, лучшая производительность
    Минусы: Много времени, высокий риск поломок

    5. Использование CSS-in-JS или препроцессоров

    Создать миксины для совместимости
    Использовать SCSS для переопределения
    Плюсы: Гибкость настройки
    Минусы: Нужны знания препроцессоров

    6. Bootstrap 4 как промежуточный этап

    Сначала мигрировать на BS4, потом на BS5
    Плюсы: Меньше кардинальных изменений за раз
    Минусы: Двойная работа

    7. Микросервисный подход

    Переписывать отдельные секции сайта на новом Bootstrap
    Постепенно заменять старые части
    Плюсы: Изолированные изменения
    Минусы: Сложность интеграции

    Для больших проектов: Постепенная миграция (#1)
    Для средних проектов: Bootstrap 4 как промежуточный этап (#6)
    Для небольших сайтов: Полная перепись (#4)
    При ограниченном времени: CSS-мост (#3)
    Ответ написан
    2 комментария
  • Из кириллицы в латиницу. Конвертация в php?

    /**
         * Функиция транслитерации
         * @param string
         * @return string
         */
        public function translit($st)
        {
            $st = mb_strtolower($st, "utf-8");
            $st = str_replace([
                '?', '!', '.', ',', ':', ';', '*', '(', ')', '{', '}', '[', ']', '%', '#', '№', '@', '$', '^', '-', '+', '/', '\\', '=', '|', '"', '\'',
                'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к',
                'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х',
                'ъ', 'ы', 'э', ' ', 'ж', 'ц', 'ч', 'ш', 'щ', 'ь', 'ю', 'я'
            ], [
                '_', '_', '.', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_',
                'a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'y', 'k',
                'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h',
                'j', 'i', 'e', '_', 'zh', 'ts', 'ch', 'sh', 'shch',
                '', 'yu', 'ya'
            ], $st);
            $st = preg_replace("/[^a-z0-9_.]/", "", $st);
            $st = trim($st, '_');
    
            $prev_st = '';
            do {
                $prev_st = $st;
                $st = preg_replace("/_[a-z0-9]_/", "_", $st);
            } while ($st != $prev_st);
    
            $st = preg_replace("/_{2,}/", "_", $st);
            return $st;
        }
    Ответ написан
    2 комментария
  • Почему условие не выполеяется?

    @Vitsliputsli
    empty($var) - это "синтаксический сахар", т.е. это краткая запись следующей конструкции:
    !isset($var) || $var == false
    т.е. кроме того же самого isset, там еще и сравнение с false, причем с преобразованием типов
    Ответ написан
    Комментировать
  • Есть ли другой вариант делать генерацию списков на php через js?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    или есть другой способ, более простой?
    Конечно есть
    <input type="time">
    Ответ написан
    Комментировать
  • Как обновлять данные каждые 24 часа в MySQL?

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

    Lynn
    @Lynn
    nginx, js, css
    Поделить на 15
    Округлить
    Поделить на 4
    Ответ написан
    Комментировать
  • Как восстановить файл css?

    profesor08
    @profesor08
    Как восстановить файл css?

    1. Удаляешь atom, устанавливаешь vscode.
    2. Пишешь стили заново. Второй раз будет проще.
    Ответ написан
  • Почему не срабатывает условие if в js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Дело не в условии, а в плагине bootstrap-confirmation.
    Вызов его на элементе нужен 1 раз для инициализации плагина. Далее он сам слушает события на input'е и вызывается при любом изменении.
    Ответ написан
    4 комментария
  • Освобождается ли память?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    unset помечает zval как освобождённый. Фактически, на внутреннем уровне, это просто каст к другому типу. До PHP 7.x это свойство даже в юзерленд было выведено.

    Примечание: Сейчас код отличается и сходу сказать как оно устроено не могу, если интересно поразбираться, то вот хендлер сабжевого опкода: https://github.com/php/php-src/blob/b227a722859e83...

    Всё остальное поведение уже регламентируется самим кодом: в какой момент сработает так называемый "stop the world" для подсчёта refcount и подчистки памяти. Крайний случай - это единица компиляции PHP, т.е. файл. При выходе из него всё подчищается. В идеальном же случае подчистка происходит сразу же при потере ссылки на zval даже без всяких unset.

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

    В результате, если построить график потребления ОЗУ - она всегда будет хаваться "лесенкой" (выделение пула памяти, её использование, её многократное переиспользование, и очистка в случаях, когда есть понимание того, что количество выделенной памяти избыточно) используешь ли ты unset или нет.
    Ответ написан
    Комментировать
  • Как лучше всего организовать локальные аккаунты?

    Awilum
    @Awilum
    Частный разработчик, ментор и преподаватель курсов
    делайте это все в основной таблице
    Ответ написан
    Комментировать
  • Как сделать что бы меню в bootstrap в мобильной версии закрывалось при клике на пункте из меню?

    @stanislav_slav
    этот код сделает скрытие панели медленным (анимированным):
    $('.navbar-collapse').on('click', function () {
        $('.navbar-collapse').collapse('hide');
        $a = $($(this).attr('href'));
        $('html,body').animate({ scrollTop: $a.offset().top - 50}, 500);
        return false;
    });
    Ответ написан
    6 комментариев