PHP code example of fg / parkour
1. Go to this page and download the library: Download fg/parkour 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/ */
fg / parkour example snippets
Parkour\Traverse::filter([5, 15, 20], function($value) {
return $value > 10;
});
// [15, 20]
Parkour\Traverse::filter([5, 15, 20], new Parkour\Functor\Greater(10));
// [15, 20]
Parkour\Traverse::map([10, 20], new Parkour\Functor\Multiply(2), 0);
// [20, 40]
Parkour\Traverse::reduce([10, 20], new Parkour\Functor\Add(), 0);
// 30
use Parkour\Traverse;
Traverse::each(['foo' => 'bar'], function($value, $key) {
echo "$key: $value";
});
// foo: bar
$data = [
'foo' => 1,
'bar' => 2
];
Traverse::map($data, function($value, $key) {
return $value * 2;
});
// [
// 'foo' => 2,
// 'bar' => 4
// ]
$data = [
'foo' => 1,
'bar' => 2
];
Traverse::mapKeys($data, function($value, $key) {
return strtoupper($key);
});
// [
// 'FOO' => 1,
// 'BAR' => 2
// ]
$data = [
'foo' => true,
'bar' => false
];
Traverse::filter($data, function($value, $key) {
return $value === true;
});
// [
// 'foo' => true
// ]
$data = [
'foo' => true,
'bar' => false
];
Traverse::reject($data, function($value, $key) {
return $value === true;
});
// [
// 'bar' => false
// ]
Traverse::reduce([1, 2], function($memo, $value, $key) {
return $memo + $value;
}, 0);
// 3
Traverse::reduce([1, 2], new Parkour\Functor\Add(), 0); // 3
Traverse::reduce([2, 2], new Parkour\Functor\Mutiply(), 2); // 8
$data = [
'foo' => 'PHP',
'bar' => 'JavaScript'
];
Traverse::find($data, function($value, $key) {
return $key === 'foo';
});
// 'PHP'
$data = [
'foo' => 'PHP',
'bar' => 'JavaScript'
];
Traverse::findKey($data, function($value, $key) {
return $value === 'PHP';
});
// 'foo'
Traverse::some([5, 10, 20], function($value, $key) {
return $value > 10;
});
// true
Traverse::some([1, 2], new Parkour\Functor\AlwaysFalse()); // false
Traverse::every([1, 2], function($value, $key) {
return $value === 1;
});
// false
Traverse::every([1, 2], new Parkour\Functor\AlwaysTrue()); // true
use Parkour\Transform;
$data = [
['id' => 12, 'name' => 'foo'],
['id' => 37, 'name' => 'bar']
];
Transform::combine($data, function($row, $key) {
yield $row['id'] => $row['name'];
});
// [
// 12 => 'foo',
// 37 => 'bar'
// ]
$data = [
'foo' => 'bar'
'baz'
];
Transform::normalize($data, true);
// [
// 'foo' => 'bar',
// 'baz' => true
// ]
$data = ['foo' => 'bar'];
Transform::reindex($data, [
'foo' => 'baz'
]);
// [
// 'baz' => 'bar'
// ]
$first = [
'one' => 1,
'two' => 2,
'three' => [
'four' => 4,
'five' => 5
]
];
$second = [
'two' => 'two',
'three' => [
'four' => 'four'
]
];
Transform::merge($first, $second);
// [
// 'one' => 1,
// 'two' => 'two',
// 'three' => [
// 'four' => 'four',
// 'five' => 5
// ]
// ]
use Parkour\Access;
$data = [
'a' => 'foo',
'b' => [
'c' => 'bar'
]
];
Access::has($data, 'b.c'); // true
Access::has($data, ['b', 'c']); // true
$data = [
'a' => 'foo',
'b' => [
'c' => 'bar'
]
];
Access::get($data, 'a'); // 'foo'
Access::get($data, 'b.c'); // 'bar'
Access::get($data, ['b', 'c']); // 'bar'
$data = [
'a' => 'foo',
'b' => [
'c' => 'bar'
]
];
$data = Access::set($data, 'a', 'a');
$data = Access::set($data, 'b.c', 'c');
$data = Access::set($data, ['b', 'd'], 'd');
// [
// 'a' => 'a',
// 'b' => [
// 'c' => 'c',
// 'd' => 'd'
// ]
// ]
$data = [
'a' => 'foo',
'b' => [
'c' => 'bar'
]
];
$data = Access::update($data, 'a', function($value) {
return strtoupper($value);
});
$data = Access::update($data, 'b.c', function($value) {
return $value . $value;
});
$data = Access::update($data, ['b', 'd'], 'd');
// [
// 'a' => 'FOO',
// 'b' => [
// 'c' => 'barbar'
// ]
// ]
$Add = new Parkour\Functor\Add();
Traverse::reduce([10, 20], $Add, 0);
// is equivalent to:
Traverse::reduce([10, 20], function($memo, $value) {
return $memo + $value;
}, 0);
$Add = new Parkour\Functor\Add(5);
Traverse::map([10, 20], $Add, 0);
// is equivalent to:
Traverse::map([10, 20], function($value) {
return $value + 5;
}, 0);