我在我的应用中使用PHP(不是CakePHP)供应商。
我将vendor文件夹放在“src / controller”中,并将其包含在“src / Controller / TelegramsController.php”set()方法中。
public function set() {
require __DIR__ . '/vendor/autoload.php';
$API_KEY = 'api key';
$BOT_NAME = 'bot name';
$hook_url = 'hook url';
try {
// Create Telegram API object
$telegram = new Telegram($API_KEY, $BOT_NAME);
// Set webhook
$result = $telegram->setWebhook($hook_url);
if ($result->isOk()) {
echo $result->getDescription();
}
} catch (Longman\TelegramBot\Exception\TelegramException $e) {
echo $e;
}
}
当我调用set()方法时,Telegram类在CakePHP呈现视图之前显示响应。而CakePHP显示此警告。
Unable to emit headers.
如何管理Telegram类流出功能以在CakePHP视图中显示(而不是在视图之前)?
答案 0 :(得分:0)
这不是你如何将与作曲家兼容的库包含在与作曲家兼容的项目中,而是composer require
它们并依赖于CakePHP应用程序包含的主要自动加载器:
$ composer require longman/telegram-bot
请阅读composer的工作原理。
话虽如此,您正在覆盖现有的控制器方法,Controller::set()
方法用于注册数据以供在视图模板中使用。为控制器操作方法选择其他名称,并根据需要使用现有的set()
方法将数据传递到视图模板,或者返回正确准备的响应对象。在任何情况下,都不要在控制器操作中回显数据!
另见