diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2020-06-16 09:05:59 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2020-06-16 09:26:35 +0100 |
| commit | 430ed1cbddd3454cfaa963bec8fbbc0570fa9aea (patch) | |
| tree | 1c9e3bd7e0ce8b622b300368eb472d80e97b5cbc | |
| parent | 573931b38bdfde36812438d3370811c40fcca13c (diff) | |
| download | webtrees-430ed1cbddd3454cfaa963bec8fbbc0570fa9aea.tar.gz webtrees-430ed1cbddd3454cfaa963bec8fbbc0570fa9aea.tar.bz2 webtrees-430ed1cbddd3454cfaa963bec8fbbc0570fa9aea.zip | |
Refactor controllers as request handlers
| -rw-r--r-- | app/Http/Middleware/ReadConfigIni.php | 20 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/SetupWizard.php (renamed from app/Http/Controllers/SetupController.php) | 17 | ||||
| -rw-r--r-- | phpstan-baseline.neon | 4 |
3 files changed, 22 insertions, 19 deletions
diff --git a/app/Http/Middleware/ReadConfigIni.php b/app/Http/Middleware/ReadConfigIni.php index 8f66e1a536..033c0d4e12 100644 --- a/app/Http/Middleware/ReadConfigIni.php +++ b/app/Http/Middleware/ReadConfigIni.php @@ -19,7 +19,7 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\Middleware; -use Fisharebest\Webtrees\Http\Controllers\SetupController; +use Fisharebest\Webtrees\Http\RequestHandlers\SetupWizard; use Fisharebest\Webtrees\Webtrees; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -34,15 +34,15 @@ use function parse_ini_file; */ class ReadConfigIni implements MiddlewareInterface { - /** @var SetupController */ - private $setup_controller; + /** @var SetupWizard */ + private $setup_wizard; /** - * @param SetupController $setup_controller + * @param SetupWizard $setup_wizard */ - public function __construct(SetupController $setup_controller) + public function __construct(SetupWizard $setup_wizard) { - $this->setup_controller = $setup_controller; + $this->setup_wizard = $setup_wizard; } /** @@ -61,11 +61,11 @@ class ReadConfigIni implements MiddlewareInterface foreach ($config as $key => $value) { $request = $request->withAttribute($key, $value); } - - return $handler->handle($request); + } else { + // No configuration file? Run the setup wizard to create one. + $handler = $this->setup_wizard; } - // No configuration file? Run the setup wizard to create one. - return $this->setup_controller->setup($request); + return $handler->handle($request); } } diff --git a/app/Http/Controllers/SetupController.php b/app/Http/RequestHandlers/SetupWizard.php index 3301fbd6f7..9a0df315f0 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/RequestHandlers/SetupWizard.php @@ -17,7 +17,7 @@ declare(strict_types=1); -namespace Fisharebest\Webtrees\Http\Controllers; +namespace Fisharebest\Webtrees\Http\RequestHandlers; use Exception; use Fisharebest\Localization\Locale; @@ -25,6 +25,7 @@ use Fisharebest\Localization\Locale\LocaleEnUs; use Fisharebest\Localization\Locale\LocaleInterface; use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Cache; +use Fisharebest\Webtrees\Http\ViewResponseTrait; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Module\ModuleLanguageInterface; use Fisharebest\Webtrees\Services\MigrationService; @@ -37,6 +38,7 @@ use Fisharebest\Webtrees\Webtrees; use Illuminate\Database\Capsule\Manager as DB; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; use Symfony\Component\Cache\Adapter\NullAdapter; use Throwable; @@ -56,8 +58,10 @@ use function view; /** * Controller for the installation wizard */ -class SetupController extends AbstractBaseController +class SetupWizard implements RequestHandlerInterface { + use ViewResponseTrait; + private const DEFAULT_DBTYPE = 'mysql'; private const DEFAULT_PREFIX = 'wt_'; private const DEFAULT_DATA = [ @@ -76,9 +80,6 @@ class SetupController extends AbstractBaseController 'wtemail' => '', ]; - /** @var string */ - protected $layout = 'layouts/setup'; - /** @var MigrationService */ private $migration_service; @@ -92,7 +93,7 @@ class SetupController extends AbstractBaseController private $user_service; /** - * SetupController constructor. + * SetupWizard constructor. * * @param MigrationService $migration_service * @param ModuleService $module_service @@ -118,8 +119,10 @@ class SetupController extends AbstractBaseController * * @return ResponseInterface */ - public function setup(ServerRequestInterface $request): ResponseInterface + public function handle(ServerRequestInterface $request): ResponseInterface { + $this->layout = 'layouts/setup'; + // We will need an IP address for the logs. $ip_address = $request->getServerParams()['REMOTE_ADDR'] ?? '127.0.0.1'; $request = $request->withAttribute('client-ip', $ip_address); diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 021948d384..d5ad552efd 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -598,12 +598,12 @@ parameters: - message: "#^Parameter \\#1 \\$value of function e expects Illuminate\\\\Contracts\\\\Support\\\\Htmlable\\|string, string\\|false given\\.$#" count: 1 - path: app/Http/Controllers/SetupController.php + path: app/Http/RequestHandlers/SetupWizard.php - message: "#^Parameter \\#1 \\$str of function substr expects string, string\\|false given\\.$#" count: 1 - path: app/Http/Controllers/SetupController.php + path: app/Http/RequestHandlers/SetupWizard.php - message: "#^Parameter \\#1 \\$path of method Psr\\\\Http\\\\Message\\\\UriInterface\\:\\:withPath\\(\\) expects string, string\\|false given\\.$#" |
