Skip to content

Commit fc13f49

Browse files
authored
Merge pull request #510 from opcodesio/l13-support
Add Laravel 13 support
2 parents 654a6cc + d6e3897 commit fc13f49

24 files changed

Lines changed: 107 additions & 57 deletions

.github/workflows/run-tests.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
fail-fast: true
1414
matrix:
1515
os: [ubuntu-latest, windows-latest]
16-
php: [8.2, 8.1, 8.0]
17-
laravel: [9.*, 10.*, 11.*, 12.*]
16+
php: [8.4, 8.3, 8.2, 8.1, 8.0]
17+
laravel: [9.*, 10.*, 11.*, 12.*, 13.*]
1818
stability: [prefer-lowest, prefer-stable]
1919
exclude:
2020
- php: 8.0
@@ -23,11 +23,21 @@ jobs:
2323
laravel: 11.*
2424
- php: 8.0
2525
laravel: 12.*
26+
- php: 8.0
27+
laravel: 13.*
2628
- php: 8.1
2729
laravel: 11.*
2830
- php: 8.1
2931
laravel: 12.*
32+
- php: 8.1
33+
laravel: 13.*
34+
- php: 8.2
35+
laravel: 9.*
3036
- php: 8.2
37+
laravel: 13.*
38+
- php: 8.3
39+
laravel: 9.*
40+
- php: 8.4
3141
laravel: 9.*
3242
include:
3343
- laravel: 9.*
@@ -46,6 +56,10 @@ jobs:
4656
testbench: 10.*
4757
pest: 3.*
4858
collision: 8.*
59+
- laravel: 13.*
60+
testbench: 11.*
61+
pest: 4.*
62+
collision: 8.*
4963

5064
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
5165

@@ -71,4 +85,4 @@ jobs:
7185
composer update --${{ matrix.stability }} --prefer-dist --no-interaction
7286
7387
- name: Execute tests
74-
run: vendor/bin/pest
88+
run: vendor/bin/pest --no-coverage

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020
],
2121
"require": {
2222
"php": "^8.0",
23-
"illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0",
23+
"illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
2424
"opcodesio/mail-parser": "^0.2.3"
2525
},
2626
"require-dev": {
2727
"guzzlehttp/guzzle": "^7.2",
2828
"itsgoingd/clockwork": "^5.1",
2929
"laravel/pint": "^1.0",
3030
"nunomaduro/collision": "^7.0|^8.0",
31-
"orchestra/testbench": "^7.6|^8.0|^9.5|^10.0",
32-
"pestphp/pest": "^2.0|^3.7",
33-
"pestphp/pest-plugin-laravel": "^2.0|^3.1",
31+
"orchestra/testbench": "^7.6|^8.0|^9.5|^10.0|^11.0",
32+
"pestphp/pest": "^2.0|^3.7|^4.4",
33+
"pestphp/pest-plugin-laravel": "^2.0|^3.1|^4.1",
3434
"spatie/test-time": "^1.3"
3535
},
3636
"suggest": {

config/log-viewer.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
use Opcodes\LogViewer\Enums\SortingMethod;
44
use Opcodes\LogViewer\Enums\SortingOrder;
55
use Opcodes\LogViewer\Enums\Theme;
6+
use Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer;
7+
use Opcodes\LogViewer\Http\Middleware\EnsureFrontendRequestsAreStateful;
68

79
return [
810

@@ -102,7 +104,7 @@
102104

103105
'middleware' => [
104106
'web',
105-
\Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
107+
AuthorizeLogViewer::class,
106108
],
107109

108110
/*
@@ -115,8 +117,8 @@
115117
*/
116118

117119
'api_middleware' => [
118-
\Opcodes\LogViewer\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
119-
\Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
120+
EnsureFrontendRequestsAreStateful::class,
121+
AuthorizeLogViewer::class,
120122
],
121123

122124
'api_stateful_domains' => env('LOG_VIEWER_API_STATEFUL_DOMAINS') ? explode(',', env('LOG_VIEWER_API_STATEFUL_DOMAINS')) : null,

src/Facades/Cache.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
namespace Opcodes\LogViewer\Facades;
44

5+
use Illuminate\Cache\Repository;
56
use Illuminate\Support\Facades\Facade;
67

78
/**
89
* @mixin \Illuminate\Contracts\Cache\Repository
910
*
10-
* @see \Illuminate\Cache\Repository
11+
* @see Repository
1112
*/
1213
class Cache extends Facade
1314
{

src/Facades/LogViewer.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
use Opcodes\LogViewer\LogFileCollection;
1111
use Opcodes\LogViewer\LogFolder;
1212
use Opcodes\LogViewer\LogFolderCollection;
13+
use Opcodes\LogViewer\LogViewerService;
1314
use Opcodes\LogViewer\Readers\LogReaderInterface;
1415

1516
/**
16-
* @see \Opcodes\LogViewer\LogViewerService
17+
* @see LogViewerService
1718
*
1819
* @method static string version()
1920
* @method static string timezone()

src/Http/Middleware/EnsureFrontendRequestsAreStateful.php

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
namespace Opcodes\LogViewer\Http\Middleware;
44

5+
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
6+
use Illuminate\Cookie\Middleware\EncryptCookies;
7+
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Http\Response;
510
use Illuminate\Routing\Pipeline;
11+
use Illuminate\Session\Middleware\StartSession;
612
use Illuminate\Support\Collection;
713
use Illuminate\Support\Str;
814

@@ -16,9 +22,9 @@ class EnsureFrontendRequestsAreStateful
1622
/**
1723
* Handle the incoming requests.
1824
*
19-
* @param \Illuminate\Http\Request $request
25+
* @param Request $request
2026
* @param callable $next
21-
* @return \Illuminate\Http\Response
27+
* @return Response
2228
*/
2329
public function handle($request, $next)
2430
{
@@ -30,10 +36,10 @@ function ($request, $next) {
3036

3137
return $next($request);
3238
},
33-
static::resolveMiddleware('sanctum.middleware.encrypt_cookies', \Illuminate\Cookie\Middleware\EncryptCookies::class),
34-
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
35-
\Illuminate\Session\Middleware\StartSession::class,
36-
static::resolveMiddleware('sanctum.middleware.verify_csrf_token', \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class),
39+
static::resolveMiddleware('sanctum.middleware.encrypt_cookies', EncryptCookies::class),
40+
AddQueuedCookiesToResponse::class,
41+
StartSession::class,
42+
static::resolveMiddleware('sanctum.middleware.verify_csrf_token', VerifyCsrfToken::class),
3743
] : [])->then(function ($request) use ($next) {
3844
return $next($request);
3945
});
@@ -55,7 +61,7 @@ protected function configureSecureCookieSessions()
5561
/**
5662
* Determine if the given request is from the first-party application frontend.
5763
*
58-
* @param \Illuminate\Http\Request $request
64+
* @param Request $request
5965
* @return bool
6066
*/
6167
public static function fromFrontend($request)
@@ -91,7 +97,7 @@ public static function fromFrontend($request)
9197
/**
9298
* Check if the referer/origin domain matches the current request's domain.
9399
*
94-
* @param \Illuminate\Http\Request $request
100+
* @param Request $request
95101
* @param string $refererDomain
96102
* @return bool
97103
*/

src/Http/Resources/LogResource.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
namespace Opcodes\LogViewer\Http\Resources;
44

55
use Illuminate\Http\Resources\Json\JsonResource;
6+
use Opcodes\LogViewer\Logs\Log;
67

78
/**
8-
* @mixin \Opcodes\LogViewer\Logs\Log
9+
* @mixin Log
910
*/
1011
class LogResource extends JsonResource
1112
{

src/LogViewerService.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Opcodes\LogViewer;
44

55
use Composer\InstalledVersions;
6+
use GuzzleHttp\Client;
67
use Illuminate\Auth\Access\AuthorizationException;
78
use Illuminate\Support\Collection;
89
use Illuminate\Support\Facades\File;
@@ -202,7 +203,7 @@ public function getFolder(?string $folderIdentifier): ?LogFolder
202203

203204
public function supportsHostsFeature(): bool
204205
{
205-
return class_exists(\GuzzleHttp\Client::class);
206+
return class_exists(Client::class);
206207
}
207208

208209
public function resolveHostsUsing(callable $callback): void

src/Logs/Log.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Log
2828
/** @var string The regular expression group key, which contains the message */
2929
public static string $regexMessageKey = 'message';
3030

31-
/** @var array|\string[][] The columns displayed on the frontend, and which data they should display */
31+
/** @var array|string[][] The columns displayed on the frontend, and which data they should display */
3232
public static array $columns = [
3333
['label' => 'Datetime', 'data_path' => 'datetime'],
3434
['label' => 'Severity', 'data_path' => 'level'],

tests/Feature/Authorization/CanViewLogViewerTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<?php
22

3+
use Illuminate\Http\Request;
34
use Illuminate\Support\Facades\Gate;
45
use Opcodes\LogViewer\Facades\LogViewer;
6+
use Opcodes\LogViewer\LogViewerServiceProvider;
57

68
use function Pest\Laravel\get;
79
use function Pest\Laravel\getJson;
@@ -20,7 +22,7 @@
2022

2123
test('the "auth" callback is given with a Request object to check against', function () {
2224
LogViewer::auth(function ($request) {
23-
expect($request)->toBeInstanceOf(\Illuminate\Http\Request::class);
25+
expect($request)->toBeInstanceOf(Request::class);
2426

2527
return true;
2628
});
@@ -61,7 +63,7 @@
6163
app()->detectEnvironment(fn () => 'production');
6264
expect(app()->isProduction())->toBeTrue();
6365
// need to reload the routes in order for the new middleware to take place.
64-
(new \Opcodes\LogViewer\LogViewerServiceProvider(app()))->boot();
66+
(new LogViewerServiceProvider(app()))->boot();
6567

6668
get(route('log-viewer.index'))->assertOk();
6769
});

0 commit comments

Comments
 (0)