bkwld / laravel-pug
Laravel 的 Pug 视图适配器
Requires
- php: ^7.2 || ^8.0
- composer-plugin-api: ^1.0 || ^2.0
- illuminate/support: >=6
- illuminate/view: >=6
- phug/component: ^1.1.3
- pug-php/pug: ^3.3.1
- pug-php/pug-assets: ^1.0.1
- pug/installer: ^1.0.0
Requires (Dev)
- composer/composer: ^1.2 || ^2.0
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-21 00:04:02 UTC
README
这是一个小包,它通过 Pug.php (见 完整文档) 为 Laravel 提供了编译 Pug (Jade) 模板的支持。在视图中支持纯 PHP 和 Blade 语法。
这是正在进行的 2.0 版本的文档。要加载 1.11 版本的文档,请点击 此处
安装
如果您还没有安装 composer,请先安装它: https://getcomposer.org.cn/download/
现在,在 Laravel 项目的根目录打开一个终端。如果是新项目,请使用以下命令创建它: composer create-project --prefer-dist laravel/laravel my-new-project
(将 my-new-project 替换为您自己的项目名称,见文档以获取更多信息)
然后运行
composer require bkwld/laravel-pug
用法
Route::get('/', function () { return view('my-page'); });
它将首先尝试加载 views/my-page.pug
,或者 views/my-page.blade.pug
,或者回退到默认的 blade 引擎加载 views/my-page.blade.php
。
与 Blade 一样,您可以将变量传递给视图
Route::get('/', function () { return view('my-page', [ 'user' => Auth::user(), 'messages' => ['Hello', 'Bye'], ]); });
任何扩展名为 .pug
的文件都将被编译为 pug 模板。Laravel Pug 还注册了 .pug.blade
,在 Pug 代码编译完成后,也会编译 blade 代码;但我们强烈建议您使用干净和标准的扩展名 .pug
,这将被大多数系统识别。它以与 Blade 模板相同的方式编译您的 Pug 模板;编译后的模板将放入您的存储目录。因此,您不需要在每个页面加载时都进行编译。
换句话说,只需将您的 Pug 文件放在常规视图目录中,并将其命名为 whatever.pug
。您可以在 Laravel 中像通常一样引用它们,例如 view('home.whatever')
对应于 resources/views/home/whatever.pug
。
Pug 视图文件可以与常规 PHP 视图并行工作。
在 Pug 模板中使用 Blade
此功能是为过渡目的设计的,因为 pug 中有所有 blade 功能,所以您不需要两者。
要在 Pug 中使用 Blade 模板,只需将文件命名为 .blade.pug
扩展名。
阅读更多
请注意,此模式将首先使用 pug 渲染模板,然后将输出传递给 blade 进行渲染,这意味着您的模板必须具有有效的 pug 语法,并且必须渲染有效的 blade 模板。这也意味着只有通过 pug 文本输出才能访问 blade 指令,请参阅下面的示例
| @if ($one === 1) div $one = 1 | @endif p {{ $two }}
如果使用以下值渲染此内容: ['one' => 1, 'two' => 2]
,您将得到
<div>$one = 1</div> <p>2</p>
PS:请注意,您将得到与以下纯 pug 代码相同的输出
if one === 1 div $one = 1 p=two
在 Lumen 中使用
在 bootstrap/app.php
中注册服务(在 注册服务提供者 部分是专用位置)
$app->register(Bkwld\LaravelPug\ServiceProvider::class);
然后您可以使用它来使用 view()
$router->get('/', function () use ($router) { // will render resources/views/test.pug return view('test', [ 'name' => 'Bob', ]); });
配置
所有 Pug.php 选项都通过一个可编辑的 Laravel 配置数组文件传递,您可以在 /config/laravel-pug.php 中编辑它
如果由于任何原因缺少配置文件,只需运行以下命令:php artisan vendor:publish --provider="Bkwld\LaravelPug\ServiceProvider"
扩展布局/包含子视图
模板的默认根目录为resources/views
,因此从任何深层次的模板目录,您可以使用绝对路径从根目录获取其他Pug文件:extends /layouts/main
将扩展文件resources/views/layouts/main.pug
,include /partial/foo/bar
将包含resources/views/partial/foo/bar.pug
。您可以使用basedir
选项将根目录设置为其他目录。不以斜杠开头路径将相对于当前模板文件解析。
历史
请阅读Github上的项目发布以获取发行说明。