Updating to php8.2 kicking and screaming
This commit is contained in:
parent
e0cddd9ce8
commit
eda9bec6a5
12 changed files with 239 additions and 20 deletions
30
.github/workflows/lint-php.yml
vendored
Normal file
30
.github/workflows/lint-php.yml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
name: Lint PHP
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
php-cs-fixer:
|
||||
name: PHP-CS-Fixer
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Action
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHP-CS-Fixer
|
||||
run: |
|
||||
docker-compose run web \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/php-cs-fixer fix --dry-run
|
||||
phpstan:
|
||||
name: PHPStan
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Action
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHPStan
|
||||
run: |
|
||||
docker-compose run web \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/phpstan analyse src/ test/ bin
|
61
.github/workflows/unit-tests.yml
vendored
Normal file
61
.github/workflows/unit-tests.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
name: Test
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
ingest:
|
||||
name: PHPUnit/Ingest
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Install
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHPUnit
|
||||
run: |
|
||||
docker-compose run web \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/paratest \
|
||||
--testsuite=Ingest
|
||||
|
||||
human:
|
||||
name: PHPUnit/Human
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Install
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHPUnit
|
||||
run: |
|
||||
docker-compose run test \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/phpunit \
|
||||
--testsuite=Human
|
||||
|
||||
models:
|
||||
name: PHPUnit/Models
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Install
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHPUnit
|
||||
run: |
|
||||
docker-compose run test \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/phpunit \
|
||||
--testsuite=Models
|
||||
services:
|
||||
name: PHPUnit/Services
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Composer Install
|
||||
run: docker run -v $PWD/:/app gone/php:cli-7.4 /usr/local/bin/composer install
|
||||
- name: PHPUnit
|
||||
run: |
|
||||
docker-compose run test \
|
||||
phpdbg -qrr -d memory_limit=-1 \
|
||||
vendor/bin/phpunit \
|
||||
--testsuite=Services
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -6,4 +6,7 @@ vendor/
|
|||
.php_cs.cache
|
||||
docs
|
||||
phploc.xml
|
||||
cghooks.lock
|
||||
cghooks.lock
|
||||
/.php-cs-fixer.cache
|
||||
/.coverage
|
||||
/phpunit.xml
|
|
@ -13,7 +13,7 @@
|
|||
"sort-packages": true
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0",
|
||||
"php": ">=8.2",
|
||||
"ext-apcu": "*",
|
||||
"ext-curl": "*",
|
||||
"ext-iconv": "*",
|
||||
|
@ -62,6 +62,7 @@
|
|||
"slim/twig-view": "^3.2",
|
||||
"squizlabs/php_codesniffer": "3.*",
|
||||
"swaggest/json-schema": "^0.12.39",
|
||||
"symfony/polyfill-intl-icu": "^1.29",
|
||||
"symfony/translation": "^5.1",
|
||||
"symfony/twig-bridge": "^5.1",
|
||||
"symfony/yaml": "^5.1",
|
||||
|
@ -91,7 +92,11 @@
|
|||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Benzine\\": "src",
|
||||
"Benzine\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Benzine\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
|
|
58
phpunit.xml.dist
Normal file
58
phpunit.xml.dist
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.2/phpunit.xsd"
|
||||
bootstrap="tests/bootstrap.php"
|
||||
enforceTimeLimit="true"
|
||||
defaultTimeLimit="3"
|
||||
executionOrder="depends,defects"
|
||||
cacheResult="true"
|
||||
cacheResultFile=".phpunit.result.cache"
|
||||
testdox="true"
|
||||
colors="true"
|
||||
failOnRisky="true"
|
||||
failOnWarning="true"
|
||||
failOnIncomplete="false"
|
||||
failOnSkipped="false"
|
||||
failOnDeprecation="true"
|
||||
failOnEmptyTestSuite="true"
|
||||
failOnNotice="true"
|
||||
displayDetailsOnSkippedTests="true"
|
||||
displayDetailsOnTestsThatTriggerDeprecations="true"
|
||||
displayDetailsOnTestsThatTriggerErrors="true"
|
||||
displayDetailsOnTestsThatTriggerNotices="true"
|
||||
displayDetailsOnTestsThatTriggerWarnings="true"
|
||||
beStrictAboutOutputDuringTests="true"
|
||||
stopOnDefect="false"
|
||||
>
|
||||
<php>
|
||||
<ini name="memory_limit" value="128M" />
|
||||
<ini name="display_errors" value="On"/>
|
||||
<ini name="display_startup_errors" value="On"/>
|
||||
<ini name="error_reporting" value="E_ALL"/>
|
||||
<env name="BENZINE_CONFIG_PATH" value="tests/.benzine.yml"/>
|
||||
<env name="XDEBUG_MODE" value="coverage"/>
|
||||
</php>
|
||||
<coverage includeUncoveredFiles="true" cacheDirectory=".coverage/cache">
|
||||
<report>
|
||||
<clover outputFile=".coverage/clover.xml"/>
|
||||
<html outputDirectory=".coverage/html"/>
|
||||
<text outputFile="php://stdout" showOnlySummary="true"/>
|
||||
</report>
|
||||
</coverage>
|
||||
<extensions>
|
||||
<bootstrap class="Ergebnis\PHPUnit\SlowTestDetector\Extension"/>
|
||||
</extensions>
|
||||
<testsuites>
|
||||
<testsuite name="Test Suite">
|
||||
<directory>./tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<source>
|
||||
<include>
|
||||
<directory suffix=".php">src</directory>
|
||||
</include>
|
||||
<exclude>
|
||||
<directory suffix=".php">src/Fixtures</directory>
|
||||
</exclude>
|
||||
</source>
|
||||
</phpunit>
|
|
@ -26,7 +26,7 @@ class EnvironmentService
|
|||
return $this->environmentVariables;
|
||||
}
|
||||
|
||||
public function get(string $key, ?string $default = null)
|
||||
public function get(string $key, mixed $default = null)
|
||||
{
|
||||
if (isset($this->environmentVariables[$key])) {
|
||||
return $this->environmentVariables[$key];
|
||||
|
|
|
@ -55,24 +55,24 @@ class SessionService implements \SessionHandlerInterface
|
|||
session_start();
|
||||
}
|
||||
|
||||
public function close()
|
||||
public function close(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function destroy($session_id)
|
||||
public function destroy(string $id): bool
|
||||
{
|
||||
$this->oldID = $session_id;
|
||||
$this->oldID = $id;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function gc($maxlifetime)
|
||||
public function gc(int $max_lifetime): false | int
|
||||
{
|
||||
return true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function open($save_path, $name)
|
||||
public function open(string $path, string $name): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -86,25 +86,23 @@ class SessionService implements \SessionHandlerInterface
|
|||
return $this->redisIsAvailable;
|
||||
}
|
||||
|
||||
public function read($session_id)
|
||||
public function read(string $id): false | string
|
||||
{
|
||||
if ($this->useAPCU()) {
|
||||
if (apcu_exists('read-' . $session_id)) {
|
||||
return apcu_fetch('read-' . $session_id);
|
||||
if (apcu_exists('read-' . $id)) {
|
||||
return apcu_fetch('read-' . $id);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($this->oldID)) {
|
||||
$session_id = $this->oldID ? $this->oldID : $session_id;
|
||||
}
|
||||
$id = !empty($this->oldID) ? $this->oldID : $id;
|
||||
|
||||
$result = '';
|
||||
if ($this->useRedis()) {
|
||||
$serialised = $this->redis->get("session:{$session_id}");
|
||||
$serialised = $this->redis->get("session:{$id}");
|
||||
if (null != $serialised) {
|
||||
if (!empty($this->oldID)) {
|
||||
// clean up old session after regenerate
|
||||
$this->redis->del("session:{$session_id}");
|
||||
$this->redis->del("session:{$id}");
|
||||
$this->oldID = null;
|
||||
}
|
||||
$result = unserialize($serialised);
|
||||
|
@ -112,9 +110,9 @@ class SessionService implements \SessionHandlerInterface
|
|||
}
|
||||
|
||||
if ($this->useAPCU()) {
|
||||
apcu_store('read-' . $session_id, $result, 30);
|
||||
apcu_store('read-' . $id, $result, 30);
|
||||
} else {
|
||||
$this->dirtyCheck['read-' . $session_id] = crc32($result);
|
||||
$this->dirtyCheck['read-' . $id] = crc32($result);
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
|
6
tests/.benzine.yml
Normal file
6
tests/.benzine.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
application:
|
||||
name: Core Self Test App
|
||||
core: Benzine\Tests\TestApp
|
||||
default_access: public
|
||||
debug: true
|
||||
root: /app/tests
|
18
tests/AbstractCoreTest.php
Normal file
18
tests/AbstractCoreTest.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Benzine\Tests;
|
||||
|
||||
use Benzine\App;
|
||||
|
||||
abstract class AbstractCoreTest extends AbstractTestCase
|
||||
{
|
||||
protected App $app;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->app = new TestApp();
|
||||
}
|
||||
}
|
23
tests/Dependencies/Monolog/MonologTest.php
Normal file
23
tests/Dependencies/Monolog/MonologTest.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Benzine\Tests\Dependencies\Monolog;
|
||||
|
||||
use Benzine\Tests\AbstractCoreTest;
|
||||
use Monolog\Logger;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @coversNothing
|
||||
*/
|
||||
class MonologTest extends AbstractCoreTest
|
||||
{
|
||||
public function testMonolog(): void
|
||||
{
|
||||
$logger = $this->app->get(Logger::class);
|
||||
$this->assertInstanceOf(LoggerInterface::class, $logger);
|
||||
}
|
||||
}
|
9
tests/TestApp.php
Normal file
9
tests/TestApp.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Benzine\Tests;
|
||||
|
||||
use Benzine\App;
|
||||
|
||||
class TestApp extends App {}
|
8
tests/bootstrap.php
Normal file
8
tests/bootstrap.php
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
ini_set('xdebug.mode=coverage', 'on');
|
||||
define('APP_ROOT', __DIR__ . '/..');
|
||||
|
||||
require_once APP_ROOT . '/vendor/autoload.php';
|
Loading…
Reference in a new issue