承接 lukaszmakuch/text-generator 相关项目开发

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

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

lukaszmakuch/text-generator

Composer 安装命令:

composer require lukaszmakuch/text-generator

包简介

Converts anything to text. Works like a toString implementation, but outside the object.

README 文档

README

travis

TextGenerator

Converts anything to text. Works like a toString implementation, but outside the object.

Brief description

For more details, check unit tests.

TextGenerator

It's the base interface. It takes some input and returns a textual representation of it, or throws an exception if it's not supported.

use lukaszmakuch\TextGenerator\TextGenerator;
use lukaszmakuch\TextGenerator\Exception\UnableToGetText;

/* @var $textGenerator TextGenerator */
try {
    echo $textGenerator->getTextBasedOn($anything);
} catch (UnableToGetText $e) {
    echo $e->getMessage();
}

ClassBasedTextGenerator

Takes into account nothing but the class of a given object.

use lukaszmakuch\TextGenerator\ClassBasedTextGenerator;

/* @var $textGenerator ClassBasedTextGenerator */
$textGenerator->addTextualRepresentationOf(
    \DateTime::class,
    "a DateTime object"
);
echo $textGenerator->getTextBasedOn(new \DateTime()); //"a DateTime object"

ObjectToTextConverter

Template of a generator that converts an object to text.

use lukaszmakuch\TextGenerator\ObjectToTextConverter;

class DateTimeTextPresenter extends ObjectToTextConverter
{
    protected function getClassOfSupportedObjects()
    {
        return \DateTime::class;
    }

    protected function getTextBasedOnObject($object)
    {
        /* @var $object \DateTime */
        return $object->format("It's " . $object->format("Y"));
    }
}

$textGenerator = new DateTimeTextPresenter();
echo $textGenerator->getTextBasedOn(new \DateTime("2016-01-01")); //"It's 2016"

TextGeneratorWithDefaultText

Decorator that returns some default text if the decorated one doesn't support the given input.

use lukaszmakuch\TextGenerator\TextGeneratorWithDefaultText;
use lukaszmakuch\TextGenerator\TextGenerator;

$textGenerator = new TextGeneratorWithDefaultText(
    /* @var $actualGenerator TextGenerator */
    $actualGenerator,
    "default text if the input is not supported"
);

NULLTextGenerator

Returns an empty string for any given input.

use lukaszmakuch\TextGenerator\NULLTextGenerator;

$textGenerator = NULLTextGenerator::getInstance();
$textGenerator->getTextBasedOn($anything); //an empty string

StaticTextGenerator

Always returns the same text regardless what is the input.

use lukaszmakuch\TextGenerator\StaticTextGenerator;

(new StaticTextGenerator("abc"))->getTextBasedOn("anything"); //abc

SimpleTextGeneratorProxy

Hides some actual implementation under the hood. Useful when solving circular dependencies.

use lukaszmakuch\TextGenerator\SimpleTextGeneratorProxy;
use lukaszmakuch\TextGenerator\TextGenerator;

/* @var $actualGenerator TextGenerator */
$textGenerator = new SimpleTextGeneratorProxy();
$textGenerator->setActualGenerator(actualGenerator)

ClassBasedTextGeneratorProxy

Delegates work based on the class of a given object.

use lukaszmakuch\TextGenerator\SimpleTextGeneratorProxy;
use lukaszmakuch\TextGenerator\TextGenerator;

/* @var $dateTimeTextGenerator TextGenerator */
/* @var $someClassObjectsTextGenerator TextGenerator */
$textGenerator = new ClassBasedTextGeneratorProxy();
$textGenerator->registerActualGenerator(
    \DateTime::class,
    $dateTimeTextGenerator
);
$textGenerator->registerActualGenerator(
    SomeClass::class,
    $someClassObjectsTextGenerator
);

ChainOfTextGenerators

Returns the value generated by the first generator that is able to generate any output based on the given input.

use lukaszmakuch\TextGenerator\TextGenerator;
use lukaszmakuch\TextGenerator\ChainOfTextGenerators;

$chain = (new ChainOfTextGenerators())
    ->add($ifThisGeneratorFails)
    ->add($thisOneIsUsed)
    ->add($andIfItFailsThenThisOneIsUsed);

Installation

Use composer to get the latest version:

$ composer require lukaszmakuch/text-generator

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-04-16

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固