HTML (Qiq)

Setup

Install bear/qiq-module in composer to get HTML view in Qiq.

composer require bear/qiq-module

Next, Provide a directory to store templates and helpers.

cd /path/to/project
cp vendor/bear/qiq-module/var/qiq var

Provide the html context file src/Module/HtmlModule.php and install QiqModule.

namespace MyVendor\MyPackage\Module;

use BEAR\AppMeta\AppMeta;
use BEAR\QiqModule\QiqModule;
use Ray\Di\AbstractModule;

class HtmlModule extends AbstractModule
{
    protected function configure()
    {
        $this->install(new QiqModule($this->appDir . '/var/qiq/template'));
    }
}

Change context

Change the context of bin/page.php to enable html.

$context = 'cli-html-app';

Template

Prepare the template for the Index resource in var/qiq/template/Index.php.

<h1>{{h $this->greeting }}</h1>

The $body of the ResourceObject will be assigned to the template as $this.

php bin/page.php get /
200 OK
content-type: text/html; charset=utf-8

<h1>Hello BEAR.Sunday</h1>

Custom helper

Custom Helpers will be created in the Qiq\Helper\ namespace. Example: Qiq\Helper\Foo.

Specify the Qiq\Helper in the autoload of composer.json (e.g: composer.json) and run composr dump-autoload to enable to autoload the custom helper class. Custom helpers placed in the specified directory will be made available.

ProdModule

Install a module in ProdModule to make the error page HTML for production and to enable compiler cache.

class ProdModule extends AbstractModule
{
    protected function configure()
    {
        $this->install(new QiqErrorModule);
        $this->install(new QiqProdModule($this->appDir . '/var/tmp');
    }
}