cyneek/yii2-blade

适合Yii2应用中Blade布局系统的包装器。

安装次数: 5 014

依赖: 0

建议: 0

安全性: 0

星标: 11

关注者: 3

分支: 4

公开问题: 1

类型:yii2-extension

1.1.2 2016-03-01 19:28 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:48:17 UTC


README

Yii2框架的Blade布局扩展系统。

什么是Yii2 Blade布局?

此模块为您的Yii2应用程序安装添加对Blade布局系统的支持。

由Joseba Juániz开发 (@Patroklo)

西班牙语README版本

最低要求

  • Yii2

许可

这是免费软件。它根据以下BSD许可协议发布。

版权(c)2014,Cyneek。保留所有权利。

重新分发和使用源代码和二进制形式,无论是否修改,只要满足以下条件:

  1. 源代码的重新分发必须保留上述版权声明、本条件列表和以下免责声明。
  2. 二进制形式的重新分发必须复制上述版权声明、本条件列表和以下免责声明在随分发提供的文档和其他材料中。
  3. 未经事先书面许可,不得使用Cyneek或其贡献者的名称来批准或推广源自本软件的产品。

本软件由版权持有者“按原样”提供,并且任何明示或暗示的保证,包括但不限于适销性和针对特定目的的适用性的保证均予以排除。在任何情况下,版权持有者均不对任何直接、间接、偶然、特殊、示范性或后续损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论此类损害是否由本软件的使用或本软件使用中可能出现的任何损害的可能性引起,即使版权持有者已被告知此类损害的可能性。

安装

  • 安装Yii 2
  • 通过composer安装包 "cyneek/yii2-blade": "*"
  • 更新配置文件 'config/web.php'
...
'components' => [
        'view' => [
            'class' => 'yii\web\View',
            'renderers' => [
                'blade' => [
                    'class' => '\cyneek\yii2\blade\ViewRenderer',
                    'cachePath' => '@runtime/blade_cache',
                ],
            ],
        ],
]
...
  • 在您的@runtime目录中创建一个可由网络用户写入的blade_cache目录。
  • 大功告成!

参数

  • cachePath [String/Required] Blade布局系统将存储处理后的视图文件的目录。应该由网络服务器用户(例如www-data)可写。
  • viewPaths [String[]/Optional] 存储视图和布局的目录列表数组。这不是必需的,因为系统将在检索到Blade包装器后获取视图路径。
  • extension [String/Optional] 如果您打算使用除.blade之外的其他扩展名来处理视图文件,则也应在此以及渲染器数组的键中声明。

使用layout参数

可以定义控制器的layout参数为Blade文件。但由于Yii2视图渲染系统与Blade布局渲染系统不100%兼容,因此您必须添加一个名为BladeBehavior的行为到该控制器,以整合这两个系统。

要添加此行为,您只需要包括

    public function behaviors()
    {
        return [
            ...
            'blade' => [
                'class' => BladeBehavior::className()
            ],
            ...
        ];
    }

然后,如果布局和视图文件都有blade文件扩展名,将渲染布局视图文件,然后再渲染视图。如果没有,将使用Yii2的正常渲染系统。

使用$view而不是$this

由于与Blade系统调用的兼容性问题,无法在Blade模板中使用$this对象。

因此,我创建了具有与正常布局系统中$this相同功能的$view对象,而不是这个对象。

例如,如果您想将$this->title从内容视图传递到布局视图,只需使用$view->title,在布局视图中,您可以使用$this->title来获取标题。

Blade模板说明

Laravel框架文档中详细介绍了如何使用Blade模板系统。由于它使用相同的库,因此一切都应该与此模块兼容。

Laravel主页上基本Blade文档的链接