iblank/laravel-gov-search
laravel-gov-search
Laravel PHP Facade/Wrapper for the USA.gov, DigitalGov Search API. You will need to create an account with DigialGov to create an affiliate id and access token key: http://search.digitalgov.gov/
Installation
-
Add project to the require array in your
composer.jsonfile:"require": { "iblank/laravel-gov-search": "dev-master" } -
Run
composer updateto pull down the latest version of the package. -
Open
app/config/app.php* and add the service provider to yourprovidersarray:'providers' => array( 'iblank\GovSearch\GovSearchServiceProvider' )
* NOTE: if you are using environmental configurations, make sure to place the service provider in the app.php file respective to your environment.
Configuration
For Laravel 5
Run php artisan vendor:publish and set your API key and affiliate id in the file:
/app/config/govsearch.php
For Laravel 4
Run php artisan config:publish iblank/laravel-gov-search and set your API key and affiliate id in the file:
/app/config/packages/iblank/laravel-gov-search/config.php
Default Options
Optionally change the default values for search requests using the DEFAULTS array in the config file:
'DEFAULTS' => array(
'highlight' => true,
'limit' => 20, // 1 to 999
'sort' => 'relevance' // or 'date'
)
Usage
/**
* Returns PHP object of search results
* @param $search (string) - what to search for
* @param $options (array) - set an 'offset' index and/or override any of the defaults set in the config file
* @return (object) - PHP object (details below)
*/
$apiResult = GovSearch::search($search, $options);
Sample Format of Returned Object:
{
"total": 356,
"next_offset": 20,
"spelling_correction": null,
"results": [
{
"title": "sample title",
"url": "http://www.anyplace.com",
"snippet": "sample snippet",
"publication_date": "2014-11-24"
}
]
}
Basic Search Pagination Example
// Set Defaults
$search = 'Medal of Honor';
$options = array(
'offset' => 0,
'limit' => 25
);
// Make initial call
$apiResult = GovSearch::search($search, $options);
// Set total results
$totalResults = $apiResult['total'];
// Set total pages
$totalPages = ceil($totalResults / $options['limit']);
// Using this example, with 77 total results, would give you 4 pages
// If you want to go to page 3 of 4...
$page = 3;
$options['offset'] = ($page - 1) * $options['limit'];
$apiResults = GovSearch::search($search, $options);
Credits
Built on code from Alaouy's Youtube Laravel Facade/Wrapper.
Related Packages
Laravel 4/5/6 package that allows to dynamically filter, sort and eager load rel...
Automatic url parameter mapping to sort, filter, include and select data in an e...
Searchable trait for Laravel's Eloquent models - filter your models using reques...