Весьма любопытно содержимое файла
Okay/Core/Modules/Extender/ChainExtender.php
1. В нем есть функция
private static function isFirstExtension($index, $extensions)
{
$extensionsIndexes = array_keys($extensions);
return $index === reset($extensionsIndexes);
}
Смысл ее, видимо, в том, что определяет, является ли данное значение первым индексом массива.
Вызывается один раз в ситуации
$countExtensions = count($extensions);
for($i = 0; $i < $countExtensions; $i++) {
...
if (static::isFirstExtension($i, $extensions)) {
...
}
}
Очень уж сложно накручено. По-моему, при наличии счетчика $i проверка могла бы быть существенно проще, именно $i==0.
Можно увидеть в этом некоторый смысл, если массив $extensions индексируется не по порядку числами 0,1,2,..., а произвольными значениями. Но, во-первых, в системе, насколько я вижу, реально произвольных индексов нет. Во-вторых, если б они были, то результат такой работы был бы неверный (например, при индексах 1,0 результат работы первого экстендера просто затерся бы).
Вообще код
$countExtensions = count($extensions);
for($i = 0; $i < $countExtensions; $i++) {
выглядит в этой ситуации как работа начинающего, пришедшего из другого языка, где нет foreach.
Или, может, я что-то упустил, и в этом есть глубокий смысл?