定制 valksor/php-form-type-honey-pot 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

valksor/php-form-type-honey-pot

Composer 安装命令:

composer require valksor/php-form-type-honey-pot

包简介

Symfony Form type for honeypot spam protection

README 文档

README

valksor BSD-3-Clause Coverage Status php

A Symfony Form extension that automatically adds an invisible honeypot spam trap field to your forms. If bots fill the field, submission is blocked and logged.

Installation

Install the package via Composer:

composer require valksor/php-form-type-honey-pot

Requirements

  • PHP 8.4 or higher
  • Symfony Form Component (>=6.4)
  • Symfony HttpFoundation
  • Symfony RequestStack

Usage

There are two ways to use this package: via form options or by directly configuring the extension.

Using Form Options

The extension automatically applies to any FormType (root forms) when the honeypot option is enabled:

use Symfony\Component\Form\Extension\Core\Type\FormType;

// Enable honeypot on a form
$builder = $this->createFormBuilder([], ['honeypot' => true]);
$form = $builder->getForm();

Customizing Options

You can customize the honeypot field name and error message:

$form = $this->createFormBuilder([], [
    'honeypot' => true,
    'honeypot_field_name' => 'website',
    'honeypot_message' => 'Spam detected!',
])->getForm();

Features

Configuration Options

Option Type Default Description
honeypot bool false Enable/disable honeypot
honeypot_field_name string 'website' Name of the honeypot field
honeypot_message string 'This form should not be submitted by bots.' Error message on bot detection

How It Works

  1. Adds a hidden text field (e.g. website) with class="hidden", tabindex="-1", autocomplete="off"
  2. On PRE_SUBMIT, checks if field is filled
  3. If filled, logs IP/User-Agent and throws InvalidArgumentException with custom message
  4. Legitimate users ignore the field

Twig Template

Uses fields.html.twig for rendering the honeypot field.

Testing

Run the test suite for HoneyPot:

# Run all HoneyPot tests
bin/unit Valksor/Component/FormType/HoneyPot

# Run tests with coverage
vendor/bin/phpunit src/Valksor/Component/FormType/HoneyPot --coverage-text

Contributing

Contributions are welcome!

  • Code style requirements (PSR-12)
  • Testing requirements for PRs
  • One feature per pull request
  • Development setup instructions

To contribute to HoneyPot:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/honeypot-improvement)
  3. Implement your changes following existing patterns
  4. Add comprehensive tests
  5. Ensure all tests pass and code style is correct
  6. Submit a pull request

Security

If you discover any security-related issues, please email us at packages@valksor.com instead of using the issue tracker.

Support

Credits

License

This package is licensed under the BSD-3-Clause License.

About Valksor

This package is part of the valksor/php-valksor project - a comprehensive PHP library and Symfony bundle that provides a collection of utilities, components, and integrations for Symfony applications.

The main project includes:

  • Various utility functions and components
  • Doctrine ORM tools and extensions
  • Symfony bundle for easy configuration
  • And much more

If you find this HoneyPot component useful, you might want to check out the full Valksor project for additional tools and utilities that can enhance your Symfony application development.

To install the complete package:

composer require valksor/php-valksor

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2026-01-24

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固