Skip to content

Instantly share code, notes, and snippets.

Avatar

Christian Lück clue

View GitHub Profile
@clue
clue / promises.md
Created Jun 9, 2021
Promise-based async APIs
View promises.md
AcmeDemo
├── src/
│   ├── Book.php
│   ├── BookRepository.php
│   └── BookLookupController.php
├── vendor/
├── app.php
├── composer.json
└── composer.lock
@clue
clue / fibers.md
Created Jun 9, 2021
Fibers make async APIs look like sync APIs – because this example is in fact synchronous from a caller's perspective (fetch, wait, transform, return)
View fibers.md
AcmeDemo
├── src/
│   ├── Book.php
│   ├── BookRepository.php
│   └── BookLookupController.php
├── vendor/
├── app.php
├── composer.json
@clue
clue / coroutines.md
Last active Jun 10, 2021
Generator-based coroutines returning Generator vs wrapping in Promises using coroutine helper
View coroutines.md
AcmeDemo
├── src/
│   ├── Book.php
│   ├── BookRepository.php
│   └── BookLookupController.php
├── vendor/
├── app.php
├── composer.json
@clue
clue / test.php
Last active May 7, 2021 — forked from carliedu/test.php
Get the result of file exist/no exits
View test.php
<?php
use app\clFilesystem;
use React\MySQL\Factory;
require __DIR__ . '/vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$filesystem = \React\Filesystem\Filesystem::create($loop);
$file = "teste.txt";
View gist:fa6b953e841cf77b18fa95fa1f48f599
function main(): PromiseInterface {
return $this->query(1);
}
function query(page): PromiseInterface {
return $this
->makeAQuery(page)
->then($result) {
@clue
clue / gist:86c3cbdc10ecf49d444f61768034856a
Created Feb 17, 2020 — forked from davor010/gist:41ddf289c4155bce8daa8960d4cf885b
using transformer in between (mysql, clickhouse)
View gist:86c3cbdc10ecf49d444f61768034856a
$promise = new React\Promise\FulfilledPromise(1);
$transformer = new ThroughStream(function ($data) {
return array('id' => $data['id'], 'stocknummer' => $data['id'], 'dealer_id' => $data['id'], '_vnr' => 1, '_checksum' => sha1(json_encode($data)), '_timestamp' => date('Y-m-d h:i:s'));
});
//try to change in Client class add _vnr, _checksum and _timestamp
$source->pipe($transformer)->pipe($stream);
//$source->pipe($stream);
View MagicBytesSplitter.php
<?php
namespace Clue\React\Foo;
use Evenement\EventEmitter;
use React\Stream\ReadableStreamInterface;
use React\Stream\WritableStreamInterface;
use React\Stream\Util;
class MagicBytesSplitter extends EventEmitter implements ReadableStreamInterface