pragmarx/steroids

Laravel 4 Blade增强版

v0.8.3 2017-07-21 06:17 UTC

This package is auto-updated.

Last update: 2024-09-21 20:00:59 UTC


README

Latest Stable Version License Build Status Latest Stable Version

Laravel 4 Blade增强版

此包为Laravel Blade提供了一些额外功能

自动命令生成

在模板目录中创建一个名为<command>.blade.php的文件,它将自动成为blade命令。

获取文件

default\css.blade.php

包含以下内容

<link rel="stylesheet" type="text/css" media="screen" href="@_1">

黑客现在可以使用此命令

@css(/css/bootstrap.css)

在他们的blade模板中生成

<link rel="stylesheet" type="text/css" media="screen" href="/css/bootstrap.css">

子模板

你的模板目录中的每个子目录在命令名中创建一个级别。这个树

├── default
│   ├── input.blade.php
│   ├── js.blade.php
│   └── php.blade.php
│   └── text.blade.php
├── bs
│   └── v2
│   │   ├── input.blade.php
│   │   └── form.blade.php
│   │   └── model.blade.php
│   ├── input.blade.php
│   └── form.blade.php

将为你提供以下命令

@input()
@js()
@php()
@text()

@bs.input()
@bs.form()

@bs.v2.input()
@bs.v2.form()
@bs.v2.model()

块命令

以(silly,我知道! :) @php (文件php.blade.php)命令为例,这是一个块命令

@php
    $title = 'subscribe';
@@

请注意,块以@@结束,你可以有任意多的嵌套块。这是@php命令的源代码

<?php 
    @_BODY;
?>

就这么简单,要创建一个块命令,你只需要在你的命令中的任何部分添加@_BODY标识符。

扩展命令

你可以创建一个@input命令

<input type="@_1" @_ATTRIBUTES />

并使用它来创建

@text:

@input(text,@_PARAMETERS)

@email:

@input(email,@_PARAMETERS)

@password命令

@input(password,@_PARAMETERS)

HTML属性,局部变量和位置参数

你可以动态地创建和发送任何数量的参数到你的命令

HTML属性

以@input为例

@input(type=email,class=form-control,id=example,placeholder=Enter email)

具有以下模板

<input @_ATTRIBUTES />

它将生成以下标签

<input type="email" class="form-control" id="example" placeholder="Enter email">

局部变量

使用散列定义一个局部变量

@input(#type=email,class=form-control,id=example,placeholder=Enter email)

然后你可以通过变量标识符@_访问它

<input type="@_type" @_ATTRIBUTES />

位置参数

你还可以通过数字访问任何一个参数,让我们将输入的类型设置为第一个参数

@input(email,class=form-control,id=example,placeholder=Enter email)

然后你只需要使用变量标识符后跟参数编号

<input type="@_1" @_ATTRIBUTES />

另一个示例是Form::model(),由@model提供,这是模板

{{ Form::model(@_1, $options) }}
    @_BODY
{{ Form::close() }}

在你的视图中,你只需要

@model($user,url=/profile)
    ... your controls ...
@@

赋值和多赋值

你通过使用等号将值赋给局部(#)变量

@text(#label=form-control)

你通过相同的方式将值赋给HTML属性,只是不要加哈希符号

@text(class=form-control)

你也可以进行多赋值

@text(#label=title=First Name,class=form-control)

超全局变量(licentia poetica)

@_BODY:将被你的命令体替换

@_ATTRIBUTES:所有由你的命令生成的HTML属性

@_PARAMETERS:这是一个原始参数列表,你可以使用它将它们传递给一个扩展命令,这是@text的来源,它扩展了@input

@if (@_name->has)
    @input(text,name=@_1,@_PARAMETERS)
@else
    @input(text,@_PARAMETERS)
@endif

@_SINGLE:如果你的命令只接受一个参数

@h1(Hi There!)

你可以使用这个超全局变量

<h1>@_SINGLE</h1>

但你仍然可以使用位置变量

<h1>@_1</h1>

特殊函数

->has

如果你需要知道一个变量是否已设置,你可以使用->has函数

@if (@_label->has) 
    <label class="label">@_label</label>
@endif
<input type="@_1" @_ATTRIBUTES />

->has函数将返回truefalse,然后你的视图(在PHP中)可能看起来像这样

<?php if (false): ?>
    <label class="label"></label>
<?php endif; ?>
<input type="email" ... />

Steroids附带了一些示例

->bare

如果你需要访问你的HTML属性之一,你可以使用->bare函数

<input type="@_1" class="@_class->bare" />

分隔符和引号

作为参数的分隔符,你可以使用,;

@input(email,class=form-control,id=example,placeholder=Enter email)

@input(email;class=form-control;id=example;placeholder=Enter email)

除非你需要在你的字符串中使用这些分隔符,否则你不需要使用引号(单引号'或双引号"

@input(email,placeholder="Hello, World!")

示例

激素库提供了一些示例,但你可以随心所欲地创建更多

├── default
│   ├── css.blade.php
│   ├── form.blade.php
│   ├── h.blade.php
│   ├── input.blade.php
│   ├── js.blade.php
│   ├── model.blade.php
│   ├── p.blade.php
│   ├── php.blade.php
│   ├── row.blade.php
│   └── text.blade.php
├── bs
│   ├── md.blade.php
│   └── xs.blade.php

轻松创建部分组件

有时创建一个简单的盒子可能像

<div class="row">
    <article class="col-sm-12 col-md-12 col-lg-12">
            <div>
                <div class="jarviswidget-editbox">
                    @editbox('your name goes here')
                </div>

                <div class="widget-body no-padding">
                    @_BODY
                </div>
            </div>
        </div>
    </article>
</div>

但在使用激素库之后,你只需在代码中这样做

@box
    And do whatever you need inside it!
@@

工匠命令

激素库有两个工匠命令

steroids:templates - 将示例复制到你的 app/config/package 文件夹

php artisan steroids:templates

steroids:list - 列出所有的激素库命令

php artisan steroids:list

view:clear - 清除视图缓存

php artisan view:clear

直接使用外观

要使用激素库编译视图,你只需

 return Steroids::inject('@input(type=email,name=email,class=form-control)')

安装

要求

  • Laravel 4.1+
  • Composer >= 2014-01-07 - 这是一个 PSR-4 包

安装

需要激素库包

composer require pragmarx/steroids dev-master

将服务提供者添加到你的 app/config/app.php

'PragmaRX\Steroids\Vendor\Laravel\ServiceProvider',

要发布配置文件,你需要

php artisan config:publish pragmarx/steroids

将模板示例复制到你的 app 文件夹

php artisan steroids:templates

测试

  • 激素库测试覆盖率达到 100%

待办事项

  • 当激素库命令更改时,使主要模板无效

作者

Antonio Carlos Ribeiro

许可

激素库根据 BSD 3-Clause 许可证授权 - 有关详细信息,请参阅 LICENSE 文件

贡献

欢迎提交拉取请求和问题。