Skip to content

Commit 41bb807

Browse files
[8.x] Supports Laravel 13 (#1264)
Co-authored-by: duncanmcclean <duncanmcclean@users.noreply.github.com>
1 parent 1a8760e commit 41bb807

38 files changed

Lines changed: 151 additions & 94 deletions

.github/workflows/tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
matrix:
1818
php: [8.3, 8.4, 8.5]
19-
laravel: [12.*]
19+
laravel: [12.*, 13.*]
2020
stability: [prefer-lowest, prefer-stable]
2121
os: [ubuntu-latest]
2222

composer.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,24 @@
3131
"require": {
3232
"php": "^8.3",
3333
"ext-intl": "*",
34-
"laravel/framework": "^12.0",
34+
"laravel/framework": "^12.0 || ^13.0",
3535
"mollie/mollie-api-php": "^2.30.0",
3636
"moneyphp/money": "^4.0",
3737
"paypal/paypal-checkout-sdk": "^1.0",
3838
"pixelfear/composer-dist-plugin": "^0.1.0",
3939
"spatie/ignition": "^1.13",
40-
"statamic/cms": "^6.0.0",
41-
"stillat/proteus": "^4.0",
40+
"statamic/cms": "^6.5",
41+
"stillat/proteus": "^4.2.1",
4242
"stripe/stripe-php": "^13.0"
4343
},
4444
"require-dev": {
4545
"laravel/pint": "dev-main",
46-
"orchestra/testbench": "^10.8",
46+
"orchestra/testbench": "^10.8 || ^11.0",
4747
"pestphp/pest": "^3.0 || ^4.1.4",
4848
"pestphp/pest-plugin-laravel": "^3.0 || ^4.0",
4949
"spatie/ray": "^1.17",
5050
"spatie/test-time": "^1.3",
51-
"statamic-rad-pack/runway": "^9.0.0-alpha.5"
51+
"statamic-rad-pack/runway": "^9.2"
5252
},
5353
"config": {
5454
"optimize-autoloader": true,
@@ -60,5 +60,7 @@
6060
"pixelfear/composer-dist-plugin": true,
6161
"pestphp/pest-plugin": true
6262
}
63-
}
63+
},
64+
"minimum-stability": "dev",
65+
"prefer-stable": true
6466
}

config/simple-commerce.php

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<?php
22

3+
use DuncanMcClean\SimpleCommerce\Customers\EntryCustomerRepository;
4+
use DuncanMcClean\SimpleCommerce\Gateways\Builtin\DummyGateway;
5+
use DuncanMcClean\SimpleCommerce\Orders\EntryOrderRepository;
6+
use DuncanMcClean\SimpleCommerce\Products\EntryProductRepository;
7+
use DuncanMcClean\SimpleCommerce\Shipping\FreeShipping;
8+
use DuncanMcClean\SimpleCommerce\Tax\Standard\TaxEngine;
9+
310
return [
411

512
/*
@@ -20,7 +27,7 @@
2027

2128
'shipping' => [
2229
'methods' => [
23-
\DuncanMcClean\SimpleCommerce\Shipping\FreeShipping::class => [],
30+
FreeShipping::class => [],
2431
],
2532
],
2633
],
@@ -39,7 +46,7 @@
3946
*/
4047

4148
'gateways' => [
42-
\DuncanMcClean\SimpleCommerce\Gateways\Builtin\DummyGateway::class => [
49+
DummyGateway::class => [
4350
'display' => 'Card',
4451
],
4552
],
@@ -110,7 +117,7 @@
110117
|
111118
*/
112119

113-
'tax_engine' => \DuncanMcClean\SimpleCommerce\Tax\Standard\TaxEngine::class,
120+
'tax_engine' => TaxEngine::class,
114121

115122
'tax_engine_config' => [
116123
// Basic Engine
@@ -161,17 +168,17 @@
161168

162169
'content' => [
163170
'customers' => [
164-
'repository' => \DuncanMcClean\SimpleCommerce\Customers\EntryCustomerRepository::class,
171+
'repository' => EntryCustomerRepository::class,
165172
'collection' => 'customers',
166173
],
167174

168175
'orders' => [
169-
'repository' => \DuncanMcClean\SimpleCommerce\Orders\EntryOrderRepository::class,
176+
'repository' => EntryOrderRepository::class,
170177
'collection' => 'orders',
171178
],
172179

173180
'products' => [
174-
'repository' => \DuncanMcClean\SimpleCommerce\Products\EntryProductRepository::class,
181+
'repository' => EntryProductRepository::class,
175182
'collection' => 'products',
176183
],
177184
],

src/Actions/Delete.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace DuncanMcClean\SimpleCommerce\Actions;
44

5+
use DuncanMcClean\SimpleCommerce\Coupons\Coupon;
56
use Statamic\Actions\Action;
67

78
class Delete extends Action
@@ -20,7 +21,7 @@ public static function title()
2021
public function visibleTo($item)
2122
{
2223
switch (true) {
23-
case $item instanceof \DuncanMcClean\SimpleCommerce\Coupons\Coupon:
24+
case $item instanceof Coupon:
2425
return true;
2526
default:
2627
return false;
@@ -30,7 +31,7 @@ public function visibleTo($item)
3031
public function authorize($user, $item)
3132
{
3233
switch (true) {
33-
case $item instanceof \DuncanMcClean\SimpleCommerce\Coupons\Coupon:
34+
case $item instanceof Coupon:
3435
return $user->can('delete coupons');
3536
default:
3637
return false;

src/Console/Commands/PurgeCartOrdersCommand.php

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

55
use DuncanMcClean\SimpleCommerce\Facades\Order;
6+
use DuncanMcClean\SimpleCommerce\Orders\EntryOrderRepository;
67
use DuncanMcClean\SimpleCommerce\Orders\OrderStatus;
78
use DuncanMcClean\SimpleCommerce\SimpleCommerce;
89
use Illuminate\Console\Command;
@@ -23,7 +24,7 @@ public function handle()
2324

2425
$fourteenDaysFromNow = Carbon::now()->subDays(14);
2526

26-
if ($this->isOrExtendsClass(SimpleCommerce::orderDriver()['repository'], \DuncanMcClean\SimpleCommerce\Orders\EntryOrderRepository::class)) {
27+
if ($this->isOrExtendsClass(SimpleCommerce::orderDriver()['repository'], EntryOrderRepository::class)) {
2728
$fourteenDaysFromNow = $fourteenDaysFromNow->timestamp;
2829
}
2930

src/Console/Commands/SwitchToDatabase.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
namespace DuncanMcClean\SimpleCommerce\Console\Commands;
44

5+
use DuncanMcClean\SimpleCommerce\Customers\CustomerModel;
6+
use DuncanMcClean\SimpleCommerce\Customers\EloquentCustomerRepository;
7+
use DuncanMcClean\SimpleCommerce\Orders\EloquentOrderRepository;
8+
use DuncanMcClean\SimpleCommerce\Orders\OrderModel;
59
use DuncanMcClean\SimpleCommerce\SimpleCommerce;
610
use Illuminate\Console\Command;
711
use Illuminate\Support\Facades\File;
@@ -111,12 +115,12 @@ protected function switchRepositories(): self
111115

112116
ConfigWriter::edit('simple-commerce')
113117
->replace('content.orders', [
114-
'repository' => \DuncanMcClean\SimpleCommerce\Orders\EloquentOrderRepository::class,
115-
'model' => \DuncanMcClean\SimpleCommerce\Orders\OrderModel::class,
118+
'repository' => EloquentOrderRepository::class,
119+
'model' => OrderModel::class,
116120
])
117121
->replace('content.customers', [
118-
'repository' => \DuncanMcClean\SimpleCommerce\Customers\EloquentCustomerRepository::class,
119-
'model' => \DuncanMcClean\SimpleCommerce\Customers\CustomerModel::class,
122+
'repository' => EloquentCustomerRepository::class,
123+
'model' => CustomerModel::class,
120124
])
121125
->save();
122126

src/Console/Commands/stubs/runway_config.php

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

3+
use DuncanMcClean\SimpleCommerce\Customers\CustomerModel;
4+
use DuncanMcClean\SimpleCommerce\Orders\OrderModel;
5+
36
return [
47

58
/*
@@ -12,13 +15,13 @@
1215
*/
1316

1417
'resources' => [
15-
\DuncanMcClean\SimpleCommerce\Customers\CustomerModel::class => [
18+
CustomerModel::class => [
1619
'name' => 'Customers',
1720
'handle' => 'customers',
1821
'hidden' => true,
1922
],
2023

21-
\DuncanMcClean\SimpleCommerce\Orders\OrderModel::class => [
24+
OrderModel::class => [
2225
'name' => 'Orders',
2326
'handle' => 'orders',
2427
'hidden' => true,

src/Currency.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ public static function parse($amount, Site $site): string
4444
try {
4545
$money = new Money(str_replace('.', '', (int) $amount), new MoneyCurrency(self::get($site)['code']));
4646

47-
$numberFormatter = new NumberFormatter($site->locale(), \NumberFormatter::CURRENCY);
47+
$numberFormatter = new NumberFormatter($site->locale(), NumberFormatter::CURRENCY);
4848

4949
$currencyFormattingConfig = Config::get("simple-commerce.sites.{$site->handle()}.currency_formatting");
5050

5151
if (isset($currencyFormattingConfig['decimal_separator'])) {
52-
$numberFormatter->setSymbol(\NumberFormatter::MONETARY_SEPARATOR_SYMBOL, $currencyFormattingConfig['decimal_separator']);
52+
$numberFormatter->setSymbol(NumberFormatter::MONETARY_SEPARATOR_SYMBOL, $currencyFormattingConfig['decimal_separator']);
5353
}
5454

5555
if (isset($currencyFormattingConfig['thousand_separator'])) {
56-
$numberFormatter->setSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, $currencyFormattingConfig['thousand_separator']);
56+
$numberFormatter->setSymbol(NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, $currencyFormattingConfig['thousand_separator']);
5757
}
5858

5959
$moneyFormatter = new IntlMoneyFormatter($numberFormatter, new ISOCurrencies);

src/Customers/EntryCustomerRepository.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use DuncanMcClean\SimpleCommerce\SimpleCommerce;
99
use Illuminate\Support\Arr;
1010
use Illuminate\Support\Str;
11+
use Statamic\Eloquent\Entries\EntryModel;
1112
use Statamic\Facades\Entry;
1213
use Statamic\Facades\Stache;
1314

@@ -141,7 +142,7 @@ public function delete(Customer $customer): void
141142

142143
protected function isUsingEloquentDriverWithIncrementingIds(): bool
143144
{
144-
return config('statamic.eloquent-driver.entries.model') === \Statamic\Eloquent\Entries\EntryModel::class;
145+
return config('statamic.eloquent-driver.entries.model') === EntryModel::class;
145146
}
146147

147148
public static function bindings(): array

src/DebugbarDataCollector.php

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

33
namespace DuncanMcClean\SimpleCommerce;
44

5+
use DebugBar\DataCollector\DataCollector;
6+
use DebugBar\DataCollector\Renderable;
57
use DuncanMcClean\SimpleCommerce\Orders\Cart\Drivers\CartDriver;
68
use Statamic\Facades\Site;
79

8-
class DebugbarDataCollector extends \DebugBar\DataCollector\DataCollector implements \DebugBar\DataCollector\Renderable
10+
class DebugbarDataCollector extends DataCollector implements Renderable
911
{
1012
use CartDriver;
1113

0 commit comments

Comments
 (0)