Ответы пользователя по тегу Веб-разработка
  • Как вывести текст из поля?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У функций the_field() и get_field() есть второй, необязательный парамент - ID объекта, с которого брать нужное поле. Если его не указывать - берется с текущего объекта. Если нужно взять с другого - указывайте нужный ID явно. Для страниц настроек, таксономий, терминов, юзеров и тд там свой формат для этого ID. Все это есть в официальной документации плагина:

    https://www.advancedcustomfields.com/resources/get... (раздел Get a value from different objects)
    https://www.advancedcustomfields.com/resources/add...
    Ответ написан
    7 комментариев
  • Как вы разрабатываете и поддерживаете сайты на Worpdress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В целом все ок, разница всегда будет в каких-то нюансах. В зависимости от типа проекта, нюансов будет больше или меньше. У нас плюс-минус так:

    - Локальная разработка на macOS + Laravel/Valet (Nginx, PHP 7+, MariaDB, Redis/Memcached).
    -Staging/production могут быть как отдельными серверами, так и находиться на одном сервере, а также могут быть много сайтов на одном сервере, или это может быть не наш сервер, а какой-нибудь Kinsta или вообще клиентская инфраструктура к которой у нас доступа нет. Поэтому devops кухня вообще отделена. С нашей стороны только автодеплой из репы через CI/CD. Ветка develop -> staging, ветка master -> production.
    - WordPress, плагины, тема, и весь кастомный код являются зависимостями проекта, управляется с помощью Composer.
    - Работа с функциональностью WordPress строится полностью на командной строке с помощью WP-CLI. При необходимости пишутся свои команды для него.
    - Вся конфигурация проекта в .env (база, ключи, лицензии и прочее, что не попадает в git) и в папочке config в виде PHP-конфигураций (все что уже влияет на функциональность).
    - Медиа-файлы на локалке либо вообще не хранятся (Valet проксирует запросы на staging/production), либо синхронизируются со staging/production. Делается это с помощью отдельного cli-скрипта, который под капотом использует rsync.
    - Базы данных - отдельная история которая очень сильно зависит от специфики проекта. Где-то это простой push/pull с помощью WP Migrate DB, где-то тот же push/pull c помощью WP-CLI, где-то это целые миграции. В идеале надо стараться контент забирать с прода на стейдж и избегать публикации с dev/staging на продакшн. Но ситуации и проекты бывают разные, здесь нет одного правильного ответа.
    Ответ написан
    Комментировать
  • Для каких задач в веб-разработке очень хорошо подходит питон?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    ИМХО, судя по комментариям и вашим ответам, вы как-то странно выбираете - пассионарно, но зашорено (вот например, ваша нелюбовь к PHP, при том что вы его даже не знаете).

    Если хотите быть успешным коммерчески и рубить бабло налево-направо именно в веб - JS, PHP, Ruby, Go как замена Node.js.

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

    А если хотите качественно развиваться как разработчик - перестаньте ограничивать себя устаревшими мемчиками типа "пых-говно", изучайте разные языки. Начните с академической Java, поковыряйте С/С++/С#, попробуйте Go, полистайте доку по Swift или Rust, посмотрите особенности Haskell. Гляньте ассемблер, чтобы почувствовать истоки. Perl и Shell/Bash не забудьте. Ну и, конечно же - PHP, Ruby, Python.
    Ответ написан
    Комментировать
  • Есть ли смысл в моем выборе. PHP или JS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Лучше научиться понимать общие принципы, которые стоят за бекендом - реляционные и nosql базы, сильные и слабые стороны и их специфика, АПИ, serverless / lambda, цикл request-response, многопоточность, очереди, in-memory cache и все такое. А язык (JavaScript, PHP, .NET, Python, Ruby etc) или конкретный фреймворк на каком-то из этих языков - дело десятое.
    Ответ написан
    Комментировать
  • Как оценить стоимость разработки?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Обычно даже примерно не могу прикинуть требующееся время на разработку

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

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вариантов много. Либо шаблоны page-{id}.php / page-{name}.php, либо произвольные templates, которые назначаются вручную каждой конкретной странице. Если "страницы" это не page, а custom post type, то при регистрации нужно в 'supports' указать 'page-attributes'.
    Ответ написан
    Комментировать
  • Как передается информация о пользователе в WordPress AJAX?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Авторизованный юзер - это кука у юзера на клиенте и сессия на сервере у вас. При всех запросах браузер автоматически передает куку на сервер, по ней идентифицируется сессия пользователя. Если сессия есть и она валидная, юзер считается авторизованным. Ну и все его данные доступны - ID, роль, permissions и тд. Поскольку при аякс-запросе выполняется не только 1 эта функция-коллбек, а сначала загружается и выполняется ядро WordPress, то функция is_user_logged_in() на момент ее вызова в коллбеке уже работает в нормальном окружении WP, имеет доступ к сессии, данным юзера и тд. Вот и вся магия.
    Ответ написан
    1 комментарий
  • Как определяют стоимость разработки?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Упомянутая статья не определяет стоимости разработки вообще. Она определяет какой-то гопнический способ "сбить бабла с клиента так чтобы не лохануться".

    Стоимость разработки определяется ресурсами, необходимыми на эту разработку (люди, время, объемы, сложность, сторонние лицензии и тд). Цена за идентичную работу должна быть одинакова что для локального малого бизнеса, что для крупной международной корпорации с баблом. Другое дело, что корпорации можно продать допуслуги, хорошую приоритетную поддержку, фичи, обучение персонала и тд.
    Ответ написан
    4 комментария
  • Переливание пользователей в МЛМ матричной системе?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Посмотрите в сторону процессинга на PHP с помощью рекурсии. Для МЛМ-матриц рекурсии – самое оно. Глядишь, и код перестанет так сильно пахнуть.
    Ответ написан
    1 комментарий
  • С чего начать и как себя рекламировать веб-мастеру?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Для начала, перестать называть себя "веб-мастер". Это термин из 90х, и лично у меня закладывается подозрение, что человек владеет технологиями именно того периода. Нынче есть модный термин full-stack developer. Впрочем, и понятие full-stack сейчас не очень-то хорошо на себя натягивать. Ибо тот, кто делает только одно (фронт, бек и тд), как правило прокачивает скилы до более высоких уровней, чем эникейщик, который умеет всего понемножку. И хоть уметь во все в нашей сфере необходимо, должен быть фокус. Именно фокус на чем-то одном приводит к работе над хорошими проектами с хорошими бюджетами. Со временем, естественно. Опыт - все.

    Далее, если еще не учишь английский, то самое время начать. Вчера. Без английского у тебя всегда будет потолок, в который ты упрешься очень быстро.

    Теперь по вопросам:

    Какие сайты выбирать для фриланса по веб-составляющей, популярные или нет?

    Upwork

    Стоит ли вкладываться в покупку премиум-аккаунтов на таких сайтах и окупятся ли они?

    Если собираешься работать там фуллтайм и долго - да и да.

    Нужно ли продвигать себя в контекстной рекламе, группах вк за деньги?

    Не думаю. Хотя, если твоя целевая аудитория там - тогда да. Но нет.

    Долго ли заняло ваше продвижение, и много ли у вас заказов теперь?

    Сложно сказать где и когда наступил тот момент, когда "продвижение" было достигнуто, ну или как еще это сформулировать. Скажу лучше так - я в это сфере с 1997 года, и до сих пор "продвигаюсь". Потому что точка Б как таковая отсутствует. Это вечный процесс движения вверх, местами проседая вниз, местами плато, местами снова вверх... Далее - количество заказов не столь важно. Важно их качество, бюджеты, ну и, как результат, соотношение количества к бюджетам. Грубо говоря, можно за 6 месяцев сделать один проект с бюджетом $10-30-50к, а можно все эти 6 месяцев пилить 20 проектов по $500.

    Какая среда разработки удобнее для вас? (имею под владением сразу mac, windows и ubuntu)

    В принципе она не важна, "на скорость не влияет". Лично мне - mac, ну и ubuntu/debian/centos/freebsd на серверах.
    Ответ написан
    Комментировать
  • Как большие сайты справляются с отправкой e-mail?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Имею ввиду письма: уведомление об ответе, письма подтверждения регистрации и т.п.

    Во-первых, это называется транзакционные письма.
    Во-вторых, под это существует вагон узкоспециализированных сервисов, которые умеют только в это, но умеют очень хорошо, и стоят на хорошем счету у всех почтовиков. Сервисы эти, внезапно, называются сервисами транзакционных писем (Transactional Email Service). Это Amazon SES, Mailgun, Sendgrid и вагон аналогичных. Есть и русскоязычные - гугл в помощь.
    Ответ написан
    Комментировать
  • Можно ли одновременно использовать flexbox и grid на одной странице?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Можно и нужно. Grid создали не для того, чтобы заменить Flex. Это 2 разных метода построения лейаута, если грубо:

    - Grid = 2D (расположение элементов по 2м осям одновременно, по горизонтали и по вертикали)
    - Flex = 1D (расположение элементов только по 1й оси, горизонтали или вертикали)

    Еще грубее - flex хорош для "инлайна", выравнивая элементов в одной строке или колонке, как правило это конкретно контент-элементы, а grid - хорош для контейнеров и более общих элементов (карточек и тд). То есть, гридом задали общую структуру и лейаут, флексами внутри блоков расставили контент-элементы.
    Ответ написан
    2 комментария
  • Лучший сервис для защиты от брутфорса/парсинга для вебсайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    имхо:

    - роботам ограничить аппетит в robots.txt адекватным rps/rpm
    - выставить тот же адекватный rps/rpm на уровне сервера с помощью rate limiting

    результат:

    - роботы без проблем индексируют
    - обычным пользователям никаких капч и неудобств
    - особо активным и левым ботам с аппетитом выше rate limit - автоматический бан или просто сброс запросов свыше лимита (тут на выбор по вашему желанию)
    Ответ написан
    Комментировать
  • Допустимо ли развернуть git в директории боевого сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    саму папку .git закройте на доступ, а так проблем нет
    Ответ написан
    Комментировать
  • Почему такая задержка перед первой отрисовкой страницы?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Waiting = 1.18s
    Это рендеринг HTML на сервере (PHP), он конечно не быстрый у вас, но и не то чтобы сильно медленный.

    Receiving = 7.03s
    А вот это уже сервер отдает (а браузер качает) этот сгенерированный HTML, и это аномально медленно. Скорее всего канал - говно.

    Кроме всего прочего, 127Кб HTML - это тоже аномально много, там DOM адски огромный, плюс скрипты и стили, отсюда еще столько же времени идет на парсинг и отрисовку.
    Ответ написан
    Комментировать
  • Как решается проблема кэширования скриптов и стилей при обновлении сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    GET-параметры сработают, ответ riot26 верный по сути. Но именно GET-параметры имеют недостаток - Google PageSpeed Test и подобные инструменты ругаются и объясняют причину. Лично я предпочитаю другой способ - использовать уникальный идентификатор как часть имени файла, и на уровне сервера роутить запрос на нужный файл. Подробнее можете почитать тут.
    Ответ написан
    Комментировать
  • Лучший браузер под мак для разработчика?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если активно фронт - тогда Chrome, ибо больше плагинов, лучше инструменты разработчика, отладка JS и тд. Если больше бекенд - пофиг. Для режима "пользователь" а не разработчик - однозначно Safari.
    Ответ написан
    Комментировать
  • Как вы храните изображения при разработке/сопровождении сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В дополнение к советам уважаемых джентльменов выше еще как вариант – rewrite rules на уровне сервера, которые будут транслировать на локалке пути на прод, и грузить медиа-файлы оттуда.
    Ответ написан
    Комментировать
  • В чём можно подготовить документацию перед разработкой проекта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Попробуйте Confluence. В паре с Jira, BitBucket и другими инструментами от Atlassian – вообще яд. Но стоит немножко денег.

    Если кто-то подкинет достойную бесплатную альтернативу, сам буду благодарен.
    Ответ написан
    Комментировать
  • Появляется карта сайта на 1-2 сек. при загрузке сайта, как исправить?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Это называется FOUC – Flash Of Unstyled Content. Происходит он потому что у вас невалидный и кривой HTML, менюшка ваша выводится в HEAD (где ее быть не может по определению, только в BODY), и до CSS. Отсюда и проблема – сначала браузер выплевывает HTML-разметку, а потом спохватывается, что вот еще стили есть, берет их и перерисовывает страницу.

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