PHP-Дайджест № 154 (9 – 21 апреля 2019)


    Свежая подборка со ссылками на новости и материалы. В выпуске: Zend Framework переходит под крыло Linux Foundation, новости из PHP Internals, порция полезных инструментов, и многое другое.

    Приятного чтения!



    Новости и релизы



    PHP Internals


    • [RFC] Arrow Functions 2.0 — Стартовало голосование по коротким лямбдам и ход голосования обнадёживает. Синтаксис остался прежним: fn($x) => $x * $y .
    • [RFC] Deprecate left-associative ternary operator — Почти во всех языках тернарный оператор вычисляется справа налево, а вот в PHP наоборот. Предлагается отменить левую ассоциативность совсем, а если необходимо использовать несколько тернарных операторов, то явно указывать очерёдность с помощью скобок.
      1 ? 2 : 3 ? 4 : 5;   // deprecated
      (1 ? 2 : 3) ? 4 : 5; // ok
      1 ? 2 : (3 ? 4 : 5); // ok
      
    • audio PHP Internals News #5 — О списковых включениях с автором RFC Ларри Гарфильдом.
    • audio PHP Internals News #6 — Интервью с Remi Collet, релиз-менеджером PHP 7.2 об обеспечении качества PHP и расширений.

    Инструменты


    • pinba-server/pinba-server — Простой pinba-сервер на чистом PHP, который сохраняет все данные в Clickhouse. Есть готовый дашборд для графаны. Простая установка и низкие системные требования, а сжатые данные занимают очень мало места на диске. Прислал morozovsk.
    • cycle/orm — ORM для долгоживущих приложений от автора RoadRunner Антона Титова. Подробная документация в процессе, есть сравнение с Doctrine и Eloquent.
    • php-comrade/comrade-dev — Планировщик и менеджер задач на PHP.
    • jwage/changelog-generator — Генератор списка изменений в маркдаун на основе информации из GitHub.
    • moneyphp/money — Реализация фаулеровского паттерна Money. Под капотом используются строки.
    • mamuz/PhpDependencyAnalysis — Инструмент строит граф зависимостей абстрактных типов и показывает плохие зависимости.
    • robinvdvleuten/php-ulid — Вместо обычного UUID, в качестве идентификаторов можно использовать ULID, который обладает рядом преимуществ, в частности, лексически монотонно возрастает, а значит его можно удобно сортировать.

    Symfony



    Laravel



    Yii


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

    Материалы для обучения




    Занимательное


    • siara-cc/php_webview — Расширение предоставляет возможность использовать WebView из PHP на Mac/Win/Linux. Реализовано на основе zserge/webview.

    Спасибо за внимание!

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

    Больше новостей и комментариев в Telegram-канале PHP Digest.

    Прислать ссылку
    Поиск ссылок по всем дайджестам
    Предыдущий выпуск: PHP-Дайджест № 153

    Share post

    Comments 15

      +5
      laminat
        –1
        robinvdvleuten/php-ulid — Вместо обычного UUID, в качестве идентификаторов можно использовать ULID, который обладает рядом преимуществ, в частности, лексически монотонно возрастает, а значит его можно удобно сортировать.

        На ум приходит только один вариант использования — primary key.
        Какие еще есть варианты?
          0
          В мессенджерах, при создании сообщений на клиенте.
            0
            На разных клиентах/серверах монотонность будет соблюдаться только частично даже при условии идеальной синхронизации часов.
            0
            Key, но не primary :)
          +2
          Обидно, что по Yii мало информации последнее время. пацриот во мне расстраивается
            0
            Очень печально если выбор технологии для вас больше религиозный/патриотический вопрос, чем обоснованный выбор.
            p.s. Автор фреймворка Китаец, в чем патриотизм то?)
              0

              Патриотизм может быть не только к стране, но и к идее, к фреймворку.
              Пс. Он японец вроде.

                +1
                Он китаец, у него и имя китайское и самое название Yii произносится созвучно с китайским словом «простой и развивающийся».
                  0

                  Qiang Xue — китаец.

                  0

                  Авторов версии 2 несколько. Но да, патриотизм не должен быть критерием выбора.

                0
                Правильный способ делать assert в PHPUnit.

                На этот вопрос уже давно ответил ментейнер PHPUnit
                Обсуждение на гитхабе
                Из документации
                Если коротко, то правильным будет $this, но т.к. PHPUnit сплошное легаси 15-летней давности, никто его не будет переписывать только ради этого
                  +1
                  Если коротко, то правильным будет $this
                  Думаю, что слово «правильным» тут абсолютно неуместно. Лучше сказать «каноничным».

                  И судя по комментариям в виде смайликов, большинство каноничный способ считают неправильным, что не удивительно.
                    +1
                    Согласен, но я о другом.
                    Тесткейс это полноценный объект, он хранит свое состояние на протяжении всего запуска, методы test* нестатические. Однако в нем присутствуют также и статические ассерты. Обычно класс используется либо полностью статически, как какой-нибудь helper, либо всегда инстанцируется, а здесь почему-то смешаны оба подхода.
                    Поэтому в контексте инстанса более правильным и очевидным будет использование $this, естественно и методы тогда должны быть нормальными.
                    Либо (о чем упомянули в issue) реализовать статический фасад по типу Assert::assertEquals(). Мне этот вариант кажется наиболее корректным.
                    Думаю в PHPUnit сделали это для некоего удобства, вроде как кода писать меньше, сразу все инструменты под рукой и т.п. Сэкономили на спичках. Ну либо скопировали из JUnit не заморачиваясь.

                Only users with full accounts can post comments. Log in, please.