PHP code example of mf / collections-php
1. Go to this page and download the library: Download mf/collections-php 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/ */
mf / collections-php example snippets
// initialization of strategies
/** @phpstan-var PrioritizedCollection<StrategyInterface> $strategies */
$strategies = new PrioritizedCollection();
$strategies->add(new DefaultStrategy(), 1);
// added later
$strategies->add(new SpecialStrategy(), 100);
// find and apply first suitable strategy
/** @var StrategyInterface $strategy */
foreach ($strategies as $strategy) {
if ($strategy->supports($somethingStrategic)) {
return $strategy->apply($somethingStrategic);
}
}
$list = new Immutable\ListCollection();
$listWith1 = $list->add(1);
// $list != $listWith1
echo $list->count(); // 0
echo $listWith1->count(); // 1
$seq = Seq::infinite() // 1, 2, ...
->filter(fn ($i) => $i % 2 === 0) // 2, 4, ...
->skip(2) // 6, 8, ...
->map(fn ($i) => $i * $i) // 36, 64, ...
->takeWhile(fn ($i) => $i < 100) // 36, 64
->reverse() // 64, 36
->take(1); // 64
// for now the Sequence is still lazy
// this will generate (evaluate) the values
$array = $seq->toArray(); // [64]
Tuple::parse('(foo, bar)')->toArray(); // ['foo', 'bar']
Tuple::parse('("foo, bar", boo)')->toArray(); // ['foo, bar', 'boo']
Tuple::parse('(1, "foo, bar", true)')->toArray(); // [1, 'foo, bar', true]
Tuple::parse('(1, [2; 3], [four; "Five"])')->toArray(); // [1, [2, 3], ['four', 'five']]
Tuple::from([1, 1])->match('int', 'int'); // true
Tuple::from([1, 2, 3])->isSame(Tuple::of(1, 2, 3)); // true
Tuple::of(10, 'Foo', null)->match('int', 'string', '?string'); // true
Tuple::of(10, [9, 8])->match('int', 'array'); // true
Tuple::parseMatch('(foo, bar)', 'string', 'string')->toArray(); // ['foo', 'bar']
Tuple::parseMatchTypes('(foo, bar)', ['string', 'string'])->toArray(); // ['foo', 'bar']
// invalid types
Tuple::parseMatch('(foo, bar, 1)', 'string', 'string'); // throws \InvalidArgumentException "Given tuple does NOT match expected types (string, string) - got (string, string, int)"
Tuple::from([1, 'foo', null])->toString(); // '(1, "foo", null)'
// for URL
Tuple::from(['foo', 'bar'])->toStringForUrl(); // '(foo,bar)'
Tuple::from(['foo-bar', 'boo'])->toStringForUrl(); // '(foo-bar,bar)'
Tuple::from(['mail', '[email protected] '])->toStringForUrl(); // '(mail,"[email protected] ")'
$tuple = Tuple::of('first', 2, 3); // ('first', 2, 3)
$first = $tuple->first(); // 'first'
$second = $tuple->second(); // 2
[$first, $second] = $tuple; // $first = 'first'; $second = 2
[,, $third] = $tuple; // 3
sprintf('Title: %s | Value: %s', ...Tuple::of('foo', 'bar')); // "Title: foo | Value: bar"
$base = Tuple::of('one', 'two'); // ('one', 'two')
$upTo3 = Tuple::merge($base, 'three'); // ('one', 'two', 'three')
$upTo4 = Tuple::merge($base, '3', 'four'); // ('one', 'two', '3', 'four')
$upTo5 = Tuple::merge($base, ['3', '4'], '5'); // ('one', 'two', ['3', '4'], '5')
$upTo5 = Tuple::merge($base, Tuple::of('3', '4'), '5'); // ('one', 'two', '3', '4', '5')
$base = Tuple::of('one', 'two'); // ('one', 'two')
$upTo3 = Tuple::mergeMatch(['string', 'string', 'int'], $base, 3); // ('one', 'two', 3)
// invalid types
Tuple::mergeMatch(['string', 'string'], $base, 3); // throws \InvalidArgumentException "Merged tuple does NOT match expected types (string, string) - got (string, string, int)."
bash
composer