Во второй версии библиотеки
irazasyed/telegram-bot-sdk клавиатура делалась простой передачей массива
$keyboard = [
['q', 'w', 'e'],
['a', 's', 'd']
];
В 3 версии эту штуку убрали,теперь там по-другому:
use Telegram\Bot\Keyboard\Keyboard;
$keyboard = Keyboard::make()
->setOneTimeKeyboard(false)->setResizeKeyboard(true)
->row('q', 'w', 'e')
->row('a', 's', 'd');
И вроде бы всё хорошо, но как такую конструкцию загнать в цикл foreach?
Раньше - передал массив и всё.
А сейчас? Такой метод (из массива убрали / я не нашёл).
Сделал такой "г*внокод", но он, естественно, не работает и это уже совсем не то, что бы хотелось, кастыли какие-то...
$items = [
'qqq', 'www', 'eee',
'rrr', 'ttt', 'yyy',
'uuu', 'iii', 'ooo'
];
$sCode = trim('use Telegram\Bot\Keyboard\Keyboard;
$keyboardforeach = Keyboard::make()
->setOneTimeKeyboard(false)->setResizeKeyboard(true)
');
$j=0;
$limit=3;
foreach($items as $item){
if($limit==$j){
$sCode[strlen($sCode)-1] = ')';
$sCode .= ')';
$j=0;
} if ($j==0) {
$sCode .= '->row(';
}
$j++;
$sCode .= "<<<'EOF'\n{$item}\nEOF\n,";
}
$sCode .= ';';
eval($sCode);
Есть ли решение для новой версии этой библиотеки?