Как засунуть ссылку на файл, который будет отображаться через контроллер?
<?php
declare(strict_types=1);
namespace ilari\App\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Laminas\Diactoros\Response;
class HomeController
{
public function __invoke(ServerRequestInterface $request): ResponseInterface
{
$response = new Response();
$response->getBody()->write("<h1>Hello World!</h1>");
return $response;
}
}
меня интересует вот эта строка:
$response->getBody()->write("<h1>Hello World!</h1>");
как в неё поместить ссылку на файл, к примеру index.php, раньше писал не ООП код, и писал вот так:
<?php include 'assets/views/nav-bar.php'; ?>
Ответы (1 шт):
Автор решения: Mcile
→ Ссылка
Есть документация по include
Вы можете подключить его в теле метода, если у вас там процедурный код без функций и классов.
Если у вас там echo, то можно вывести это в буфер обмена и занести в переменную
ob_start();
include 'assets/views/nav-bar.php'; //здесь можно накосячить с путями, не рекомендую
$out = ob_get_clean();
$response->getBody()->write($out);
но по хорошему, Вам надо переделать assets/views/nav-bar.php в класс, один из методов которого возвращает вам необходимые данные и подключить его
use assets\views\NavBarClass
$navBar = new NavBarClass();
$response->getBody()->write($navBar->getBody);