1. Go to this page and download the library: Download 8fold/php-foldable 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/ */
8fold / php-foldable example snippets
class MyFoldable extends Fold
{
public function append(string $string): MyFoldable
{
$this->main = $this->main . $string;
return $this;
// Note: If you prefer immutability, you can always create a new instance
// of the MyFoldable class:
//
// return MyFoldable::fold(...$this->args(true));
}
}
print MyFoldable::fold("Hello")->append(", World!")->unfold();
// output: Hello, World!
class Append extends Filter
{
public function __invoke($using): string
{
if (is_a($using, Pipe::class)) {
return $using->unfold() . $this->main;
}
return $using . $this->main;
}
}
print Apply::append(", World!")->unfoldUsing("Hello");
// output: Hello, World!
class MyFoldable extends Fold
{
public function append(string $string): MyFoldable
{
$this->main = Append::applyWith($string)->unfoldUsing($this->main);
return $this;
}
}
print MyFoldable::fold("Hello")->append(", World!")->unfold();
// output: Hello, World!
class Prepend extends Filter
{
public function __invoke(string $using): string
{
return Append::applyWith($using)->unfoldUsing($this->main);
}
}
$result = Pipe::fold("World",
Apply::prepend("Hello, "),
Apply::append("!")
)->unfold();
// output: Hello, World!
// you can allow filters to take pipes as well
$result = Pipe::fold("World",
Apply::prepend(
Pipe::fold("ello",
Apply::prepend("H"),
Apply::append(","),
Apply::append(" ")
)
),
Apply::append("!")
)->unfold();
use PHPUnit\Framework\TestCase as PHPUnitTestCase;
use Eightfold\Foldable\Tests\PerformantEqualsTestFilter as AssertEquals;
class TestCase extends PHPUnitTestCase
{
/**
* @test
*/
public function test_something()
{
AssertEquals::applyWith(
"expected result",
"expected type",
0.4 // maximum milliseconds
)->unfoldUsing(
Pipe::fold("World",
Apply::prepend(
Pipe::fold("ello",
Apply::prepend("H"),
Apply::append(","),
Apply::append(" ")
)
),
Apply::append("!")
)
);
}
}
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.