stefgodin/notmpl

轻量级的PHP模板引擎,利用PHP原生渲染和输出缓冲。

v0.7.1 2024-06-21 12:56 UTC

This package is auto-updated.

Last update: 2024-09-21 13:32:41 UTC


README

NoTMPL Logo

NoTMPL

NoTMPL是一个专为PHP后端开发者设计的轻量级无模板渲染引擎。

  • ☑ 无依赖项
  • ☑ 轻量级代码库(< 1000 LOC)
  • ☑ 无缓存目录
  • ☑ 无eval
  • ☑ 使用组件和插槽组合页面
  • ☑ 无自动转义
  • ☑ 无沙盒

安装

使用Composer安装库

composer require stefgodin/notmpl

要求

此库需要PHP 8.1+

快速浏览

<?php // index.php

use StefGodin\NoTmpl\NoTmpl;

require_once __DIR__.'/../vendor/autoload.php'

$noTmpl = new NoTmpl();
echo $noTmpl->render('main.php', ['title' => 'My custom title']);
/*
<div>A header</div>

<h1>My custom title</h1>
<div>
  <div>
    <h2>My content</h2>
  </div>
</div>

<div>A footer</div>
*/
<?php // main.php

namespace StefGodin\NoTmpl;

/**
 * @var string $title
 */
?>
<?php component('page.php') ?>
    <?php use_slot('header') ?>
        <h1><?php e($title) ?></h1>
    <?php use_slot_end() ?>
    
    <div>
        <h2>My content</h2>
    </div>
<?php component_end() ?>

<div>A footer</div>
<?php // page.php
namespace StefGodin\NoTmpl;
?>
<div>A header</div>

<?php slot('header') ?>
    <h1>My normal title</h1>
<?php slot_end() ?>
<div>
    <?php slot() ?>
        <div>Some default content</div>
    <?php slot_end() ?>
</div>

文档

如果您是新手,请阅读入门指南
浏览文档以获取示例和概念。

支持