Я нашел проблему.
Актерский состав не работал здесь.
$ this-> urlFragments ['limit'] значение равно [500,500] .
Таким образом, после взрыва $ limitArgs [0] равен [500 , но код (int) ($ limitArgs [0]) всегда давал мне 0 вместо 500 как результат.
Я заменил его на уродливый str_replace, как показано ниже:
$sql_limit .= ' LIMIT '.str_replace("[", "", $limitArgs[0]).(isset($limitArgs[1]) ? ','.(int)($limitArgs[1]) : '')."\n";// LIMIT X|X, Y
Не самый лучший, но может быть полезен, если кто-то сталкивается с такой ситуацией.
edit: я отправил в кузницу, правильный синтаксис для лимита: limit = X, Y not limit = [X, Y].