File tree Expand file tree Collapse file tree 2 files changed +7
-4
lines changed Expand file tree Collapse file tree 2 files changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -365,10 +365,10 @@ public static function slug($title, $separator = '-')
365
365
*/
366
366
public static function snake ($ value , $ delimiter = '_ ' )
367
367
{
368
- $ key = $ value. $ delimiter ;
368
+ $ key = $ value ;
369
369
370
- if (isset (static ::$ snakeCache [$ key ])) {
371
- return static ::$ snakeCache [$ key ];
370
+ if (isset (static ::$ snakeCache [$ key ][ $ delimiter ] )) {
371
+ return static ::$ snakeCache [$ key ][ $ delimiter ] ;
372
372
}
373
373
374
374
if (! ctype_lower ($ value )) {
@@ -377,7 +377,7 @@ public static function snake($value, $delimiter = '_')
377
377
$ value = static ::lower (preg_replace ('/(.)(?=[A-Z])/u ' , '$1 ' .$ delimiter , $ value ));
378
378
}
379
379
380
- return static ::$ snakeCache [$ key ] = $ value ;
380
+ return static ::$ snakeCache [$ key ][ $ delimiter ] = $ value ;
381
381
}
382
382
383
383
/**
Original file line number Diff line number Diff line change @@ -147,6 +147,9 @@ public function testSnake()
147
147
$ this ->assertEquals ('laravel php framework ' , Str::snake ('LaravelPhpFramework ' , ' ' ));
148
148
$ this ->assertEquals ('laravel_php_framework ' , Str::snake ('Laravel Php Framework ' ));
149
149
$ this ->assertEquals ('laravel_php_framework ' , Str::snake ('Laravel Php Framework ' ));
150
+ // ensure cache keys don't overlap
151
+ $ this ->assertEquals ('laravel__php__framework ' , Str::snake ('LaravelPhpFramework ' , '__ ' ));
152
+ $ this ->assertEquals ('laravel_php_framework_ ' , Str::snake ('LaravelPhpFramework_ ' , '_ ' ));
150
153
}
151
154
152
155
public function testStudly ()
You can’t perform that action at this time.
0 commit comments