PHPackages                             yangweijie/think-stempler - 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. yangweijie/think-stempler

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

yangweijie/think-stempler
=========================

Stempler Template Engine Driver for ThinkPHP 8.0

v0.9.0(1y ago)02Apache-2.0PHPPHP &gt;=8.0.0

Since Jun 26Pushed 1y ago1 watchersCompare

[ Source](https://github.com/yangweijie/think-view-stempler)[ Packagist](https://packagist.org/packages/yangweijie/think-stempler)[ GitHub Sponsors](https://github.com/yangweijie)[ RSS](/packages/yangweijie-think-stempler/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Think-Stempler 模板引擎
===================

[](#think-stempler-模板引擎)

基于 Spiral Stempler 核心功能的 ThinkPHP 模板引擎扩展，提供现代化的模板特性。

🚀 特性
----

[](#-特性)

### ✅ 完全实现的功能

[](#-完全实现的功能)

- **基本语法**: 变量输出、转义控制、注释
- **指令系统**: 条件、循环、判断、工具指令
- **布局继承**: 完整的模板继承系统
- **栈系统**: 强大的内容栈管理
- **组件系统**: 可复用的 UI 组件
- **ThinkPHP 集成**: 完全兼容 ThinkPHP 框架

### 🎯 性能表现

[](#-性能表现)

- **渲染速度**: 平均 1-2ms
- **内存使用**: 优化的临时文件执行
- **安全性**: 移除 eval，使用安全的文件执行
- **缓存机制**: 智能的编译缓存

📦 安装
----

[](#-安装)

```
composer require yangweijie/think-stempler
```

🔧 配置
----

[](#-配置)

在 ThinkPHP 配置文件中添加：

```
// config/view.php
return [
    'type' => 'Stempler',
    'view_path' => app()->getRootPath() . 'view' . DIRECTORY_SEPARATOR,
    'cache_path' => app()->getRuntimePath() . 'temp' . DIRECTORY_SEPARATOR,
    'view_suffix' => '.dark.php',
    'tpl_cache' => true,

    // Stempler 特性开关
    'enable_layout' => true,
    'enable_stack' => true,
    'enable_component' => true,
];
```

📖 基本语法
------

[](#-基本语法)

### 变量输出

[](#变量输出)

```

{{ $title }}
用户: {{ $user ?? '访客' }}

{!! $htmlContent !!}

邮箱格式: user@@domain.com
```

### 条件指令

[](#条件指令)

```
@if($user)
    欢迎，{{ $user->name }}！
@elseif($guest)
    欢迎，访客！
@else
    请登录
@endif

@unless($errors)
    操作成功
@endunless

@empty($items)
    暂无数据
@endempty

@isset($user->email)
    邮箱: {{ $user->email }}
@endisset
```

### 循环指令

[](#循环指令)

```
@foreach($users as $user)

        {{ $user->name }}
        {{ $user->email }}

@endforeach

@for($i = 1; $i 活跃
        @break
    @case('inactive')
        非活跃
        @break
    @default
        未知
@endswitch
```

### 工具指令

[](#工具指令)

```

    var config = @json($config);
    var users = @json($users);

@php
    $computed = $price * $quantity;
    $total = number_format($computed, 2);
@endphp
总计: {{ $total }}
```

🏗️ 布局继承
-------

[](#️-布局继承)

### 定义布局

[](#定义布局)

```

>

    默认标题

        网站头部
        默认导航

            默认内容

        网站底部

```

### 继承布局

[](#继承布局)

```

首页 - 我的网站

    首页
    关于
    联系

    欢迎来到首页
    这是首页内容

```

📚 栈系统
-----

[](#-栈系统)

栈系统允许你在模板的任何地方推送内容，然后在指定位置收集和渲染。

### 收集栈内容

[](#收集栈内容)

```

```

### 推送到栈

[](#推送到栈)

```

```

### 渲染顺序

[](#渲染顺序)

- ``: 添加到栈顶（最先渲染）
- 默认内容: 中间渲染
- ``: 添加到栈底（最后渲染）

🧩 组件系统
------

[](#-组件系统)

### 内置组件

[](#内置组件)

#### Alert 组件

[](#alert-组件)

```

```

#### Card 组件

[](#card-组件)

```

    姓名: {{ $user->name }}
    邮箱: {{ $user->email }}

```

#### Button 组件

[](#button-组件)

```

    提交

```

#### Input 组件

[](#input-组件)

```

```

#### Modal 组件

[](#modal-组件)

```

            用户名:

            保存

```

#### Table 组件

[](#table-组件)

```

            ID
            姓名
            邮箱

        @foreach($users as $user)

                {{ $user->id }}
                {{ $user->name }}
                {{ $user->email }}

        @endforeach

```

### 自定义组件

[](#自定义组件)

你可以注册自定义组件：

```
// 在控制器或服务中
$engine = app('view')->getEngine();
$engine->registerComponent('my-component', function($attributes, $content) {
    return "{$content}";
});
```

🎮 控制器使用
-------

[](#-控制器使用)

### 基本使用

[](#基本使用)

```
