PHPackages                             crazyfd/php-blade - 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. crazyfd/php-blade

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

crazyfd/php-blade
=================

Webman 的 Laravel Blade 模板引擎（webman blade），支持 illuminate/view 10.x-13.x，含视图渲染与 blade:cache/blade:clear 命令 | Laravel Blade templating for Webman, powered by illuminate/view.

2.1.0(yesterday)08↑2525%MITPHPPHP &gt;=8.1CI passing

Since Aug 28Pushed yesterdayCompare

[ Source](https://github.com/crazyfd/php-blade)[ Packagist](https://packagist.org/packages/crazyfd/php-blade)[ Docs](https://github.com/crazyfd/php-blade)[ RSS](/packages/crazyfd-php-blade/feed)WikiDiscussions main Synced today

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

php-blade (crazyfd/php-blade)
=============================

[](#php-blade-crazyfdphp-blade)

Laravel [Blade](https://laravel.com/docs/blade) 模板引擎的独立 PHP 版本（webman blade），可用于 Webman 等非 Laravel 环境：安装即得 Blade 视图渲染、`blade:cache` / `blade:clear` 命令。基于 [jenssegers/blade](https://github.com/jenssegers/blade) / [webman/blade](https://github.com/webman-php/blade) 升级维护，感谢原作者。

> 支持 **illuminate/view 10.x / 11.x / 12.x / 13.x**。

背景
--

[](#背景)

我们的业务迭代很快，之前技术栈是 Laravel + Octane。但由于业务场景比较特殊、流量较大，服务经常遇到性能瓶颈和稳定性问题，在现有硬件资源无法进一步扩容的情况下，我们经过多方面评估，最终将 Laravel 迁移到了 [Webman](https://www.workerman.net/doc/webman/)。

迁移之后，Webman 在高并发和高性能场景下的表现确实非常优秀，也很好地解决了我们之前遇到的一些问题。

但在实际迁移过程中，我们也发现了一个比较明显的问题：Laravel 生态经过多年的发展，已经形成了一套非常完善、成熟的组件体系，而 Webman 生态中的部分通用组件存在维护不及时、版本兼容性不足，以及与新版 `illuminate/*` 组件适配不完善等情况。

与此同时，我们并不希望因为从 Laravel 迁移到 Webman，就放弃 Laravel 中成熟的开发习惯和生态能力。更重要的是，我们希望 Laravel → Webman 的迁移能够尽可能平滑，让原有项目的代码、业务逻辑和成熟组件得到最大程度的复用，而不是为了适配 Webman 而进行大量重构和重复开发。

因此，我们决定围绕现代 Laravel / Illuminate 生态进行适配和维护，在保持 Laravel 原有使用方式和开发体验的基础上，让这些组件能够更好地运行在 Webman 环境中。通过这种方式，尽可能降低 Laravel 项目迁移到 Webman 的改造成本，让原有代码**少改甚至不改即可继续使用**。

不仅仅是解决当前项目的兼容性问题，更是逐步补齐 Webman 生态中缺失的通用组件，并长期维护一批高质量、现代化的 PHP 组件包，同时将 Webman 作为官方支持的一等集成场景。

简单来说，我们希望做到：

> **享受 Webman 的高性能，同时保留 Laravel 成熟的生态、开发体验和代码资产，让 Laravel → Webman 不再意味着大规模重写。**

环境要求
----

[](#环境要求)

- PHP &gt;= 8.1
- illuminate/view ^10.0 || ^11.0 || ^12.0 || ^13.0

注意：实际 PHP 最低版本还取决于安装的 illuminate major 版本；例如 illuminate/view 13.x 要求 PHP &gt;= 8.3。

Webman 集成需要：

- workerman/webman-framework ^2.0
- webman/console ^2.0（使用 `blade:cache` / `blade:clear` 命令时）

安装
--

[](#安装)

```
composer require crazyfd/php-blade
```

使用
--

[](#使用)

### 全局 helper（Laravel 风格）

[](#全局-helperlaravel-风格)

独立环境（非 webman）下提供 `view()` / `blade()` 全局函数，写法与 Laravel 一致：

```
echo view('homepage', ['name' => 'John Doe'])->render();
// 或直接输出（View 实现了 __toString）
echo view('homepage', ['name' => 'John Doe']);
```

首次调用 `blade($viewPath, $cachePath)` 可指定视图/缓存目录（默认 `/views` 与系统临时目录），之后全局共享同一实例：

```
blade(__DIR__ . '/views', __DIR__ . '/cache'); // 初始化（可选）

echo view('homepage', ['name' => 'John Doe']);
```

> 在 webman 中，框架自带的 `view()`（返回 `Response`）优先生效，本包不会覆盖；请按下节方式使用。

框架集成
----

[](#框架集成)

> 目前阶段官方集成以 **Webman** 为主，Webman 用户开箱即用；其他框架暂无官方集成包，可直接实例化核心类使用。

### Webman

[](#webman)

安装后自动生成 `config/plugin/crazyfd/blade/app.php`，可配置**视图缓存目录**等编译选项：

```
