PHP-Дайджест № 138 (20 августа – 2 сентября 2018)


    Свежая подборка со ссылками на новости и материалы. В выпуске: последняя бета PHP 7.3, Laravel Nova, сайт с идеями для следующих версий PHP, новости о Yii 3, порция полезных инструментов, видео, и многое другое. Приятного чтения!



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


    • PHP 7.3.0 Beta 3 — Последняя бета в цикле. Следующим релизом станет RC 1, который ожидается 13 сентября.
      • Среди изменений:
        • Улучшения Heredoc и Nowdoc синтаксиса RFC
        • Функции json_encode() и json_decode() будут бросать исключение в случае ошибки и наличия соответствующего флага RFC
        • Возможность использовать запятую после последнего аргумента функции RFC
        • Новая функция hrtime(), которая возвращает время высокой точности и не зависит от системного времени PR
        • Добавлена функция is_countable() для проверки на перечислимость RFC
        • Использование ссылок в list() RFC
        • Некоторые возможности объявлены устаревшими RFC 1, RFC 2
        • В функции работы с куками добавлена поддержка Same Site Cookie RFC
        • Значительное улучшение сборщика мусора PR
        и другие улучшения. Полный список изменений.
        Больше об изменениях можно прочитать в подробном разборе что нового в PHP 7.3 или быстро посмотреть в диффах.
    • Удаленное выполнение кода на packagist.org — Уязвимость, позволяющая выполнить код на сервере PHP-репозитория Packagist, передав специально сформированную строку вместо URL в форму добавления нового пакета. Уже исправлена.
    • Highload fwdays'18 — 15 сентября в Киеве пройдет масштабная конференция по хайлоаду. Докладов непосредственно о PHP не замечено, но в программе интересные выступления по масштабированию, архитектуре, и оптимизации. Промокод на скидку: PHPDIGEST_HL.
    • php-vote.com — Что бы вы хотели видеть в следующей версии PHP? На сайте можно добавить идею или обсудить и проголосовать за уже добавленные.


    Инструменты


    • nbs-system/snuffleupagus — Расширение безопасности для PHP 7 вдохновленное Suhosin. Предотвращает запуск потенциально небезопасного кода в рантайме.
    • adsr/phpspy — Легковесный профайлер для PHP 7.
    • adhocore/phint — Инструмент для быстрой генерации скелета приложения по шаблону.
    • phpstan/phpstan — Мощный статический анализатор. Посмотреть video что нового в v0.10 в докладе автора.
    • unreal4u/telegram-api — Асинхронная библиотека на PHP 7 для работы с Telegram bot API.
    • nette/utils — Набор полезных функций на каждый день. Пост в поддержку.


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




    Аудио и видеоматериалы



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

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

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

    Zfort Group

    272,11

    Компания

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

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

    Комментарии 16
      +4
      php-vote.com — Что бы вы хотели видеть в следующей версии PHP? На сайте можно добавить идею или обсудить и проголосовать за уже добавленные.
      Учитывая качество предложенных идей и отсутствие гайдлайнов по их добавлению, этот проект очень быстро умрёт и послужит только как средство выпускания пара. Мейнтейнеры php вряд ли захотят рыться в этой помойке, да и самые популярные идеи ими уже были наверняка рассмотрены и отвергнуты/отложены по каким-либо причинам.

      Видео Laracon US 2018
      На редкость бесполезные названия видео в плейлисте…
        0
        Согласен. А так как там даже нет возможности «войти с соцсетью», а нужно регистировать аккаунт по-старинке, то я просто посмотрел и закрыл сайт навсегда.
        +1
        Спасибо! Как всегда крутой дайджест!
          –3
          Лучше бы обязательность слова function в методах классов убрали.

          class MyClass {
          public function myMethod() {
          //some code here
          }
          }
          


          Ну зачем оно тут нужно? Только удлиняет код.
          В ES6 спокойно обходятся и без него.

          class MyClass {
          myMethod() {
          //some code here
          }
          }
          
            +10
            Чтобы код легче читался, так визуально легче воспринимать.

            P.S. Всегда было интересно, куда девают столько сэкономленного свободного времени Go-разработчики, которые пишут func вместо function :)
              0
              С одной стороны, действительно, времени экономится несущественное количество.

              А с другой — визуально было бы легче воспринимать, если бы можно было путать свойства класса и методы, но они и так уже визуально легко различаются по отсутствию/наличию доллара и скобок.

              Я не считаю, что читаемость пострадает, если function совсем исчезнет. А вот func вместо function — и вправду бред :)
                0
                Есть вот такое мнение: laracasts.com/series/php-bits/episodes/1
                Я с ним скорее не согласен, но оно, тем не менее, имеет право на существование.
                  0
                  М.б. на что-нибудь другое тратят? :)
                  А в чем тут недостаток читаемости проявится? Сразу ведь понятно, что это метод. В java, если не ошибаюсь, тоже подобный синтаксис. К тому же в свойства в php итак с $ начинаются. Даже по этому принципу никак не спутаешь. А что еще, кроме методов и свойств, может быть внутри класса? :)
                    +2
                    Ну и какой смысл изменять лексику языка, если единственная причина для этого — моральное самоудовлетворение php-шников, которым больше зашел JS? Да и приводить JS как пример — нет уж, спасибо, пусть там будет своя помойка, личная.
                      –1
                      моральное самоудовлетворение


                      Тут вопрос скорее не в «моральном самоудовлетворении», а в краткости, скорости разработки, удобстве работы с ЯП. Поскольку сейчас, каждый раз создавая action в контроллере / getSetter в сущности я делаю лишнюю никому не нужную работу. На мой взгляд, тем самым только захламляя код.

                      php-шников, которым больше зашел JS


                      Вряд ли такие существуют. :) Ну, или они давно уже на ноде сидят. Вот таких знаю.
                      А в целом, не совсем понял подкол про js. Почему бы не брать у других ЯП. то, что в них хорошо сделано? Анонимные функции взяли ведь. И ничего, вроде бы пока не подавился никто. А ведь это в куда большей степени фишка js.
                        +2
                        Тут вопрос скорее не в «моральном самоудовлетворении», а в краткости, скорости разработки, удобстве работы с ЯП.

                        1. Мне удобно работать с ЯП, у которого читаемый синтаксис, а не набор стрелок\скобок\символов.
                        2. О какой скорости идет речь? Если уж начистоту, 99% времени мы тратим на мышление, а не на написание кода. И, извиняюсь, сколько у вас займет времени написание слова function? У меня где то в районе секунды.

                        Анонимные функции взяли ведь. И ничего, вроде бы пока не подавился никто. А ведь это в куда большей степени фишка js.

                        Анонимные функции сперли у JS? Надеюсь вы так шутите.
                          0
                          1. Ну что ж, это, безусловно, дело вкуса. На мой вкус, если данная читаемая строка ничего в коде не значит, то ее вполне можно опустить. Более того, рискну предположить, что если возможность пропуска слова «function» все-таки появится, через пару лет это станет стандартом. Так же, как и [].
                          2. И у меня, примерно, секунду. Ну, может полторы. Умножаем хотя бы на 40 функций за день — получаем минуту исключительно на написания «function» перед каждым методом. Не сказать, что это самая большая проблема в моей производительности, но я спокойно бы обошелся без этой излишней тренировки моего десятипальцевого английского. Просто потому что это не нужно. И таких секунд/полсекунд в php достаточно. Да хоть тот же $ взять. :) но его-то уж наверняка убрать нельзя.
                          3. А почему «сперли»? Мне, в принципе, без разницы как именно разработчики php додумались до этой идеи. Но такая концепция и реализация на тот момент уже существовала в js. И php, улучшая свои функциональные возможности, почти полностью ее повторил. Ну, кроме замыканий, разумеется. А что при этом было в голове разработчика, мне кажется несущественно.
                            +1
                            3. В PHP есть замыкания, только внешний контекст нужно передавать явно (Ключевое слово use). С моей точки зрения, это даже лучше, чем тащить весь внешний контекст как в JS.

                            Анонимные функции и замыкания появились задолго до JS (Смотри Lisp, например) и на данный момент есть практически во всех современных языках программирования, JS здесь вообще не при чем.
                          0
                          скорости разработки

                          f<tab>myMethod() это два нажания клавиши.


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

                      +1
                      P.S. Всегда было интересно, куда девают столько сэкономленного свободного времени Go-разработчики, которые пишут func вместо function :)

                      тратим на написание if err != nil ))
                      +7

                      Мне наоборот не нравятся эти альтернативные синтаксисы. т.к. по факту это значит что нужно будет пользоваться обеими синтаксисами (в зависимости от проекта). И вся эта js неразбериха не пример для подражания.

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

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