• Есть ли смысл передавать $_POST в качестве параметра?

    mad_maximus
    @mad_maximus
    Все данные лучше передавать снаружи, а $_POST, $_GET, $_FILES не использовать вообще. Вернее, использовать правильно. У вас одна точка входа - в ней и инициализируйте специальный класс, который работает с этими массивами, и передавайте его дальше в код. Это избавит вас от обращения к глобальным массивам и точно ограничит контекст данными, которые вы можете использовать в текущем запросе.
    Ответ написан
    Комментировать
  • Есть ли смысл передавать $_POST в качестве параметра?

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

    Видеокурс может запилить любой дурак. Чтобы написать книгу, нужно иметь авторитет достаточный для издательства. Кроме того, текст пройдёт редактуру нескольких профессионалов. Поэтому знания в книгах качественные и систематизированные. Для начинающего это очень важные качества.

    К тому же, после достижения профессионального уровня достаточного чтобы называться специалистом, вы обнаружите, что необходимые на этом уровне знания можно почерпнуть только из документации. То есть всё равно придётся читать. Много и часто.

    Наконец, постоянная практика чтения неизбежно приводит к увеличению скорости чтения. И наступает момент когда прочитать учебник будет в 10 и более раз быстрее, чем просмотреть видеокурсы по той же теме и в том же объёме.

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Нет, не стоит.
    Вы тупо будете слушать, как картавый мычащий Васян пересказывает какой-нибудь learnjavascript, пропуская половину тем, которые сам не понимает.
    И таких видео - 90%.
    Ответ написан
    12 комментариев
  • Как сверстать такой макет на Flexbox?

    origami1024
    @origami1024
    went out for a night walk
    Можно всё на flex, и без дублирований, вота.
    Ответ написан
    6 комментариев
  • Почему не появляется горизонтальная прокрутка?

    origami1024
    @origami1024
    went out for a night walk
    Потому что его родитель вылазит за пределы. Задай родителю overflow-x: hidden и всё будет чики пуки
    .wrap_offs_left {
      overflow-x: hidden;
    }
    Ответ написан
    6 комментариев
  • Как создать тему для WordPress?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Создать тему или "натянуть" верстку на CMS это вопрос не просто какого-то переноса разметки из одних файлов в другие. Часто это именно внедрение функционала, который отображается в макете.
    Например, если в шапке есть блок с номерами телефона, то надо предусмотреть, как из админки эти номера будут добавляться, и как их выводить. Если есть блок в макете "Свежие новости" с карточками статей, значит при создании темы надо как-то организовать сбор последних записей и потом их вывод. В этом плане WP имеет, конечно, готовые решения, но часто если брать их "из коробки", то и выводятся они с версткой, которую предусмотрели разработчики WP, иначе надо либо переделать свою верстку, либо вникать в то, как работает готовое решение и как-то его менять. Так что без PHP будет тяжело. Если ничего нестандартного не надо, то все достаточно просто.

    Тема WP состоит из стилей css, и файлов-шаблонов php, а также скрипта functions.php, который отвечает больше за функционал. Тему можно создать как с нуля, так и унаследоваться от какой-то готовой, и переопределить в ней шаблоны и стили.

    Главный файл темы, как ни странно, это style.css. Сначала в папке /wp-content/themes/ создаете новый каталог, в нем создаете файл style.css и в этот файл кидаете комментарий:
    /*
    Theme Name: Имя темы для админки
    Author: себя любимого сюда
    Text Domain: свои контакты для плюсиков в карму
    */

    Если хотите унаследоваться от другой темы надо добавить еще Template: и указать название темы, а точнее папки, где лежит тема.
    /*
    Theme Name: Имя темы для админки
    Author: себя любимого сюда
    Text Domain: свои контакты для плюсиков в карму
    Template: twentyseventeen
    */

    Дальше, если надо переопределить шаблон, просто в своей папке создаете файл с таким же названием, он будет взят в приоритете. Единственное, есть нюанс с functions.php, так как родительский исполняется перед Вашим.

    Работая с нуля, без наследования, надо еще добавить файлы index.php, header.php, footer.php и screenshot.png, он отобразиться в админке, как превью темы, последний, если не ошибаюсь, не обязательно. Файл header.php отвечает за вывод шапки, footer.php - подвала. index.php отвечает за все запросы, ЕСЛИ НЕТ более подходящего файла-шаблона. 404.php отвечает за 404 ошибку. page.php отвечает за вывод страницы (в WP можно создавать отдельные страницы), category.php за вывод страницы категорий, single.php за вывод одной записи и тд. Подробнее

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

    WP имеет систему виджетов и плагинов, которые значительно расширяют возможности движка. WP предлагает регистрацию своих таксономий, типов записей и всего такого прочего. Смотрите на сайте, который давал по ссылкам выше, а также давали выше в ответах ссылку на codex wprdpress.

    Насчет других CMS верно подметили, в каждой по своему, например в OpenCart используется шаблонизатор Twig, и сам движок написан по MVC, то есть функционал отделен от отображения, поэтому в нем легче править шаблоны, в них практически один html, WP похуже, тут все вперемешку с php.

    PS: создавая тему еще много есть тонкостей, например, чтобы подключить свои стили, свой js надо знать понятие хуков, и подключать скрипты и стили через вызов функций, которые в свою очередь должны подписаться на события, то есть хуки... Так что, wp не самый легкий вариант, если все эти понятия далеки от понимания, но зато есть статьи, видео, доки. Успехов!
    Ответ написан
    2 комментария
  • CSS анимация, как выровнять круг after?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    *, *::before, *::after {
      box-sizing: border-box
    }


    Это уже давнишний "стандарт", если не устраивает *, то ставьте только на этот элемент
    Ответ написан
    3 комментария
  • Как тестировать драйвера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    С копмиляцией вам уже посдказали. Давайте я про отладку расскажу. Во первых очень желательно иметь две машины - одну для компиляции и отладки, вторую - таргет, куда все грузим и где тестируем и проверяем
    1) используем printk, в 95% случаев этого достаточно
    2) если аппаратура позволяет, используем jtag - это аппаратный модуль для отладки - 100% успех!
    3) можно использовать kgdb - не всегда это работает.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var str = "1234567890";
    var e, r = /.{4}/g; // одно-единственное регулярное выражение
    while(e=r.exec(str)) {
    	console.log(e[0]);
    	r.lastIndex -= 3;
    }
    Ответ написан
    Комментировать
  • Гарантии выполнения и отмены отложенных операций?

    Ni55aN
    @Ni55aN
    setTimeout или setInterval выполнится не раньше, чем через указанное время

    Допустим, пришло время выполнения функции в setTimeout, но на этот момент выполняется синхронная функция, которая блокирует процесс на 200 мс, значит - обработчик из setTimeout выполнится не раньше, чем через время, через которое он должен начать выполняться + время, которое требуется для заверения выполнения синхронной функции из стека
    Ответ написан
    3 комментария
  • Получить id формы по нажатию на кнопку без ид?

    @RuhHost Автор вопроса
    $('form button').click(function(){
    var $form = $(this).parents('form');
    var id = $form.attr('id');
    });
    Ответ написан
  • Почему появляются отступы вверху и внизу изображения?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это один из багов отображения SVG-картинок во flex-контейнерах. Это вообще больная тема, там эти картинки то схлопываются по ширине, то получают странные отступы в отдельных браузерах. Можно решить, обернув картинку в div с явным указанием display=block для него:

    <div class="test">
        <img src="https://123.svg"/>
    </div>


    .test {
        display: block;
    }
    Ответ написан
    1 комментарий
  • Как узнать количество элементов в строке?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Array.from([...str].reduce((acc, n) => acc.set(n, -~acc.get(n)), new Map), n => n[1] + n[0])

    или

    str.split('').sort().join('').match(/(.)\1*/g).map(n => n.length + n[0])

    или

    Array.from(new Set(str), n => str.replace(RegExp(`[^${n}]`, 'g'), '').length + n)
    Ответ написан
    2 комментария
  • Как залить все вокруг блока?

    origami1024
    @origami1024
    went out for a night walk
    Вот вариант:
    1) Родителю белый фон
    2) Самому блоку - бэкграунд родителя
    3) На mouseMove изменять background-position соответственно перемещению блока
    https://codepen.io/origami1024/pen/eYYRbmx
    Ответ написан