linku/feedback 问题修复 & 功能扩展

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

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

linku/feedback

最新稳定版本:1.0.3

Composer 安装命令:

composer require linku/feedback

包简介

Abstract layer between services and output in PHP

README 文档

README

Build Status Software License Packagist Version

Feedback is an io abstraction that lets you decouple functional code and business logic from (CLI) I/O.

Installation

composer require linku/feedback

Use

In the class or service you want to decouple, add a Feedback attribute and make sure it is filled with an instance of NoFeedback by default.

In order to allow the code calling this service to override the default feedback, add a setFeedback method.

In the logic of your service, you can now call the feedback methods.

<?php

use Linku\Feedback\Feedback;
use Linku\Feedback\NoFeedback;

class MyService
{
    /**
     * @var Feedback
     */
    private $feedback;

    public function __construct()
    {
        $this->feedback = new NoFeedback();
    }

    public function setFeedback(Feedback $feedback): void
    {
        $this->feedback = $feedback;    
    }

    public function run(): void
    {
        $this->feedback->info('Starting my service run');

        $this->feedback->startProcess();

        for ($i = 0; $i < 100; $i++) {
            try {
                // Do something in a loop here
            } catch (\Throwable $exception) {
                $this->feedback->exception($exception);
            }

            $this->feedback->advanceProcess();
        }

        $this->feedback->finishProcess();

        $this->feedback->success('Completed my service run');
    }
}

In the script or CLI command that uses your service, set the apropriate feedback.

<?php

$service = new MyService();

$service->setFeedback(new LoggerFeedback(new Logger()));

$service->run();

Available feedback

NoFeedback

A safe fallback that doesn't output anything.

ClosureFeedback

A feedback you can fill with your own anonymous functions.

LoggerFeedback

A feedback that will write to any PSR-3 Logger.

ChainedFeedback

A feedback that lets you use multiple feedbacks at the same time.

<?php

$myService->setFeedback(new ChainedFeedback(
    new LoggerFeedback(new Logger()),
    new ClosureFeedback(/* ... */)
));

Other feedback packages

SymfonyStyleFeedback

If you use Symfony CLI, check out Linku/SymfonyStyleFeedback for integration with the Symfony Style component.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-02-23