PHP-Дайджест № 126 (12 – 25 февраля 2018)



    Свежая подборка со ссылками на новости и материалы. В выпуске: игра-головоломка, Yii 2.0.14, PHP-DI 6.0 и другие релизы, предложение о неизменяемых классах из PHP Internals, порция полезных инструментов, и многое другое.
    Приятного чтения!

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


    • habr Yii 2.0.14 — Под капотом больше сотни улучшений и исправлений почти во всех компонентах фреймворка. Кроме того, это последний релиз в версии Yii 2.0, содержащий улучшения. В дальнейшем core-команда сконцентрирует силы на разработке версии 2.1.
    • PHP-DI 6.0 — Добавлена компиляция контейнера и другие улучшения.
    • В nginx 1.13.9 добавлен HTTP/2 Server Push — Пара примеров использования с PHP тут и тут.
    • Sylius v1.1.0

    PHP Internals


    • [RFC] Immutable classes and properties — Предлагается реализовать неизменяемые классы и свойства:

      immutable class Email {
        public $email;
       
        public function __construct ($email) {
          $this->email = $email;
        }
      }
       
      $email = new Email("foo@php.net");
      $email->email = "bar@php.net" // Call will result in Fatal Error
      

      class User {
        private $id;
        public immutable $email;
       
        public function __construct ($id, $email) {
          $this->id = $id;
          $this->email = $email;
        }
      }
      


    Инструменты


    • rest-control/rest-control — Инструмент для тестирования и валидации REST-сервисов.
    • fredsted/webhook.site — Полезный инструмент для тестирования вебхуков.
    • php-school/cli-menu — Интерактивные меню для командной строки.


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




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


    • returntrue.win — Игра-головоломка по РНP, в которой требуется передать такой аргумент в функцию, чтобы она вернула true. Возможны несколько вариантов ответов.
      Скрытый текст

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

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

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

    Zfort Group

    304,00

    Компания

    Поделиться публикацией

    Похожие публикации

    Комментарии 17
      0
      Может кто нибудь привести пример реального использования immutable, где private и protected не применимо?! Я уже голову сломал в догадках.
        +3
        Думается, только сокращение кода — не писать геттеры на не-public свойства, а просто immutable
          0

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

          +1

          Скорее не "private и protected неприменимо", а "писать меньше кода с гарантиями неизменяемости и идентичности по значению на уровне языка".

            0
            Я могу. Value-objects.
              +1

              VO, DTO и т. п. вполне реализуются на private+setters, но RFC предлагает для тех же целей писать меньше кода и получать больше гарантий неизменяемости.

                0

                мне больше понравилась идея вернуть by value объекты из php4 (естественно не для всего а только для того что отмечено кейвордом).

              +1
              Похоже, что пример реального использования immutable — как раз выкидывание фатала, если где-то случайно происходит изменение того, что нельзя было менять, например айдишника юзера. Именно в невозможности это сделать и есть радость от immutable, дарующая душевное спокойствие тимлидам. Получается так.
                0
                Сравнение по значению
                0
                1) Более наглядно что объект неизменяемый;
                2) если свойство — указатель на другой класс, то ни геттеры ни ограничение доступов не спасёт;
                3) COW (фантазии?).
                0
                returntrue.win — простенькая штука. На все 11 вопросов достаточно легко ответил. Только 6-й заставил немного подумать.
                  +1
                  Еще php головоломки
                  github.com/chr-hertel/php-magic-tricks
                    +1
                    Угу, были в 122 выпуске
                    0
                    В дополнения к иммутейблам бы ещё какой-нибудь модификатор, типа, изнутри свойство менять можно, а снаружи оно доступно только для чтения.
                      0
                      Так это же можно реализовать нужными геттерами и сеттерами?
                        0
                        Было интересное предложение по аксессорам несколько лет назад wiki.php.net/rfc/propertygetsetsyntax-v1.2
                          0

                          Да, жаль не приняли...

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое