basic async-interop support; generator consumer missing
[m6w6/seekat] / examples / promise.php
1 #!/usr/bin/env php
2 <?php
3
4 require_once __DIR__."/../vendor/autoload.php";
5
6 use seekat\API;
7 use seekat\API\Future;
8
9 $log = new Monolog\Logger("seekat");
10 $log->pushHandler((new Monolog\Handler\StreamHandler(STDERR))->setLevel(Monolog\Logger::NOTICE));
11
12 $api = new API(Future\amp(), API\auth("token", getenv("GITHUB_TOKEN")), null, null, $log);
13
14 $api->users->m6w6->gists()->when(function($error, $gists) {
15 foreach ($gists as $gist) {
16 $gist->commits()->when(function($error, $commits) use($gist) {
17 foreach ($commits as $i => $commit) {
18 if (!$i) {
19 printf("\nGist %s, %s:\n", $gist->id, $gist->description ?: "<no title>");
20 }
21 $cs = $commit->change_status;
22 printf("\t%s: ", substr($commit->version,0,8));
23 printf("-%s+%s=%s\n", $cs->deletions, $cs->additions, $cs->total);
24 }
25 });
26 }
27 });
28
29 $api->send();