Это была одна моих главных неприятностей с Carabiner, небуферизованный вывод. Каждая выходная функция echo
возвращает возвращаемое значение, а не возвращает его.
Не взламывая библиотеку (что я лично сделал бы), вот пример того, как сделать то, что вы спрашиваете:
ob_start();
$this->carabiner->display('css');
$css = ob_get_clean();
Теперь у вас есть переменная с выводом тега js / css, которую вы можете отправить в свой файл представления или шаблон. Без буферизации вывода это немедленно распечатало бы теги на ваш вывод. Обратите внимание, что если вы хотите, другой обходной путь - убедиться, что вы не вызываете функции вывода, пока они вам не понадобятся, как в самом шаблоне.
Если вы хотите исправить это навсегда, просмотрите библиотеку Carabiner и замените каждый экземпляр echo $some_return_value;
на return $some_return_value;
(последняя строка любой функции вывода). Их много, так что это займет немного времени.
Что касается возврата массивов, я не слишком уверен - я никогда не добирался так далеко с Карабинером (мне это не нравилось). Надеюсь, это все равно поможет. Удачи!
Подробнее о буферизации вывода: http://php.net/manual/en/book.outcontrol.php