Skip to content

Commit

Permalink
Merge pull request #6 from zfegg/develop
Browse files Browse the repository at this point in the history
Migrate to Laminas
  • Loading branch information
Moln committed Jan 9, 2020
2 parents 2067055 + 7dd1d2a commit b9edfa2
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 46 deletions.
19 changes: 10 additions & 9 deletions composer.json
Expand Up @@ -2,19 +2,20 @@
"name": "zfegg/content-validation",
"description": "Content validation for PSR-7 http message and zend-mvc",
"require": {
"php":"^7.1",
"zendframework/zend-inputfilter": "^2.7",
"zendframework/zend-servicemanager": "^3.1",
"psr/http-server-middleware": "^1.0"
"php": "^7.1",
"laminas/laminas-inputfilter": "^2.7",
"laminas/laminas-servicemanager": "^3.1",
"psr/http-server-middleware": "^1.0",
"laminas/laminas-dependency-plugin": "^1.0"
},
"license": "MIT",
"require-dev": {
"squizlabs/php_codesniffer": "^2.7",
"phpunit/phpunit": "^6",
"zendframework/zend-mvc": "^3.0",
"zendframework/zend-eventmanager": "^3.0",
"zendframework/zend-diactoros": "^1.3",
"zendframework/zend-expressive-router": "^3.0",
"laminas/laminas-mvc": "^3.0",
"laminas/laminas-eventmanager": "^3.0",
"laminas/laminas-diactoros": "^1.3",
"mezzio/mezzio-router": "^3.0",
"slim/slim": "^3.9"
},
"autoload": {
Expand All @@ -30,4 +31,4 @@
"suggest": {
"psr/http-message": "Use psr7-middleware required"
}
}
}
12 changes: 6 additions & 6 deletions src/ContentValidationListener.php
Expand Up @@ -2,10 +2,10 @@

namespace Zfegg\ContentValidation;

use Zend\EventManager\AbstractListenerAggregate;
use Zend\EventManager\EventManagerInterface;
use Zend\Mvc\MvcEvent;
use Zend\Stdlib\ResponseInterface;
use Laminas\EventManager\AbstractListenerAggregate;
use Laminas\EventManager\EventManagerInterface;
use Laminas\Mvc\MvcEvent;
use Laminas\Stdlib\ResponseInterface;

/**
* Class ContentValidation
Expand All @@ -30,7 +30,7 @@ public function attach(EventManagerInterface $events, $priority = 1000)

public function onInvalid(MvcEvent $e)
{
/** @var \Zend\Http\PhpEnvironment\Response $response */
/** @var \Laminas\Http\PhpEnvironment\Response $response */
$response = $e->getResponse();

$response->setStatusCode(422);
Expand All @@ -46,7 +46,7 @@ public function onInvalid(MvcEvent $e)

public function validation(MvcEvent $e)
{
/** @var \Zend\Http\PhpEnvironment\Request $request */
/** @var \Laminas\Http\PhpEnvironment\Request $request */
$request = $e->getRequest();
$rm = $e->getRouteMatch();
$controllerName = $rm->getParam('controller');
Expand Down
16 changes: 13 additions & 3 deletions src/ContentValidationMiddleware.php
Expand Up @@ -7,8 +7,8 @@
use Psr\Http\Message\UploadedFileInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Zend\InputFilter\InputFilterInterface;
use Zend\InputFilter\InputFilterPluginManager;
use Laminas\InputFilter\InputFilterInterface;
use Laminas\InputFilter\InputFilterPluginManager;

/**
* Class ContentValidation
Expand All @@ -23,8 +23,11 @@ class ContentValidationMiddleware implements MiddlewareInterface
const INPUT_FILTER = 'input_filter';

protected $inputFilter;

protected $responseFactory;

protected $overwriteParsedBody = false;

/**
* @return InputFilterInterface
*/
Expand All @@ -48,7 +51,8 @@ public function setInputFilter(InputFilterInterface $inputFilter)
public function __construct(
InputFilterPluginManager $inputFilters = null,
?callable $invalidHandler = null,
?callable $responseFactory = null
?callable $responseFactory = null,
bool $overwriteParsedBody = false
) {
if ($inputFilters) {
$this->setInputFilterManager($inputFilters);
Expand All @@ -61,6 +65,8 @@ public function __construct(
if ($responseFactory) {
$this->setResponseFactory($responseFactory);
}

$this->overwriteParsedBody = $overwriteParsedBody;
}

/**
Expand Down Expand Up @@ -121,6 +127,10 @@ public function process(
);
}

if ($this->overwriteParsedBody) {
$request = $request->withParsedBody($inputFilter->getValues());
}

return $handler->handle($request);
}

Expand Down
8 changes: 6 additions & 2 deletions src/ContentValidationMiddlewareFactory.php
Expand Up @@ -4,7 +4,7 @@

use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface;
use Zend\InputFilter\InputFilterPluginManager;
use Laminas\InputFilter\InputFilterPluginManager;

class ContentValidationMiddlewareFactory
{
Expand All @@ -14,6 +14,9 @@ public function __invoke(
$requestedName = null,
array $options = null
) {
$config = $container->has('config')
? $container->get('config')['zfegg'][ContentValidationMiddleware::class] ?? []
: [];
$requestedName = $requestedName ?: ContentValidationMiddleware::class;

$response = $container->has(ResponseInterface::class) ?
Expand All @@ -25,7 +28,8 @@ public function __invoke(
return new $requestedName(
$inputFilterManager,
null,
$response
$response,
$config['overwrite_parsed_body'] ?? false
);
}
}
4 changes: 2 additions & 2 deletions src/ContentValidationTrait.php
@@ -1,8 +1,8 @@
<?php
namespace Zfegg\ContentValidation;

use Zend\InputFilter\InputFilterPluginManager;
use Zend\ServiceManager\ServiceManager;
use Laminas\InputFilter\InputFilterPluginManager;
use Laminas\ServiceManager\ServiceManager;

trait ContentValidationTrait
{
Expand Down
2 changes: 1 addition & 1 deletion src/RouteNameContentValidationMiddleware.php
Expand Up @@ -17,7 +17,7 @@ public function process(
}

// Set expressive route name or slim route name
if ($route = $request->getAttribute('Zend\Expressive\Router\RouteResult')) {
if ($route = $request->getAttribute('Mezzio\Router\RouteResult')) {
$request = $request->withAttribute(
ContentValidationMiddleware::INPUT_FILTER_NAME,
$route->getMatchedRouteName()
Expand Down
22 changes: 11 additions & 11 deletions test/ContentValidationListenerTest.php
Expand Up @@ -3,17 +3,17 @@

use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;
use Zend\EventManager\EventManager;
use Zend\Http\PhpEnvironment\Request;
use Zend\Http\PhpEnvironment\Response;
use Zend\InputFilter\Factory;
use Zend\InputFilter\InputFilterPluginManager;
use Zend\InputFilter\InputFilterPluginManagerFactory;
use Zend\Mvc\ApplicationInterface;
use Zend\Mvc\MvcEvent;
use Zend\Router\Http\RouteMatch;
use Zend\ServiceManager\ServiceManager;
use Zend\Stdlib\Parameters;
use Laminas\EventManager\EventManager;
use Laminas\Http\PhpEnvironment\Request;
use Laminas\Http\PhpEnvironment\Response;
use Laminas\InputFilter\Factory;
use Laminas\InputFilter\InputFilterPluginManager;
use Laminas\InputFilter\InputFilterPluginManagerFactory;
use Laminas\Mvc\ApplicationInterface;
use Laminas\Mvc\MvcEvent;
use Laminas\Router\Http\RouteMatch;
use Laminas\ServiceManager\ServiceManager;
use Laminas\Stdlib\Parameters;
use Zfegg\ContentValidation\ContentValidationListener;
use Zfegg\ContentValidation\ContentValidationListenerFactory;

Expand Down
14 changes: 7 additions & 7 deletions test/ContentValidationMiddlewareTest.php
Expand Up @@ -7,13 +7,13 @@
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequest;
use Zend\Diactoros\UploadedFile;
use Zend\InputFilter\Factory;
use Zend\InputFilter\InputFilterPluginManager;
use Zend\InputFilter\InputFilterPluginManagerFactory;
use Zend\ServiceManager\ServiceManager;
use Laminas\Diactoros\Response;
use Laminas\Diactoros\ServerRequest;
use Laminas\Diactoros\UploadedFile;
use Laminas\InputFilter\Factory;
use Laminas\InputFilter\InputFilterPluginManager;
use Laminas\InputFilter\InputFilterPluginManagerFactory;
use Laminas\ServiceManager\ServiceManager;
use Zfegg\ContentValidation\ContentValidationMiddleware;
use Zfegg\ContentValidation\ContentValidationMiddlewareFactory;

Expand Down
10 changes: 5 additions & 5 deletions test/RouteNameContentValidationMiddlewareTest.php
Expand Up @@ -5,9 +5,9 @@
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Slim\Route;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequestFactory;
use Zend\Expressive\Router\RouteResult;
use Laminas\Diactoros\Response;
use Laminas\Diactoros\ServerRequestFactory;
use Mezzio\Router\RouteResult;
use Zfegg\ContentValidation\ContentValidationMiddleware;
use Zfegg\ContentValidation\RouteNameContentValidationMiddleware;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -35,7 +35,7 @@ public function testProcessExpressive()

$req = $this->prophesize(ServerRequestInterface::class);
$req->getAttribute(ContentValidationMiddleware::INPUT_FILTER_NAME)->willReturn(null);
$req->getAttribute('Zend\Expressive\Router\RouteResult')
$req->getAttribute('Mezzio\Router\RouteResult')
->willReturn($routeResult->reveal())
->shouldBeCalled();
$this->withAttribute($req);
Expand All @@ -52,7 +52,7 @@ public function testProcessSlim()

$req = $this->prophesize(ServerRequestInterface::class);
$req->getAttribute(ContentValidationMiddleware::INPUT_FILTER_NAME)->willReturn(null);
$req->getAttribute('Zend\Expressive\Router\RouteResult')->willReturn(null)->shouldBeCalled();
$req->getAttribute('Mezzio\Router\RouteResult')->willReturn(null)->shouldBeCalled();
$req->getAttribute('route')->willReturn($routeResult);
$this->withAttribute($req);

Expand Down

0 comments on commit b9edfa2

Please sign in to comment.