2017-05-24 27 views
1

我在我的應用程序中使用PHP(而不是CakePHP)供應商。
我把vendor文件夾放在「src/controller」中,並將其包含在「src/Controller/TelegramsController.php」set()方法中。
在CakePHP 3控制器中管理其他類輸出

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; 
    } 
} 


當我打電話設置()方法,電報類顯示響應的CakePHP呈現視圖之前。 CakePHP顯示此警告。
Unable to emit headers.
如何管理電報類流出功能顯示在CakePHP視圖(而不是查看)?

回答

0

這不是你如何包括作曲家兼容庫成作曲家兼容的項目,而不是你composer require他們,並依賴於由CakePHP程序包括主自動加載磁帶機:

$ composer require longman/telegram-bot 

請有關如何composer作品閱讀起來。

這就是說,您正在覆蓋現有的控制器方法,Controller::set()方法用於註冊數據以在視圖模板中使用。爲您的控制器操作方法選擇一個不同的名稱,並根據需要使用現有的set()方法將數據傳遞到視圖模板,或者返回一個正確準備好的響應對象。無論如何,請勿在控制器操作中回顯數據!

又見

+0

謝謝。 [我試過「作曲家需要longman/telegram-bot」,但沒有成功。](https://stackoverflow.com/questions/44106107/how-to-use-telegram-api-package-in-cakephp-3?) –

+0

對不起。我認爲「電報班」迴應了這個信息。考慮「電報類」迴應一些消息。如果外部類(如電報)迴應消息,是否有任何方法來包裝消息? –

相關問題