Wyodrębniliśmy z frameworka Ouzo najciekawsze funkcjonalności. Dla tych, którzy nie chcą migrować całego projektu (MVC i ORM-a) na Ouzo, teraz wystarczy tylko dodać zależność do Ouzo Goodies i używać m.in. płynnych asercji, mockowania, extractora i wielu innych przydatnych utili.
Więcej na:
https://github.com/letsdrink/ouzo-goodies
Kilka przykładów:
Fluent arrays:
$result = FluentArray::from($users) ->map(Functions::extractField('name')) ->filter(Functions::notEmpty()) ->unique() ->toArray();
Fluent functions:
$product = new Product(['name' => 'super phone']); $function = FluentFunctions::extractField('name') ->removePrefix('super') ->prepend(' extra') ->append('! ') ->surroundWith("***"); $result = Functions::call($function, $product); //=> '*** extra phone! ***'
Extract (from Functions):
Clock:
$string = Clock::now() ->plusYears(1) ->plusMonths(2) ->minusDays(3) ->format();
Comparators:
$product1 = new Product(['name' => 'b']); $product2 = new Product(['name' => 'c']); $product3 = new Product(['name' => 'a']);
Fluent assertions for arrays:
$animals = ['cat', 'dog', 'pig'];
Fluent assertions for strings:
->startsWith("Fro") ->endsWith("do") ->contains("rod") ->doesNotContain("fro") ->hasSize(5);
Mocking:
$mock = Mock::mock(); Mock::when($mock)->someMethod('arg')->thenReturn('result'); $result = $mock->someMethod('arg'); $this->assertEquals("result", $result);
Zapraszamy do korzystania i czekamy na konstruktywny feedback
