From bef89dcc1e155079353361efab0b2cea63d5c95a Mon Sep 17 00:00:00 2001 From: Oleg Andreyev Date: Sun, 21 Mar 2021 01:53:45 +0200 Subject: [PATCH] added PHP 8.1 as experimental --- .github/workflows/ci.yml | 8 ++++++-- src/Environment.php | 2 +- src/Error/Error.php | 2 +- src/Extension/CoreExtension.php | 3 +++ src/Loader/FilesystemLoader.php | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e327cc9a..7878fd41d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: 'ubuntu-latest' - continue-on-error: true + continue-on-error: ${{ matrix.experimental }} strategy: matrix: @@ -24,6 +24,10 @@ jobs: - '7.3' - '7.4' - '8.0' + composer-options: [''] + experimental: [false] + include: + - { php-version: '8.1', experimental: true, composer-options: '--ignore-platform-req=php' } steps: - name: "Checkout code" @@ -51,7 +55,7 @@ jobs: key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('composer.json') }} restore-keys: ${{ runner.os }}-${{ matrix.php-version }}-composer- - - run: composer install + - run: composer install ${{ matrix.composer-options }} - name: "Install PHPUnit" run: vendor/bin/simple-phpunit install diff --git a/src/Environment.php b/src/Environment.php index b26c34769..694678a80 100644 --- a/src/Environment.php +++ b/src/Environment.php @@ -139,7 +139,7 @@ class Environment ], $options); $this->debug = (bool) $options['debug']; - $this->charset = strtoupper($options['charset']); + $this->charset = null === $options['charset'] ? null : strtoupper($options['charset']); $this->baseTemplateClass = $options['base_template_class']; $this->autoReload = null === $options['auto_reload'] ? $this->debug : (bool) $options['auto_reload']; $this->strictVariables = (bool) $options['strict_variables']; diff --git a/src/Error/Error.php b/src/Error/Error.php index 2aa70f153..9b7bb0b9f 100644 --- a/src/Error/Error.php +++ b/src/Error/Error.php @@ -268,7 +268,7 @@ class Error extends \Exception foreach ($backtrace as $trace) { if (isset($trace['object']) && $trace['object'] instanceof Template && 'Twig_Template' !== \get_class($trace['object'])) { $currentClass = \get_class($trace['object']); - $isEmbedContainer = 0 === strpos($templateClass, $currentClass); + $isEmbedContainer = null === $templateClass ? false : 0 === strpos($templateClass, $currentClass); if (null === $this->filename || ($this->filename == $trace['object']->getTemplateName() && !$isEmbedContainer)) { $template = $trace['object']; $templateClass = \get_class($trace['object']); diff --git a/src/Extension/CoreExtension.php b/src/Extension/CoreExtension.php index b52cb29be..62ce3af55 100644 --- a/src/Extension/CoreExtension.php +++ b/src/Extension/CoreExtension.php @@ -489,6 +489,9 @@ function twig_date_converter(Environment $env, $date = null, $timezone = null) } if (null === $date || 'now' === $date) { + if ($date === null) { + $date = 'now'; + } return new \DateTime($date, false !== $timezone ? $timezone : $env->getExtension('\Twig\Extension\CoreExtension')->getTimezone()); } diff --git a/src/Loader/FilesystemLoader.php b/src/Loader/FilesystemLoader.php index 54303ffda..7ca214580 100644 --- a/src/Loader/FilesystemLoader.php +++ b/src/Loader/FilesystemLoader.php @@ -37,7 +37,7 @@ class FilesystemLoader implements LoaderInterface, ExistsLoaderInterface, Source public function __construct($paths = [], $rootPath = null) { $this->rootPath = (null === $rootPath ? getcwd() : $rootPath).\DIRECTORY_SEPARATOR; - if (false !== $realPath = realpath($rootPath)) { + if ($rootPath !== null && false !== ($realPath = realpath($rootPath))) { $this->rootPath = $realPath.\DIRECTORY_SEPARATOR; }