lukaszmakuch/lmcondition 问题修复 & 功能扩展

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

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

lukaszmakuch/lmcondition

最新稳定版本:v0.0.2

Composer 安装命令:

composer require lukaszmakuch/lmcondition

包简介

Condition library

README 文档

README

This library allows to build complex conditions connected with AND/OR statements with subconditions support and then check them in some context.

travis

Usage

Getting objects

Building conditions

Let's say we want to match books that are hard to read or those ones with titles longer than 50 characters:

$wiseBookCondition = (new ConditionComposite())
    ->addOR(new Difficulty(Difficulty::HARD))
    ->addOR(new TitleOfMoreCharsThan(50));

Or easy books with short titles for children:

$booksForChildrenCondition = (new ConditionComposite())
    ->addAND(new Difficulty(Difficulty::EASY))
    ->addAND((new TitleOfMoreCharsThan(15))->negate());

Or those with really long titles:

$titleLogerThan99Condition = new TitleOfMoreCharsThan(99);

Building context

An easy to read book with a long title:

$easyBookWithLongTitle = (new Book())
    ->setTitle("A really long title of some book that must be wise.")
    ->markAsEasy();

A hard to read book with short title:

$hardBookWithShortTitle = (new Book())
    ->markAsHard()
    ->setTitle("How?");

An easy to read book with a short title:

$easyBookWithShortTitle = (new Book())
    ->markAsEasy()
    ->setTitle("Cats");

Checking

Is a condition true?

Is this book wise?

$wiseBookCondition->isTrueIn($easyBookWithLongTitle); //true
$wiseBookCondition->isTrueIn($hardBookWithShortTitle); //true
$wiseBookCondition->isTrueIn($easyBookWithShortTitle); //false

Is it for children?

$booksForChildrenCondition->isTrueIn($easyBookWithLongTitle); //false
$booksForChildrenCondition->isTrueIn($hardBookWithShortTitle); //false
$booksForChildrenCondition->isTrueIn($easyBookWithShortTitle); //true

Is the title longer than 99 characters?

$titleLogerThan99Condition->isTrueIn($easyBookWithLongTitle); //false
$titleLogerThan99Condition->isTrueIn($hardBookWithShortTitle); //false
$titleLogerThan99Condition->isTrueIn($easyBookWithShortTitle);//false

Does intersection exist between two conditions?

A title of a wise book may be longer than 99 characters.

/* @var $intersectDetector IntersectDetector */
$intersectDetector->intersectExists(
    $wiseBookCondition,
    $titleLogerThan99Condition
); //true

But books for children have no titles that long.

/* @var $intersectDetector IntersectDetector */
$intersectDetector->intersectExists(
    $booksForChildrenCondition,
    $titleLogerThan99Condition
); //false

Are two conditions equal?

Two condition objects may be equal.

/* @var $comparator EqualityComparator */
$comparator->equal(
    $titleLogerThan99Condition,
    new TitleOfMoreCharsThan(99)
); //true

Installation

Use composer to get the latest version:

$ composer require lukaszmakuch/lmcondition

Example

The above code is taken from an example code located in ./examples. You can check there all files needed to provide this functionality.

Documentation

For more information check the best documentation - unit tests in ./tests. There's also documentation generated in ./doc.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-08-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固