Автор PHPUnit. Представляем PHP 7.0 7.1, PHPUnit 5 и 6.



  • PHPUnit 4.8 не поддерживает PHP 7
  • PHPUnit 4 -> 5 для PHP 5.6 до PHP 7.1

Основные изменения PHP 7

  • Рефакторинг
  • Очистка
  • Представление
  • Система типов
  • Исполнитель: быстрый, использует меньше памяти, использует на 30% меньше процессора, чем PHP 5.6.
  • Компилятор: генерирует лучший байт-код
  • Парсер: теперь основан на абстрактном синтаксическом дереве (AST)
  • Лексер: контекстно-зависимый

不要用看起來很但是很難理解的語法,看了十秒還是看不懂那就把它刪掉

PHP 7: фатальных ошибок нет!? В PHPUnit ошибка в одном тесте, он перейдет к следующему тесту.

Подсказка типа

function test(string $a, int $b, float $c)
{
   var_dump($a, $b, $c);
}

строгий режим:

declare(strict_types=1);

объявления типов возврата

function test() : int
{
    return 1;
}

оператор КОСМИЧЕСКОГО КОРАБЛЯ

// in PHP 7
return $a <=> $b;
// in PHP 5.6 it means
return ($a < $b) ? -1 : ( ($a > $b) ? 1 : 0);

PHPUnit

(5.2)

исключения тестирования

4.8 是( 只能 ?) 用 @Annotations

$this->expectException(ExpectedException::class);

(5.3)

новые предупреждения для mock

(5.4)

PHPUnit\Framework\TestCase
// alias for
PHPUnit_Framework_TestCase

CREATEMOCK()

$foo = $this->createMock(Foo::class);
$foo = $this->createPartialMock(Foo::class);
// getMock() is deprecate

PHP 7.1

  • void возвращаемый тип
function test() : void
{
    return 'foo';
}
// fatal error
  • типы, допускающие значение null
function test(?int $x)
// 可能 null 不然得是 int
  • повторяемый супертип
function test(iterable $element)
{
}
  • перехват нескольких типов исключений
try {}
catch (xxException | ooException) {
}
  • постоянная видимость класса
class
{
    public const A = 0;
}

асинхронная обработка сигналов
https://wiki.php.net/rfc/async_signals

В настоящее время php может обрабатывать сигналы ОС, используя расширения pcntl:

синхронно, вызывая pcntl_signal_dispatch() вручную

асинхронно, компилируя скрипты с declare(ticks=1)

pcntl_async_signals(1);

Версии PHPUnit 5.6

PHP 7, версия PHPUnit 5.7



thePHP.cc — Даты — Обзор
Unter der Schirmherrschaft von NRW-Wirtschaftsminister Garrelt Duin findet am 10.11.2016 die PHP.RUHR Fachtagung zum…thephp.cc