werx/forms

无框架表单助手

1.9.1 2020-05-24 06:15 UTC

This package is auto-updated.

Last update: 2024-09-24 15:27:27 UTC


README

Build Status Total Downloads Latest Stable Version Code Climate

无框架表单助手。

关于

我从未发现表单库非常有用。根据我的经验,它们要么只能用于最简单的表单,要么最终变得比手动编写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