Ну есть правила маршрутизации. Допустим
'docs/<paragraph>' => 'docs/index',
'docs/<paragraph>/<part>' => 'docs/section',
Если мы на странице
http://abc-framework.ru/docs/template/insideТо GET будет таким
array (
'controller' => 'docs'
'action' => 'section'
'paragraph' => 'template'
'part' => 'inside'
Вот нужно как то исходя из этого распознать входной массив, сопоставить текущей странице и выдать цепочку.
Тут подумать надо. Наверное лучше на вход сразу массивы с уровнями надо совать.
Вот так:
$bread = Abc::newService('Bread');
$lavel_1 = [ 'main' => 'Главная',
'docs' => 'Документация',
'search' => 'Поиск',
];
$lavel_2 = [ 'index' => null,
'section' => null,
];
$lavel_3 = [ 'template' => 'Шаблонизаторы',
'service' => 'Сервисы',
'example' => 'Примеры',
];
$lavel_4 = [ 'inside' => 'Встроенный',
'native' => 'Нативный',
'container' => 'Контейнер',
'pdo' => 'PDO'
];
$bread->set($lavel_1);
$bread->set($lavel_2);
$bread->set($lavel_3);
$bread->set($lavel_4);
$chain = $bread->createChain();
И сеттер лучше универсальный сделать. Чтобы он принимал сразу многомерный массив, и по очереди, как в примере.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.