williancarminato / google-cse-bundle
一个使用Google自定义搜索API的Symfony2 Bundle
dev-develop / 2.4.x-dev
2014-08-05 04:56 UTC
Requires
- php: >=5.3.3
- symfony/framework-bundle: ~2.4
This package is not auto-updated.
Last update: 2024-09-24 04:43:59 UTC
README
一个使用Google自定义搜索API的Symfony2 Bundle。
特性
- Google自定义搜索特性,请参阅CSE
要求
- PHP 5.4+
- 搜索引擎ID(创建自定义搜索引擎)
- 可以从Google Cloud Console获取的API密钥
安装
该软件包可在Packagist上找到。使用Composer进行自动加载与PSR-0兼容。
使用方法
假设您有一个输入文本为 'search_term' 的表单。在控制器中,您可以在表单提交后获取结果,如下所示
<?php ... use Carminato\GoogleCseBundle\Service\ApiRequest; use Carminato\GoogleCseBundle\Service\Query\ApiQuery; class SearchController extends Controller { ... public function searchAction(Request $request) { $filter = $this->createForm(new SearchFilterType()); $filter->bind($request); if ($filter->isValid()) { $data = $filter->getData(); $apiQuery = new ApiQuery( array( 'key' => API_KEY, 'cx' => CX_KEY, 'q' => $data['search_term'], 'start' => 1, 'userIp' => $request->getClientIp() ) ); $apiRequest = new ApiRequest($apiQuery); $response = $apiRequest->getResponse(); if ($error = $response->getErrors()) { return new Response($error->getMessage(), $error->getCode()); } return array( 'results' => $response->getResults() ); } ... } }
结果是包含CseApiResultItem对象的数组。