<rmcreative>

RSS
  1. AhrefsBot и другие прожорливые поисковые боты

    17 августа 2020

    Нагрузку на сайт нередко делают не посетители, а разные поисковые боты. Когда-то проблемы были даже от робота Google, но сейчас он научился снижать аппетиты при появлении ошибок или существенном повышении времени ответа. Яндекс тоже поумерил аппетиты и настраивается через Вебмастер.

    Но "голодные" боты ещё остались. Один из таких - AhrefsBot. На наше счастье, многие боты, которые сами не умеют регулировать свой аппетит, подчиняются robots.txt в корне сайта, директиве Crawl-Delay. Она выставляет задержку между парсингом следующей страницы в секундах. Одной секунды для многих проектов вполне достаточно (86400 страниц). Если мало - можно использовать дробные значения.

    User-agent: *
    Crawl-Delay: 1
    
    2 комментария
  2. PHP friendly классы

    5 августа 2020

    Дружественные классы видят как минимум protected-методы друг друга. В PHP реализуются так:

    <?php
     
    abstract class Base
    {
        protected function doit()
        {
            throw new \RuntimeException('Not implemented');
        }
    }
     
    class Closed extends Base
    {
        protected function doit()
        {
            echo 'done!';
        }
    }
     
    class Opener extends Base
    {
        public function execute(Closed $closed)
        {
            $closed->doit();
        }
    }
     
    $closed = new Closed();
    $opener = new Opener();
     
     
    $opener->execute($closed);

    Здесь можно запустить. Если что, это не баг.

    Как это использовать? В Yii 3 мы так закрываем DI-контейнер и диспетчер событий чтобы в рантайме они были только для чтения, но, при этом их можно было сконфигурировать специальными friendly-конфигураторами на этапе инициализации приложения.

    Сделано это чтобы не дать стрелять себе в ногу, в этом плюс. Минус в том, что про такую фичу PHP мало кто знает и это вызывает вопросы:

    10 комментариев
  3. PHP fwdays - доклад про код и интервью с автором Composer

    16 июля 2020

    Выложили видео с конференции PHP fwdays. Изначально я планировал сделать только доклад, но организаторы попросили дополнительно взять интервью у одного из создателей Composer, Jordi Boggiano.

    Доклад называется "поговорим про код". В нём я рассказал про подходы, которые позволяют коду меньше ломаться.

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

    1 комментарий
  4. Microsoft, Windows и PHP

    14 июля 2020

    iXBT опубликовали новость "Microsoft прекращает поддержку PHP в Windows".

    Компания Microsoft объявила о том, что она собирается прекратить поддержку PHP в своей операционной системе Windows.

    На самом деле всё не так:

    1. Microsoft многие годы оплачивали фуллтайм-работу по поддержке Windows в PHP. Изначально они объявили что делают это для версий 7.x. К PHP 8 это не относилось.
    2. В самой операционной системе Windows ничего не меняется. Ну разве что WSL 2 добавили, но на запуск php.exe это не влияет никак.
    3. Для версий PHP меньше 8-ки ничего не меняется. Будут официальные билды.
    4. Для 8-ки команда из Microsoft билдов делать не будет. Скорее всего потому как можно нормально запускать PHP из WSL 2. Но, на самом деле, никто не мешает собрать билд самому. Плюс не факт, что их место никто не займёт. Например, Jan-E из Apache Lounge. Команда из Microsoft готова передать дела.
    Комментировать
  5. Новости Yii 2020, выпуск 5

    9 июля 2020

    На самом деле, в этом году перед этим выпуском было ещё четыре, как следует из порядкового номера. Но я был так увлечён Yii 3, что забыл про блог и хабр… Почитать их можно прямо на главной https://yiiframework.ru/. Ну или, если больше нравится английский, на нашей странице на OpenCollective.

    Текущий выпуск:

    Комментировать
  6. Торвальдс про проблему OpenSource с поиском мейнтейнеров

    7 июля 2020

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

    https://www.opennet.ru/opennews/art.shtml?num=53292

    Поблемы более-менее большого OpenSource похожи. У нас ровно та же проблема в Yii.

    Комментировать
  7. Часовое интервью про OpenSource, Yii 3 и всякое

    26 июня 2020

    5 комментариев
  8. 1 июля обсудим Code Review

    26 июня 2020

    1 июля в 17 часов по Москве/Киеву/Минску обсудим Code Review. В эфир придут Сергей Жук, Константин KSDaemon Буркалев и Антон Морев.

    Больше деталей и саму ссылку на просмотр вы можете найти на хабре.

    UPD: запись обсуждения.

    1 комментарий
  9. Дерево обязанностей и навыков HR

    10 июня 2020

    Мне очень понравилось дерево обязанностей и навыков тимлида и вот на хабре Юля Бадертдинова из Directum выложила похожую схему для HR.

    Комментировать
  10. Короткие теги в PHP

    10 июня 2020

    Почти десять лет назад я писал про короткие теги и радовался включению короткого echo по умолчанию.

    Сегодня меня спросили, что я думаю по поводу использования коротких тегов.

    Их осталось на данный момент в PHP 7.4 два вида:

    • <? - короткая форма <?php. Включается через short_open_tag в php.ini.
    • <?= - короткая форма <?php echo. Доступна всегда.

    Если с <?= всё ясно, тег доступен всегда и удобен при использовании в шаблонах, то с <? не всё так просто.

    В PHP 7.4 его хотели убрать и почти убрали после положительного голосования за RFC. Но в итоге сначала предложили сделать это по-другому, а потом и вовсе не делать.

    В результате в PHP 7.4 теги работают как и ранее. В PHP 8 тоже (но не факт, что так будет в релизе).

    Стоит ли использовать <? - вопрос неоднозначный. Если у вас проект, который разворачивается только на ваши сервера, вы контролируете php.ini и никогда не забываете short_open_tag = On, то технически ничего ужасного в использовании коротких тегов нет. Если же вы делаете продукт, который можно поставить на свой сервер, такой как CMS или фреймворк, то использовать <? - плохая идея. Часть пользователей обязательно попробует развернуть ваш продукт в окружении, где у них нет возможности поправить php.ini.

    7 комментариев