wscore/ask
Composer 安装命令:
composer require wscore/ask
包简介
a simple questionnaire builder for html form and validator.
README 文档
README
a simple questionnaire builder for html form and validator.
Overview
Installation
composer require wscore/ask
Demo
To view a demo, open a terminal and...
$ git clone https://github.com/WScore/AskQuestions $ cd AskQuestions $ composer install $ cd demo $ php -S localhost:8000
...and view localhost:8000 with a browser.
Sample Code
To use WScore\Ask component, define AskModel, first.
Define Questions
function buildAskForms() { $ask = new \WScore\Ask\AskModel(); $ask->addText('name', 'Your Name') ->setPlaceholder('Mr. Test Taro'); }
HTML forms
to show an form in an html file,
$ask = buildAskForms(); $forms = $ask->buildForm();
if you are using Bootstrap 4, it may be useful to set a default class for input and label class.
$forms->setFormClass('form-control'); $forms->setLabelClass('form-label');
then, output HTML form in an HTML form, as
<form action="..." method="post">
<?php $element = $forms->getElement('name'); ?>
<?= $element->makeLabel(); ?>
<?= $element->makeForm(); ?>
Validating Input
to validate input,
$ask = buildAskForms(); $validator = $ask->buildValidator($_POST); $results = $validator->getResults(); // show some message. if ($validator->isValid()) { echo "<div class='alert alert-success'>Success!!!</div>"; } else { echo "<div class='alert alert-danger'>Error ???</div>"; }
then, obtain result for each value as,
<table class="table">
<?php $result = $validator->getResult('name') ?>
<tr>
<th><?= $result->label(); ?></th>
<td><?= $result->showValue('<br>'); ?></td>
<?php
if (!$result->isValid()) {
echo "<p class='error text-danger' >{$result->getMessage()}</p>";
}
?></td>
</tr>
<?php endforeach; ?>
</table>
Advanced
More Validation
Default validation only has required checks.
Use closure to create a fine validation method;
$ask->setValidator(function (Validation $validation) { $name = $valication->getResult('name'); if (strlen($name) < 3) { $validation->setError('name', $name, 'must be longer than 2 characters.'); } });
TODO
- internationalize error message.
wscore/ask 适用场景与选型建议
wscore/ask 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 03 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 wscore/ask 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 wscore/ask 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-03-14
