PHPackages                             ryunosuke/night-dragon - 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. [Templating &amp; Views](/categories/templating)
4. /
5. ryunosuke/night-dragon

ActiveLibrary[Templating &amp; Views](/categories/templating)

ryunosuke/night-dragon
======================

Simple native template engine

v2.1.1(1mo ago)0438[1 PRs](https://github.com/arima-ryunosuke/php-raw-template/pulls)MITPHPPHP &gt;=8.0

Since Aug 4Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/arima-ryunosuke/php-raw-template)[ Packagist](https://packagist.org/packages/ryunosuke/night-dragon)[ RSS](/packages/ryunosuke-night-dragon/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (12)Versions (44)Used By (0)

Night Dragon (simple php template engine)
=========================================

[](#night-dragon-simple-php-template-engine)

Description
-----------

[](#description)

php の素材の味を生かしたシンプルなテンプレートエンジンです。 下記の機能・特徴があります。

- （raw な php なので）php で実現できることは何でもできます
- （原則として）raw なので爆速です
- `` で自動 html エスケープされます
- `` の最後の改行が除去されません
- `` で `strtoupper($string)` に変換されます（ネスト可能）
- `` で $string が非 null の場合に `strtoupper($string)` に変換されます（ネスト可能）
- `` で `$array['key']` に変換されます（ネスト可能）
- アサインされた変数の型情報に基づいて自動で `/** @var \Hoge $hoge */` を埋め込みます
- テンプレート継承ができます

逆に巷にあるテンプレートエンジンにある下記のような機能はありません。

- テンプレートディレクトリ指定（常にフルパスで指定）
    - ただし、テンプレート内では相対パスで指定できるので、必要なのは最初の大本テンプレート時のみです
- テンプレートの更新日時チェック機能
    - 今のところ必要になってないので実装していません
- 拡張子指定（常に拡張子も含めて指定）
    - raw であれば拡張子を固定にするメリットは特にありません（phtml, php などで好みが分かれるし）
- ファイル以外のデータソース
    - php には強力なストリームラッパーがあるため個別対応は不要でしょう
- プラグイン機構
    - 大抵はヘルパー関数を設ければそれで十分だし、アサインすれば `` で呼べるので不要でしょう

Install
-------

[](#install)

```
{
    "require": {
        "ryunosuke/night-dragon": "dev-master"
    }
}
```

Specification
-------------

[](#specification)

下記は全機能こみこみのテンプレートです。継承機能を使っています。

layout.phtml```

     -

これは子テンプレートから渡された変数です：

```

action.phtml```
