williancarminato/google-cse-bundle

一个使用Google自定义搜索API的Symfony2 Bundle

dev-develop / 2.4.x-dev 2014-08-05 04:56 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:43:59 UTC


README

一个使用Google自定义搜索API的Symfony2 Bundle。

特性

  • Google自定义搜索特性,请参阅CSE

要求

安装

该软件包可在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对象的数组。

享受吧!