tompedals / helpscout-dynamic-app
一个帮助创建Help Scout动态应用的库
0.2.1
2016-09-28 21:51 UTC
Requires
- php: >=5.6
- psr/http-message: ^1.0
Requires (Dev)
- mockery/mockery: ^0.9
- phpunit/phpunit: ^5.5
- zendframework/zend-diactoros: ^1.3
This package is auto-updated.
Last update: 2024-09-20 04:31:24 UTC
README
这是一个简单的库,用于验证Help Scout动态应用请求并相应地作出响应。从官方库分叉出来,以添加对PSR-7 HTTP消息接口的支持。
安装
可以通过Composer以tompedals/helpscout-dynamic-app的形式进行安装。
composer require tompedals/helpscout-dynamic-app
示例
注意:以下示例使用zendframework/zend-diactoros作为HTTP消息实现。
处理请求
请求将通过请求头中提供的密钥和签名进行验证。
use TomPedals\HelpScoutApp\AppRequestFactory; use Zend\Diactoros\ServerRequestFactory; $factory = new AppRequestFactory('secret'); $request = $factory->create(ServerRequestFactory::fromGlobals()); /** @var TomPedals\HelpScoutApp\Model\Customer */ $customer = $request->getCustomer(); /** @var TomPedals\HelpScoutApp\Model\Mailbox */ $mailbox = $request->getMailbox(); /** @var TomPedals\HelpScoutApp\Model\Ticket */ $ticket = $request->getTicket(); /** @var TomPedals\HelpScoutApp\Model\User */ $user = $request->getUser();
响应请求
在响应中设置HTML,并获取JSON响应的正确模式。
use TomPedals\HelpScoutApp\AppResponse; use Zend\Diactoros\Response\JsonResponse; $response = new AppResponse('<h4>Test</h4>'); $jsonResponse = new JsonResponse($response->getData());
控制器操作
提供了一个PSR-7兼容的操作来处理请求并相应地响应。该操作是一个可调用的类,可用于Slim、Symfony、Zend Framework等。
实现AppHandlerInterface
以处理AppRequest
并返回要在Help Scout侧边栏中渲染的HTML。
class AppHandler implements AppHandlerInterface { public function handle(AppRequest $request) { // Find customer information // Render the template // Return the HTML response return '<h4>This customer is awesome</h4>'; } }
在构造操作时传递AppHandler
实现。
use TomPedals\HelpScoutApp\AppAction; use TomPedals\HelpScoutApp\AppHandlerInterface; use TomPedals\HelpScoutApp\AppRequestFactory; // implements AppHandlerInterface $handler = new AppHandler(); $action = new AppAction(new AppRequestFactory('secret'), $handler); $response = $action($request, $response);