pragmarx / steroids
Laravel 4 Blade增强版
Requires
- php: >=5.3.7
- illuminate/filesystem: >=4.1
- illuminate/support: >=4.1
- pragmarx/support: ~0.6
Requires (Dev)
- mockery/mockery: 0.8.0
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
README
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
函数将返回true
或false
,然后你的视图(在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%
待办事项
- 当激素库命令更改时,使主要模板无效
作者
许可
激素库根据 BSD 3-Clause 许可证授权 - 有关详细信息,请参阅 LICENSE
文件
贡献
欢迎提交拉取请求和问题。