Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit73f6f8b

Browse files
committed
Add caching functionality
1 parent33e2254 commit73f6f8b

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

‎config/geocoder.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
useGeocoder\Provider\MaxMindBinary;
1919

2020
return [
21+
'cache-duraction' =>999999999,
2122
'providers' => [
2223
Chain::class => [
2324
GoogleMaps::class => [

‎src/ProviderAndDumperAggregator.php‎

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,14 @@ public function dump($dumper)
7373
*/
7474
publicfunctiongeocode($value)
7575
{
76-
$this->results =parent::geocode($value);
76+
$cacheId =str_slug($value);
77+
$this->results =cache()->remember(
78+
"geocoder-{$cacheId}",
79+
config('geocoder.cache-duraction',0),
80+
function ()use ($value) {
81+
returnparent::geocode($value);
82+
}
83+
);
7784

7885
return$this;
7986
}
@@ -93,7 +100,14 @@ public function get()
93100
*/
94101
publicfunctionreverse($latitude,$longitude)
95102
{
96-
$this->results =parent::reverse($latitude,$longitude);
103+
$cacheId =str_slug("{$latitude}-{$longitude}");
104+
$this->results =cache()->remember(
105+
"geocoder-{$cacheId}",
106+
config('geocoder.cache-duraction',0),
107+
function ()use ($latitude,$longitude) {
108+
returnparent::reverse($latitude,$longitude);
109+
}
110+
);
97111

98112
return$this;
99113
}

‎tests/Laravel5_3/Providers/GeocoderServiceTest.php‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,14 @@ public function testGeocoder()
173173
{
174174
$this->assertInstanceOf(ProviderAndDumperAggregator::class,app('geocoder'));
175175
}
176+
177+
publicfunctiontestCacheIsUsed()
178+
{
179+
$result =app('geocoder')->geocode('1600 Pennsylvania Ave., Washington, DC USA')
180+
->get();
181+
$cacheKey ='geocoder-' .str_slug('1600 Pennsylvania Ave., Washington, DC USA');
182+
183+
$this->assertTrue(cache()->has($cacheKey));
184+
$this->assertEquals($result,cache($cacheKey));
185+
}
176186
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp