Русский
Русский
English
Статистика
Реклама

PHP-Дайджест 186 (3 17 августа 2020)


Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 1, снова о синтаксисе атрибутов в PHP 8: #[Attr] vs @[Attr], предложение по синтаксису для BigInt, обзоры PHP8 и много других видео, инструменты, стримы, подкасты.

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



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



PHP Internals


  • [RFC] Shorter Attribute Syntax Change История с синтаксисом атрибутов в PHP 8 продолжается. О финальном голосовании было в канале, но позже оно было приостановлено из-за того, что не был соблюден регламент по 2х-недельному обсуждению.

    Tycon Andre привел примеры, не очень удачного поведения варианта #[Attr] в PHP 7. C другой стороны, какая разница, если остальные варианты просто отвалятся с ошибкой парсинга?

    И сравнение синтаксисов @@Attr, #[Attr], <<Attr>> и @[Attr]:
    Скрытый текст
    @@ORM\Entity@@ORM\Table("user")class User{    @@ORM\Id @@ORM\Column("integer") @@ORM\GeneratedValue    private $id;    @@ORM\Column("string", ORM\Column::UNIQUE)    @@Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])    private $email;}#[  ORM\Entity,  ORM\Table("user")]class User{    #[ORM\Id, ORM\Column("integer"), ORM\GeneratedValue]    private $id;    #[ORM\Column("string", ORM\Column::UNIQUE)]    #[Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])]    private $email;}@[  ORM\Entity,  ORM\Table("user")]class User{    @[ORM\Id, ORM\Column("integer"), ORM\GeneratedValue]    private $id;    @[ORM\Column("string", ORM\Column::UNIQUE)]    @[Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])]    private $email;}<<  ORM\Entity,  ORM\Table("user")>>class User{    <<ORM\Id, ORM\Column("integer"), ORM\GeneratedValue>>    private $id;    <<ORM\Column("string", ORM\Column::UNIQUE)>>    <<Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])>>    private $email;}@:ORM\Entity@:ORM\Table("user")class User{    @:ORM\Id @:ORM\Column("integer") @:ORM\GeneratedValue    private $id;    @:ORM\Column("string", ORM\Column::UNIQUE)    @:Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])    private $email;}
    
  • [RFC] Named Parameters explicit opt in Документ был переделан и теперь вместо переименования параметров предлагает лишь явно указывать, что данный параметр именованный.
    // Именованный параметр включен явноfunction callBar(Foo $:parameterName) {    $internalName->bar();}$x = new Foo();callBar(parameterName: $x);// Параметр не именованныйfunction callBar($externalName) {    $externalName->bar();}$x = new Foo();callBar(externalName: $x); // Error: cannot call function callBar() using parameter $externalName by name.
    
    Поскольку PHP 8 уже заморожен для новых фич, то данное предложение возможно только в 8.1, да и то маловероятно.
  • [Proposal] Bigint shorthand (123n) for GMP objects Интересное предложение пока без официального RFC.

    Предлагается реализовать в PHP синтаксис для больших чисел аналогичный JavaScript с добавлением в конце суффикса n:
    $theBiggestInt = 9007199254740991n
    

    При этом под капотом будет использоваться GMP. А поскольку для объектов GMP уже перегружены арифметические операторы, а также битовые и сравнения, то работа с такими числами будет прозрачной.
  • В рамках дискуссии на тему улучшения интерактивного шелла PHP (php -a), предложен PR, который позволит задавать колбэк отрабатывающий на вывод из интерактивного шелла. Или пока можно использовать bobthecow/psysh.
  • cross[RFC] PHP Namespace Policy Отклонен.

Инструменты


  • PHPUnit 9.3 C поддержкой PHP 8 и Xdebug 3.
  • sebastianbergmann/cli-parser Микропакет для парсинга аргументов командной строки, выделенный из PHPUnit.
  • coduo/php-matcher Валидация данных по паттернам для тех, кто не хочет в регекспы.
  • phpfn/phpfn Функциональные примитивы от SerafimArts.
  • hidehalo/nanoid-php PHP-реализация Nanoid безопасного URL-совместимого генератора уникальных идентификаторов.
  • woohoolabs/zen Простой PSR-11-совместимый контейнер с генератором файла предзагрузки.
  • loophp/collection Легковесные коллекции.

Symfony



Laravel



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



Аудио/Видео



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





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

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

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

Прислать ссылку
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест 185
Источник: habr.com
К списку статей
Опубликовано: 17.08.2020 12:08:41
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Разработка веб-сайтов

Php

Symfony

Yii

Laravel

Дайджест

Php-дайджест

Php 8

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru