1. Go to this page and download the library: Download innmind/mantle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
innmind / mantle example snippets
use Innmind\Mantle\{
Forerunner,
Task,
Source\Continuation,
};
use Innmind\OperatingSystem\{
Factory,
OperatingSystem,
};
use Innmind\Filesystem\Name;
use Innmind\HttpTransport\Success;
use Innmind\Http\{
Request,
Method,
ProtocolVersion,
};
use Innmind\Url\{
Url,
Path,
};
use Innmind\Immutable\Sequence;
$run = Forerunner::of(Factory::build());
[$users] = $run(
[0, 0, false],
static function(array $carry, OperatingSystem $os, Continuation $continuation, Sequence $results): Continuation {
[$users, $finished, $launched] = $carry;
if (!$launched) {
return $continuation
->carryWith([$users, $finished, true])
->launch(Sequence::of(
Task::of(
static fn(OperatingSystem $os): int => $os
->remote()
->http()(Request::of(
Url::of('http://some-service.tld/users/count'),
Method::get,
ProtocolVersion::v11,
))
->map(static fn(Success $success): string => $success->response()->body()->toString())
->match(
static fn(string $response): int => (int) $response,
static fn() => throw new \RuntimeException('Failed to count the users'),
),
),
Task::of(
static fn(OperatingSystem $os): int => $os
->filesystem()
->mount(Path::of('some/directory/'))
->get(Name::of('users.csv'))
->map(static fn($file) => $file->content()->lines())
->match(
static fn(Sequence $lines) => $lines->reduce(
0,
static fn(int $total): int => $total + 1,
),
static fn() => throw new \RuntimeException('Users file not found'),
),
),
));
}
$finished += $results->size();
$users = $results->reduce(
$users,
static fn(int $total, int $result): int => $total + $result,
);
$continuation = $continuation->carryWith([$users, $finished, $launched]);
if ($finished === 2) {
$continuation = $continuation->terminate();
}
return $continuation;
},
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.