werx / forms
无框架表单助手
Requires
- php: >= 5.4
Requires (Dev)
- phpunit/phpunit: ~4.4
- squizlabs/php_codesniffer: ~2.2
README
无框架表单助手。
关于
我从未发现表单库非常有用。根据我的经验,它们要么只能用于最简单的表单,要么最终变得比手动编写HTML更加困难。
话虽如此,我确实需要一些非常基础的表单助手,以便轻松地预填充表单字段(例如,从前一个POST中恢复以纠正错误或从数据库中恢复)以及构建下拉框。
这个库的主要目标是解决这两个问题,以我喜欢的这种方式。如果在做这件事的同时,我能制作出一些更健壮的表单助手,那会更好。
这个库提供了在静态HTML表单元素中设置默认值的助手,以及用于动态创建表单元素的输入构建器。
快速示例
您可以在 http://werx.moody.io/packages/forms/ 查看完整的文档和更多示例。
以下是一些快速示例,以帮助您开始。
<?php
use werx\Forms\Form;
Form::setData($_POST);
?>
文本框
<input type="text" name="username" id="username" value="<?=Form::getValue('username')?>">
<?=Form::text('username')?>
选择
<select name="state"> <option value="AR" <?=Form::getSelected('state', 'AR')?>>Arkansas</option> <option value="TX" <?=Form::getSelected('state', 'TX')?>>Texas</option> <option value="OK" <?=Form::getSelected('state', 'OK')?>>Oklahoma</option> </select>
<?=Form::select('state')->data(['TX' => 'Texas', 'AR' => 'Arkansas', 'OK' => 'Oklahoma'])->label('Choose')?>
<?=Form::select('color')->data(['Red', 'White', 'Blue'], true)->selected('White')?>
复选框和单选按钮
<input type="checkbox" name="pets" value="Cat" <?=Form::getChecked('pets', 'Cat')?> /> Cat <input type="checkbox" name="pets" value="Dog" <?=Form::getChecked('pets', 'Dog')?> /> Dog <input type="checkbox" name="pets" value="Fish" <?=Form::getChecked('pets', 'Fish')?> /> Fish
<input type="radio" name="color" value="Red" <?=Form::getChecked('color', 'Red')?> /> Red <input type="radio" name="color" value="Blue" <?=Form::getChecked('color', 'Blue')?> /> Blue <input type="radio" name="color" value="Green" <?=Form::getChecked('color', 'Green')?> /> Green
<?=Form::checkbox('pets')->value('Cat')?> Cat <?=Form::checkbox('pets')->value('Dog')->checked()?> Dog <?=Form::checkbox('pets')->value('Fish')?> Fish
<?=Form::radio('color')->value('Red')?> Red <?=Form::radio('color')->value('Blue')->checked()?> Blue <?=Form::radio('color')->value('Green')?> Green
如果您想根据某些条件检查某些内容,请使用 checkedWhen()
方法。传递任何您喜欢的条件。如果它评估为真,则会在元素上调用 checked()
。
<?=Form::radio('color')->value('Red')->checkedWhen($some_value == 'Red')?> Red <?=Form::radio('color')->value('Blue')->checkedWhen($some_value == 'Blue')?> Blue <?=Form::radio('color')->value('Green')->checkedWhen($some_value == 'Green')?> Green
checkedWhen()
适用于单选按钮和复选框。
安装
此包可通过Composer以 werx/forms 安装和自动加载。如果您不熟悉PHP的Composer依赖管理器,您应该先阅读这个。
$ composer require werx/forms --prefer-dist
贡献
单元测试
$ composer test
编码规范
这个库使用 PHP_CodeSniffer 来确保遵循编码规范。
我已经采用了 PHP FIG PSR-2 编码规范,除了缩进时使用制表符或空格的规则。PSR-2 说使用4个空格。我使用制表符。无需讨论。
为了支持使用制表符进行缩进,我定义了一个自定义PSR-2规则集,它扩展了PHP_CodeSniffer使用的标准 PSR-2规则集。您可以在项目的根目录中找到此规则集,名为PSR2Tabs.xml。
从项目的根目录执行codesniffer命令以使用这些自定义规则运行sniffer,并使用codefixer命令进行修正。
$ composer codesniffer
$ composer codefixer