ony / aakndyuwqeyugqwuyeg
Requires
- php: >=7.1
- illuminate/support: ^5.5|^6|^7
- illuminate/view: ^5.5|^6|^7
- twig/twig: ^2.11
Requires (Dev)
- ext-json: *
- laravel/framework: 5.5.*
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: ~1.5
Suggests
- laravelcollective/html: For bringing back html/form in Laravel 5.x
- twig/extensions: ~1.0
This package is not auto-updated.
Last update: 2024-09-24 01:00:32 UTC
README
要求
TwigBridge >=0.7 需要 Laravel 5。
如果您需要支持 Laravel 4.1/4.2,请检查 TwigBridge 0.6.x,或 Laravel 4.0 的 0.5.x。
安装
使用 Composer 安装此包
composer require rcrowe/twigbridge
快速入门
一旦 Composer 安装或更新了您的包,您需要将 TwigBridge 注册到 Laravel 本身。打开 config/app.php 并找到 providers 键,文件末尾,并添加 'TwigBridge\ServiceProvider' 到末尾
'providers' => [
...
TwigBridge\ServiceProvider::class,
],
现在找到 aliases 键,再次在文件末尾,并添加 'Twig' => 'TwigBridge\Facade\Twig',以便更容易访问 TwigBridge(或 Twig\Environment)
'aliases' => [
...
'Twig' => TwigBridge\Facade\Twig::class,
],
现在我们已经将这两行添加到 config/app.php 中,我们将使用 Artisan 添加新的 twig 配置文件
php artisan vendor:publish --provider="TwigBridge\ServiceProvider"
在此阶段,您现在可以像使用其他任何视图一样开始使用 twig
//app/Http/routes.php
//twig template resources/views/hello.twig
Route::get('/', function () {
return View::make('hello');
});
您可以在 resources/views 中创建具有 .twig 扩展名的 twig 文件。
resources/views/hello.twig
配置
一旦 Composer 安装或更新了您的包,您需要将 TwigBridge 注册到 Laravel 本身。打开 config/app.php 并找到 providers 键,文件末尾,并添加
'TwigBridge\ServiceProvider',
您可以将 TwigBridge Facade 添加,以便更容易访问 TwigBridge(或 Twig\Environment)。
'Twig' => 'TwigBridge\Facade\Twig',
Twig::addExtension('TwigBridge\Extension\Loader\Functions');
Twig::render('mytemplate', $data);
TwigBridge 的配置文件可以在 ConfigServiceProvider 下的 twigbridge
键中扩展。您可以在 vendor/rcrowe/twigbridge/config
中找到默认配置文件。
您应该使用 Artisan 使用以下命令将默认配置文件从 /vendor
目录复制到 /config/twigbridge.php
php artisan vendor:publish --provider="TwigBridge\ServiceProvider"
如果您更改了 /config/twigbridge.php
文件,您可能需要运行 twig:clean
Artisan 命令才能使更改生效。
在 Lumen 上的安装
对于 Lumen,您需要加载相同的 Service Provider,但您必须在本地配置中禁用 Auth
、Translator
和 Url
扩展。将 config/twigbridge.php
文件复制到您的本地 config
文件夹,并在 bootstrap/app.php
中注册配置 + Service Provider
$app->configure('twigbridge');
$app->register('TwigBridge\ServiceProvider');
用法
您可以通过调用 Twig 模板,就像调用其他任何视图一样
// Without the file extension
View::make('i_am_twig', [...])
TwigBridge 还支持其他包中的视图
View::make('pagination::simple')
在扩展另一个 Twig 模板时,上述规则继续有效
{% extends "parent" %}
{% extends "pagination::parent" %}
您可以调用带参数的函数
{{ link_to_route('tasks.edit', 'Edit', task.id, {'class': 'btn btn-primary'}) }}
并且输出变量,默认情况下会被转义。使用 raw
过滤器来跳过转义。
{{ some_var }}
{{ html_var | raw }}
{{ long_var | str_limit(50) }}
扩展
有时您想在 Twig 模板中使用时扩展 / 添加新函数。在 config/twigbridge.php 的 enabled
数组中添加一个要加载的扩展列表。
'enabled' => array(
'TwigBridge\Extensions\Example'
)
TwigBridge 支持字符串或闭包作为回调,因此例如,您可能如下实现 Assetic Twig 扩展
'enabled' => [
function($app) {
$factory = new Assetic\Factory\AssetFactory($app['path'].'/../some/path/');
$factory->setDebug(false);
// etc.....
return new Assetic\Extension\Twig\AsseticExtension($factory);
}
]
TwigBridge 默认启用以下扩展
- Twig\Extension\DebugExtension
- TwigBridge\Extension\Laravel\Auth
- TwigBridge\Extension\Laravel\Config
- TwigBridge\Extension\Laravel\Dump
- TwigBridge\Extension\Laravel\Form
- TwigBridge\Extension\Laravel\Gate
- TwigBridge\Extension\Laravel\Html
- TwigBridge\Extension\Laravel\Input
- TwigBridge\Extension\Laravel\Session
- TwigBridge\Extension\Laravel\String
- TwigBridge\Extension\Laravel\Translator
- TwigBridge\Extension\Laravel\Url
- TwigBridge\Extension\Loader\Facades
- TwigBridge\Extension\Loader\Filters
- TwigBridge\Extension\Loader\Functions
要启用 '0.5.x' 风格的 Facades,启用 Legacy Facades 扩展
- TwigBridge\Extension\Laravel\Legacy\Facades
FilterLoader 和 FunctionLoader
这些加载器扩展将 Laravel 辅助函数作为 Twig 函数和过滤器暴露。
查看 config/twigbridge.php 文件以查看定义的函数/过滤器列表。您也可以添加自己的。
FacadeLoader
FacadeLoader 扩展允许您调用在 config/twigbridge.php 中配置的任何门面。这使您的 Twig 模板可以与任何 Laravel 类以及其他别名类集成。
要使用 Laravel 集成(或任何别名类和方法),只需将您的门面添加到配置中,并以 URL.to(link)
的形式调用它们(而不是 URL::to($link)
)。
函数/过滤器/变量
以下助手/过滤器由默认扩展添加。它们基于助手和/或门面,因此应该很容易理解。
函数
- asset, action, url, route, secure_url, secure_asset
- auth_check, auth_guest, auth_user
- can
- config_get, config_has
- dump
- form_ (所有 Form:: 方法,使用蛇形命名法)
- html_ (所有 Html:: 方法,使用蛇形命名法)
- input_get, input_old, input_has
- link_to, link_to_asset, link_to_route, link_to_action
- session_has, session_get, csrf_token, csrf_field, method_field
- str_ (所有 Str:: 方法,使用蛇形命名法)
- trans, trans_choice
- url_ (所有 URL:: 方法,使用蛇形命名法)
过滤器
- camel_case, snake_case, studly_case
- str_ (所有 Str:: 方法,使用蛇形命名法)
- trans, trans_choice
全局变量
- app: Illuminate\Foundation\Application 对象
- errors: 来自验证器的 $errors MessageBag(始终可用)
Artisan 命令
TwigBridge 提供了用于 CLI 交互的命令。
清空 Twig 缓存
$ php artisan twig:clean
检查所有 Twig 模板
$ php artisan twig:lint