2017 © Pedro Peláez
 

library fly-response

FlyResponse to Nette Framework

image

minetro/fly-response

FlyResponse to Nette Framework

  • Friday, December 9, 2016
  • by f3l1x
  • Repository
  • 2 Watchers
  • 7 Stars
  • 2,470 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

, (*1)

, (*2)

Website 🚀 contributte.org | Contact 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte , (*3)

Disclaimer

:warning: This project is no longer being maintained. Please use contributte/application.
Composer minetro/fly-response
Version
PHP
License

Documentation

Usage

Responses

FlyResponse

For common purpose and your custom solutions., (*4)

FlyFileResponse

Special response for handling files on-the-fly., (*5)

Adapters

ProcessAdapter

Execute command over popen., (*6)

use Minetro\FlyResponse\Adapter\ProcessAdapter;
use Minetro\FlyResponse\FlyFileResponse;

// Compress current folder and send to response
$adapter = new ProcessAdapter('tar cf - ./ | gzip -c -f');
$response = new FlyFileResponse($adapter, 'folder.tgz');

$this->sendResponse($response);
StdoutAdapter

Write to php://output., (*7)

use Minetro\FlyResponse\Adapter\StdoutAdapter;
use Minetro\FlyResponse\Buffer\Buffer;
use Minetro\FlyResponse\FlyFileResponse;
use Nette\Http\IRequest;
use Nette\Http\IResponse;

// Write to stdout over buffer class
$adapter = new StdoutAdapter(function(Buffer $buffer, IRequest $request, IResponse $response) {
    // Modify headers
    $response->setHeader(..);

    // Write data
    $buffer->write('Some data..');
});
$response = new FlyFileResponse($adapter, 'my.data');

$this->sendResponse($response);
CallbackAdapter
use Minetro\FlyResponse\Adapter\CallbackAdapter;
use Minetro\FlyResponse\Buffer\Buffer;
use Minetro\FlyResponse\FlyFileResponse;
use Nette\Http\IRequest;
use Nette\Http\IResponse;

$adapter = new CallbackAdapter(function(IRequest $request, IResponse $response) use ($model) {
    // Modify headers
    $response->setHeader($header);

    // Fetch topsecret data
    $data = $this->facade->getData();
    foreach ($data as $d) {
        // Write or print data..
    }
});
$response = new FlyFileResponse($adapter, 'my.data');

$this->sendResponse($response);

Model

final class BigOperationHandler
{

    /** @var Facade */
    private $facade;

    /**
     * @param Facade $facade
     */
    public function __construct(Facade $facade)
    {
        $this->facade = $facade;
    }

    public function toFlyResponse()
    {
        $adapter = new CallbackAdapter(function (IRequest $request, IResponse $response) {
            // Modify headers
            $response->setHeader(..);

            // Fetch topsecret data
            $data = $this->facade->getData();
            foreach ($data as $d) {
                // Write or print data..
            }
        });

        return new FlyFileResponse($adapter, 'file.ext');

        // or
        return new FlyResponse($adapter);
    }
}

interface IBigOperationHandlerFactory
{

    /**
     * @return BigOperationHandler
     */
    public function create();

}

final class MyPresenter extends Nette\Application\UI\Presenter
{

    /** @var IBigOperationHandlerFactory @inject */
    public $bigOperationHandlerFactory;

    public function handleMagic()
    {
        $this->sendResponse(
            $this->bigOperationHandlerFactory->create()->toFlyResponse()
        );
    }
}

Development

This package was maintain by these authors., (*8)

, (*9)


Consider to support contributte development team. Also thank you for being used this package., (*10)

The Versions

09/12 2016

dev-master

9999999-dev https://github.com/minetro/fly-response

FlyResponse to Nette Framework

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

18/07 2016

v0.2

0.2.0.0 https://github.com/minetro/fly-response

FlyResponse to Nette Framework

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

08/07 2016

v0.1

0.1.0.0 https://github.com/minetro/fly-response

FlyResponse to Nette Framework

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires