PHPackages                             francerz/webapp-render-utils - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. francerz/webapp-render-utils

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

francerz/webapp-render-utils
============================

Web App rendering utils.

v0.1.6(8mo ago)0653ISCPHP

Since Oct 5Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/francerz/php-webapp-render-utils)[ Packagist](https://packagist.org/packages/francerz/webapp-render-utils)[ RSS](/packages/francerz-webapp-render-utils/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (8)Used By (0)

Webapp Renderer
===============

[](#webapp-renderer)

This library allows to create PSR-7 ResponseInterface objects for given content.

Supported renderers are:

- Redirect
- String
- JSON
- CSV
- File
- cURL response
- View

Contents
--------

[](#contents)

- [Webapp Renderer](#webapp-renderer)
    - [Contents](#contents)
    - [Rendering with a callback](#rendering-with-a-callback)
    - [View Renderer](#view-renderer)
        - [Rendering a view](#rendering-a-view)
        - [Including subviews](#including-subviews)
        - [Using layouts](#using-layouts)
    - [Library API](#library-api)
        - [Class `Renderer`](#class-renderer)
        - [Class `View`](#class-view)
        - [Class `Layout`](#class-layout)
        - [Class `LayoutView`](#class-layoutview)

Rendering with a callback
-------------------------

[](#rendering-with-a-callback)

The `renderCallback` method allows executing arbitrary PHP code inside a callback function. All output generated (both body content and headers sent with `header()`) will be captured into a PSR-7 `ResponseInterface` object.

This is useful for cases where third-party code writes directly to `stdout`or sets headers without returning a `ResponseInterface`.

```
$response = $renderer->renderCallback(function () {
    header('X-Test-Header: Value1', false);
    header('X-Test-Header: Value2', false);
    echo "Hello world!";
});

$response->getHeaders();
// ['X-Test-Header' => ['Value1', 'Value2']]

(string) $response->getBody();
// "Hello world!"
```

View Renderer
-------------

[](#view-renderer)

The most complex and powerful renderer is `View`, which allows to catch outputs from a PHP file into a PSR-7 ResponseInterface object.

Catches any type of output like generated PDFs, Spreadsheets or HTML documents.

### Rendering a view

[](#rendering-a-view)

```
$renderer->renderView('/home/index', [
    'title' => 'Hello World!',
    'paragraph' => 'Hello everyone.'
]);
```

View file `/home/index.php`:

```

```

Renderer result:

```

        Hello World!

        Hello World!
        Hello everyone.

```

### Including subviews

[](#including-subviews)

Include file `/includes/head.php`.

```

```

View file `/home/index.php`

```
