tourze/condition-system-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

tourze/condition-system-bundle

Composer 安装命令:

composer require tourze/condition-system-bundle

包简介

A flexible condition system bundle for Symfony applications that provides condition evaluation, management and trigger mechanisms

README 文档

README

English | 中文

PHP Version License Build Status Coverage

A flexible condition evaluation system for Symfony applications, providing a framework for defining, managing, and evaluating various types of conditions.

Features

  • Flexible Condition System: Create and manage various types of conditions with custom handlers
  • Evaluation Engine: Evaluate conditions against specific contexts and actors
  • Extensible Architecture: Easy to add new condition types by implementing handlers
  • Trigger Support: Built-in support for different condition triggers
  • Validation: Comprehensive configuration validation for conditions
  • Batch Evaluation: Evaluate multiple conditions at once

Installation

You can install this bundle via Composer:

composer require tourze/condition-system-bundle

Requirements

  • PHP 8.1 or higher
  • Symfony 6.4 or higher
  • Doctrine ORM 3.0 or higher

Quick Start

  1. Register the bundle in your config/bundles.php:
return [
    // ...
    Tourze\ConditionSystemBundle\ConditionSystemBundle::class => ['all' => true],
];
  1. Create a custom condition handler:
use Tourze\ConditionSystemBundle\Handler\AbstractConditionHandler;
use Tourze\ConditionSystemBundle\Interface\ConditionInterface;
use Tourze\ConditionSystemBundle\ValueObject\EvaluationContext;
use Tourze\ConditionSystemBundle\ValueObject\EvaluationResult;

class MyCustomConditionHandler extends AbstractConditionHandler
{
    public function getType(): string
    {
        return 'my_custom_condition';
    }

    public function evaluate(ConditionInterface $condition, EvaluationContext $context): EvaluationResult
    {
        // Your evaluation logic here
        $passed = true; // Determine based on your logic
        
        return $passed 
            ? EvaluationResult::pass()
            : EvaluationResult::fail(['Condition not met']);
    }
}
  1. Use the condition manager:
use Tourze\ConditionSystemBundle\Service\ConditionManagerService;

// Create a condition
$condition = $conditionManager->createCondition($subject, 'my_custom_condition', [
    'threshold' => 100,
    'operator' => '>='
]);

// Evaluate a condition
$context = new EvaluationContext($actor, ['value' => 150]);
$result = $conditionManager->evaluateCondition($condition, $context);

if ($result->isPassed()) {
    // Condition passed
} else {
    // Condition failed
    $errors = $result->getMessages();
}

Configuration

Dependencies

This bundle depends on:

  • tourze/doctrine-timestamp-bundle: Provides timestamp functionality for entities
  • tourze/enum-extra: Enhanced enum support

Advanced Usage

Condition Triggers

The bundle supports different condition triggers through the ConditionTrigger enum. You can filter available condition types by trigger:

$availableTypes = $conditionManager->getAvailableConditionTypes(ConditionTrigger::BEFORE_ACTION);

Batch Evaluation

Evaluate multiple conditions at once:

$results = $conditionManager->evaluateConditions($conditions, $context);

Testing

Run the test suite:

./vendor/bin/phpunit packages/condition-system-bundle/tests

Contributing

Please see CONTRIBUTING.md for details on how to contribute to this project.

License

This bundle is under the MIT license. See the complete license in the bundle: LICENSE

tourze/condition-system-bundle 适用场景与选型建议

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

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

围绕 tourze/condition-system-bundle 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-05-28