rfc:functional-elements
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
rfc:functional-elements [2008/03/06 02:00] – Initial creation. Introduction, current use cases lstrojny | rfc:functional-elements [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Functional elements | + | This RFC is still in progress |
+ | ====== Functional elements | ||
==== Abstract ==== | ==== Abstract ==== | ||
- | A common pattern in PHP is iterating through a list of objects and executing certain methods of the function. This is especially common when it comes to 1: | + | A common pattern in PHP is iterating through a list of objects and executing certain methods of the objects. This is especially common when it comes to 1: |
- | ==== Current | + | ==== Current |
- | === UC-1 === | + | === UC-1: Iterating over an aggregation of objects |
<code php> | <code php> | ||
foreach ($list as $element) { | foreach ($list as $element) { | ||
Line 11: | Line 12: | ||
</ | </ | ||
- | === UC-2 === | + | === UC-2: Iterating over an aggregation of objects and keeping the results |
<code php> | <code php> | ||
$result = array(); | $result = array(); | ||
Line 19: | Line 20: | ||
</ | </ | ||
- | === UC-3 === | + | === UC-3: Iterating over an aggregation of objects and conditionally executing a method |
<code php> | <code php> | ||
foreach ($list as $element) { | foreach ($list as $element) { | ||
Line 28: | Line 29: | ||
</ | </ | ||
- | === UC-4 === | + | === UC-4: Iterating over an aggregation of objects and conditionally executing a method while keeping the results |
<code php> | <code php> | ||
$result = array(); | $result = array(); | ||
Line 37: | Line 38: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Required functionality ==== | ||
+ | Extracting the required functionality to leads to the following required additions: | ||
+ | * [[rfc: | ||
+ | * [[rfc:: | ||
+ | * [[rfc: | ||
+ | * function iterator_true(): | ||
+ | * function iterator_false(): | ||
+ | |||
+ | ==== Modified use cases ==== | ||
+ | === UC-1: Iterating over an aggregation of objects === | ||
+ | <code php> | ||
+ | iterate(new CallIterator($list, | ||
+ | </ | ||
+ | |||
+ | === UC-2: Iterating over an aggregation of objects and keeping the results === | ||
+ | <code php> | ||
+ | $result = iterate(new CallIterator($list, | ||
+ | </ | ||
+ |
rfc/functional-elements.1204768842.txt.gz · Last modified: 2017/09/22 13:28 (external edit)