*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Install\Actions;
use Flarum\Support\HtmlAction;
use Psr\Http\Message\ServerRequestInterface as Request;
use Illuminate\Contracts\View\Factory;
class IndexAction extends HtmlAction
{
/**
* @var Factory
*/
protected $view;
/**
* @param Factory $view
*/
public function __construct(Factory $view)
{
$this->view = $view;
}
/**
* @param Request $request
* @param array $routeParams
* @return \Psr\Http\Message\ResponseInterface|EmptyResponse
*/
public function render(Request $request, array $routeParams = [])
{
$view = $this->view->make('flarum.install::app');
$view->logo = $this->view->make('flarum.install::logo');
$errors = [];
if (version_compare(PHP_VERSION, '5.5.0', '<')) {
$errors[] = [
'message' => 'PHP 5.5+ is required.',
'detail' => 'You are running version '.PHP_VERSION.'.'
];
}
foreach (['mbstring', 'pdo_mysql', 'json', 'gd'] as $extension) {
if (! extension_loaded($extension)) {
$errors[] = [
'message' => 'The '.$extension.' extension is required.'
];
}
}
if (count($errors)) {
$view->content = $this->view->make('flarum.install::errors');
$view->content->errors = $errors;
} else {
$view->content = $this->view->make('flarum.install::install');
}
return $view;
}
}