承接 evista/formista 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

evista/formista

Composer 安装命令:

composer require evista/formista

包简介

A light form API

关键字:

README 文档

README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention of what PSRs you support to avoid any confusion with users and contributors.

Install

Via Composer

$ composer require evista/formista

Usage

`

Simple form

To create a form, simply add a new class with any name that extends BaseForm class:

use Evista\Formista\ValueObject\FormField;
use Evista\Formista\Form\BaseForm;


class ExampleForm extends BaseForm
{
  //...
}

This class is not very useful without form elements. To add any field, for example a hidden input you have to implement a class method, called generateFields(). 

 public function generateFields(){
        // Name field
        $name = new FormField(FormField::TYPE_TEXT_INPUT);
        $name
            ->setName('name')
            ->setAttributes(['placeholder' => 'Minta János', 'id' => 'name']);
      
        $this->formFields['name'] = $name;
    }

Now your ExampleForm has an input field, called name. If you want do display the form, just use this class:

$form = new ExampleForm();

print '<input type="'.$form->getField('name')->getType().'" name="'.$form->getField('name')->getName().'" value="'.$form->getField('name')->getValue().'"/>';
After the user posts this to the server, you can rebuild the form the same way as before: ```php $form = new ExampleForm(); ``` But this time every field value will be populated with what the user sent. ```php $form->getField('name')->getValue() // Bálint ``` It’s not just more convenient but makes your code more readable and conceivable. But Fom API can do even more: you can set up validations; ```php // Phone $phone = new FormField(FormField::TYPE_TEXT_INPUT); $phone ->setName('phone') ->setAttributes(['placeholder' => '+36 30 111 2222', 'id' => 'phone']) ->setSanitizationCallback(function($value){ // only numbers, whitespaces and + return trim(preg_replace($this->phoneNumberPattern, '', $value)); }) ->setValidationCallback( function($value){ // Length constrain if(strlen($value)<5){ return 'Telephone number is not valid'; } // Regex constrain if(preg_match($this->phoneNumberPattern, $value)){ return 'Telephone number is not valid'; } // False means it's OK! return false; } ) ->setMandatory(true); $this->formFields['phone'] = $phone; ``` With setValidationCallback() method you can define a function that gets the submitted value as $value. Returning false means that there’s no problem with the submitted data. The form will run all validations on all input when you call the validate() method.  ```php $form->validate(); ``` Any field can be set mandatory with the setMandatory() method.Validation is not automatic so don’t forget to call the validate() method. ```php $form = new ExampleForm(); if(count($errors = $form->validate()) > 0){ //something is wrong, the messages are in the $errors array } // It's valid yeah ``` You can set santitization callback which will be called autmoatically when you instantiate a form. Csrf protection is fully automatic also so you don’t need to do anything.

Ajax forms



Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email sera.balint@e-vista.hu instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

evista/formista 适用场景与选型建议

evista/formista 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 34 次下载、GitHub Stars 达 0, 最近一次更新时间为 2015 年 11 月 05 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「form」 「formista」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 evista/formista 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 evista/formista 我们能提供哪些服务?
定制开发 / 二次开发

基于 evista/formista 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 34
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-11-05