Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
* text=auto eol=lf

/tests export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.php_cs export-ignore
.travis.yml export-ignore
phpcs.xml.dist export-ignore
phpunit.xml.dist export-ignore
/tests export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.php-cs-fixer.php export-ignore
phpcs.xml.dist export-ignore
phpunit.xml.dist export-ignore
.phpstan.neon export-ignore
37 changes: 17 additions & 20 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: "testing"

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
qa:
Expand All @@ -22,10 +22,10 @@ jobs:
id: composer-cache
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-

- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
Expand All @@ -40,15 +40,15 @@ jobs:

strategy:
matrix:
php:
- 7.2
- 7.3
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3
- 8.4
php:
- 7.2
- 7.3
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3
- 8.4

steps:
- name: Checkout
Expand All @@ -71,6 +71,3 @@ jobs:

- name: Tests
run: composer test

- name: Tests coverage
run: composer coverage
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ vendor
composer.lock
coverage
*.cache
.idea
kit
10 changes: 10 additions & 0 deletions .php-cs-fixer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

return My\PhpCsFixerConfig::create()
->setFinder(
PhpCsFixer\Finder::create()
->files()
->name('*.php')
->in(__DIR__.'/src')
->in(__DIR__.'/tests')
);
7 changes: 7 additions & 0 deletions .phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
parameters:
level: 8
paths:
- src
- tests
excludePaths:
- tests/RequestHandlerTest.php
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2019
Copyright (c) 2019-2025

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
18 changes: 9 additions & 9 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@
},
"require": {
"php": "^7.2 || ^8.0",
"middlewares/utils": "^3.0 || ^4.0",
"psr/http-server-middleware": "^1.0",
"middlewares/utils": "^2 || ^3 || ^4",
"psr/http-server-middleware": "^1",
"psr/container": "^1.0||^2.0"
},
"require-dev": {
"phpunit/phpunit": "^8|^9",
"friendsofphp/php-cs-fixer": "^2.0",
"oscarotero/php-cs-fixer-config": "^1.0",
"squizlabs/php_codesniffer": "^3.0",
"phpstan/phpstan": "^0.12",
"laminas/laminas-diactoros": "^2.3 || ^3.0"
"phpunit/phpunit": "^8 || ^9",
"friendsofphp/php-cs-fixer": "^3",
"oscarotero/php-cs-fixer-config": "^2",
"squizlabs/php_codesniffer": "^3",
"phpstan/phpstan": "^1 || ^2",
"laminas/laminas-diactoros": "^2 || ^3"
},
"autoload": {
"psr-4": {
Expand All @@ -50,4 +50,4 @@
"coverage": "phpunit --coverage-text",
"coverage-html": "phpunit --coverage-html=coverage"
}
}
}
16 changes: 16 additions & 0 deletions phpcs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ruleset name="Middlewares coding standard">
<description>Middlewares coding standard</description>

<!-- display progress -->
<arg value="p"/>
<arg name="report" value="full"/>
<arg name="colors"/>

<!-- coding standard -->
<rule ref="PSR2"/>

<!-- Paths to check -->
<file>src</file>
<file>tests</file>
</ruleset>
33 changes: 33 additions & 0 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
backupGlobals="false"
backupStaticAttributes="false"
beStrictAboutOutputDuringTests="true"
beStrictAboutTestsThatDoNotTestAnything="true"
beStrictAboutTodoAnnotatedTests="true"
colors="true"
verbose="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
failOnWarning="true">
<testsuites>
<testsuite name="ReferrerSpam test suite">
<directory>tests</directory>
</testsuite>
</testsuites>

<filter>
<whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="true">
<directory>./src</directory>
<exclude>
<directory>./tests</directory>
<directory>./vendor</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
2 changes: 1 addition & 1 deletion src/RequestHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class RequestHandler implements MiddlewareInterface
/**
* Set the resolver instance.
*/
public function __construct(ContainerInterface $container = null)
public function __construct(?ContainerInterface $container = null)
{
$this->container = $container ?: new RequestHandlerContainer();
}
Expand Down
1 change: 1 addition & 0 deletions tests/Controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public function run(): ResponseInterface
{
$response = Factory::createResponse();
$response->getBody()->write('Ok');

return $response;
}

Expand Down
21 changes: 11 additions & 10 deletions tests/RequestHandlerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use Middlewares\Utils\Factory;
use Middlewares\Utils\RequestHandler as UtilsRequestHandler;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use RuntimeException;
Expand All @@ -22,8 +21,10 @@ class RequestHandlerTest extends TestCase
*/
public static function assertMatchesRegularExpression(string $pattern, string $string, string $message = ''): void
{
/* @phpstan-ignore function.alreadyNarrowedType */
if (method_exists(parent::class, 'assertMatchesRegularExpression')) {
parent::assertMatchesRegularExpression($pattern, $string, $message);

return;
}

Expand All @@ -35,7 +36,7 @@ public static function handleRequest(ServerRequestInterface $request): ResponseI
return Factory::createResponse();
}

public function testString()
public function testString(): void
{
$response = Dispatcher::run(
[
Expand All @@ -47,7 +48,7 @@ public function testString()
self::assertSame(200, $response->getStatusCode());
}

public function testCustomAttribute()
public function testCustomAttribute(): void
{
$response = Dispatcher::run(
[
Expand All @@ -59,7 +60,7 @@ public function testCustomAttribute()
self::assertSame(200, $response->getStatusCode());
}

public function testInvalidHandler()
public function testInvalidHandler(): void
{
$this->expectException(RuntimeException::class);

Expand All @@ -71,7 +72,7 @@ public function testInvalidHandler()
);
}

public function testArrayHandler()
public function testArrayHandler(): void
{
$request = Factory::createServerRequest('GET', '/');
$request = $request->withAttribute('request-handler', ['Middlewares\\Tests\\Controller', 'run']);
Expand All @@ -86,7 +87,7 @@ public function testArrayHandler()
self::assertSame('Ok', (string) $response->getBody());
}

public function testRequestHandler()
public function testRequestHandler(): void
{
$response = Dispatcher::run(
[
Expand All @@ -102,7 +103,7 @@ public function testRequestHandler()
self::assertSame('Bar', $response->getHeaderLine('X-Foo'));
}

public function testClosure()
public function testClosure(): void
{
$response = Dispatcher::run(
[
Expand All @@ -118,7 +119,7 @@ public function testClosure()
self::assertSame('Bar', $response->getHeaderLine('X-Foo'));
}

public function testContinueOnEmptyClosure()
public function testContinueOnEmptyClosure(): void
{
$response = Dispatcher::run(
[
Expand All @@ -133,7 +134,7 @@ function () {
self::assertSame('Fallback', (string) $response->getBody());
}

public function testThrowExceptionOnEmpty()
public function testThrowExceptionOnEmpty(): void
{
$response = Dispatcher::run(
[
Expand All @@ -156,7 +157,7 @@ function () {
self::assertSame('Empty request handler', (string) $response->getBody());
}

public function testThrowExceptionOnInvalidHandler()
public function testThrowExceptionOnInvalidHandler(): void
{
$response = Dispatcher::run(
[
Expand Down