HTML (Qiq)

セットアップ

QiqでHTML表示をするためにcomposerでbear/qiq-moduleをインストールします。

composer require bear/qiq-module

次にテンプレートやヘルパーを格納するディレクトリを用意します。

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

htmlコンテキストファイルsrc/Module/HtmlModule.phpを用意して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'));
    }
}

コンテキスト変更

bin/page.phpのコンテキストを変更してhtmlを有効にします。

$context = 'cli-html-app';

テンプレート

Indexリソースのテンプレートをvar/qiq/template/Index.phpに用意します。

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

ResourceObjectの$bodyがテンプレートに$thisとしてアサインされます。

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

<h1>Hello BEAR.Sunday</h1>

カスタムヘルパー

カスタムヘルパーQiq\Helper\のnamespaceで作成します。例: Qiq\Helper\Foo

composer.jsonのautoloadQiq\Helperを指定し(例: composer.json) 、composer dump-autoloadを実行してヘルパークラスをオートロード可能にします。指定ディレクトリに設置するとカスタムヘルパーが利用可能になります。

ProdModule

プロダクション用にエラーページをHTMLにし、コンパイラキャッシュを有効にするためのモジュールをProdModuleでインストールします。

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