Laravel 12.x Shift (#2099)

Co-authored-by: Shift <shift@laravelshift.com>
This commit is contained in:
Alex Justesen
2025-03-18 18:42:04 -04:00
committed by GitHub
parent 673bef5060
commit 1bb1ad764b
19 changed files with 532 additions and 623 deletions
+3 -2
View File
@@ -2,7 +2,6 @@ APP_NAME="Speedtest Tracker"
APP_ENV=local APP_ENV=local
APP_KEY= APP_KEY=
APP_DEBUG=false APP_DEBUG=false
APP_TIMEZONE=UTC
APP_URL=http://localhost APP_URL=http://localhost
APP_LOCALE=en APP_LOCALE=en
@@ -12,6 +11,8 @@ APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE=database APP_MAINTENANCE_STORE=database
PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12 BCRYPT_ROUNDS=12
LOG_CHANNEL=stack LOG_CHANNEL=stack
@@ -42,6 +43,6 @@ MAIL_HOST=mailhog
MAIL_PORT=1025 MAIL_PORT=1025
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null MAIL_SCHEME=null
MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="Speedtest Tracker" MAIL_FROM_NAME="Speedtest Tracker"
+1 -1
View File
@@ -41,7 +41,7 @@ MAIL_HOST=mailhog
MAIL_PORT=1025 MAIL_PORT=1025
MAIL_USERNAME=null MAIL_USERNAME=null
MAIL_PASSWORD=null MAIL_PASSWORD=null
MAIL_ENCRYPTION=null MAIL_SCHEME=null
MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="Speedtest Tracker" MAIL_FROM_NAME="Speedtest Tracker"
+2
View File
@@ -4,6 +4,7 @@
/public/hot /public/hot
/public/storage /public/storage
/storage/*.key /storage/*.key
/storage/pail
/vendor /vendor
_ide_helper.php _ide_helper.php
.env .env
@@ -17,5 +18,6 @@ npm-debug.log
yarn-error.log yarn-error.log
/.fleet /.fleet
/.idea /.idea
/.nova
/.phpunit.cache /.phpunit.cache
/.vscode /.vscode
+5 -2
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env php #!/usr/bin/env php
<?php <?php
use Illuminate\Foundation\Application;
use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\ArgvInput;
define('LARAVEL_START', microtime(true)); define('LARAVEL_START', microtime(true));
@@ -9,7 +10,9 @@ define('LARAVEL_START', microtime(true));
require __DIR__.'/vendor/autoload.php'; require __DIR__.'/vendor/autoload.php';
// Bootstrap Laravel and handle the command... // Bootstrap Laravel and handle the command...
$status = (require_once __DIR__.'/bootstrap/app.php') /** @var Application $app */
->handleCommand(new ArgvInput); $app = require_once __DIR__.'/bootstrap/app.php';
$status = $app->handleCommand(new ArgvInput);
exit($status); exit($status);
+21 -17
View File
@@ -18,37 +18,37 @@
"awcodes/filament-versions": "^2.0.1", "awcodes/filament-versions": "^2.0.1",
"chrisullyott/php-filesize": "^4.2.1", "chrisullyott/php-filesize": "^4.2.1",
"dragonmantank/cron-expression": "^3.4.0", "dragonmantank/cron-expression": "^3.4.0",
"filament/filament": "^3.2.142", "filament/filament": "^3.3.4",
"filament/spatie-laravel-settings-plugin": "^3.2.142", "filament/spatie-laravel-settings-plugin": "^3.3.4",
"geerlingguy/ping": "^1.2.1", "geerlingguy/ping": "^1.2.1",
"guzzlehttp/guzzle": "^7.9.2",
"influxdata/influxdb-client-php": "^3.7", "influxdata/influxdb-client-php": "^3.7",
"laravel-notification-channels/telegram": "^5.0", "laravel-notification-channels/telegram": "^6.0",
"laravel/framework": "^11.43.2", "laravel/framework": "^12.3",
"laravel/prompts": "^0.3.5", "laravel/prompts": "^0.3.5",
"laravel/sanctum": "^4.0.8", "laravel/sanctum": "^4.0.8",
"laravel/tinker": "^2.10.1", "laravel/tinker": "^2.10.1",
"livewire/livewire": "3.5.12", "livewire/livewire": "^3.6.2",
"lorisleiva/laravel-actions": "^2.8.6", "lorisleiva/laravel-actions": "^2.9",
"maennchen/zipstream-php": "^2.4", "maennchen/zipstream-php": "^2.4",
"secondnetwork/blade-tabler-icons": "^3.30.1", "secondnetwork/blade-tabler-icons": "^3.31.0",
"spatie/laravel-json-api-paginate": "^1.16.2", "spatie/laravel-json-api-paginate": "^1.16.3",
"spatie/laravel-query-builder": "^6.3.1", "spatie/laravel-query-builder": "^6.3.1",
"spatie/laravel-settings": "^3.4.2", "spatie/laravel-settings": "^3.4.2",
"spatie/laravel-webhook-server": "^3.8.3", "spatie/laravel-webhook-server": "^3.8.3",
"timokoerber/laravel-one-time-operations": "^1.4.4", "timokoerber/laravel-one-time-operations": "^1.4.5",
"zircote/swagger-php": "^5.0.4" "zircote/swagger-php": "^5.0.6"
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.24.1", "fakerphp/faker": "^1.24.1",
"laravel/pint": "^1.21.0", "laravel/pint": "^1.21.2",
"laravel/sail": "^1.41.0", "laravel/sail": "^1.41.0",
"laravel/telescope": "^5.5.0", "laravel/telescope": "^5.6.0",
"mockery/mockery": "^1.6.12", "mockery/mockery": "^1.6.12",
"nunomaduro/collision": "^8.6.1", "nunomaduro/collision": "^8.7.0",
"phpunit/phpunit": "^11.5.9", "phpunit/phpunit": "^11.5.13",
"spatie/laravel-ignition": "^2.9.1", "spatie/laravel-ignition": "^2.9.1",
"tightenco/duster": "^3.1.0" "tightenco/duster": "^3.1.0",
"laravel/pail": "^1.2.2"
}, },
"autoload": { "autoload": {
"files": [ "files": [
@@ -80,6 +80,10 @@
], ],
"post-create-project-cmd": [ "post-create-project-cmd": [
"@php artisan key:generate --ansi" "@php artisan key:generate --ansi"
],
"dev": [
"Composer\\Config::disableProcessTimeout",
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite"
] ]
}, },
"funding": [ "funding": [
@@ -107,6 +111,6 @@
"php-http/discovery": true "php-http/discovery": true
} }
}, },
"minimum-stability": "dev", "minimum-stability": "stable",
"prefer-stable": true "prefer-stable": true
} }
Generated
+475 -407
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -8,12 +8,13 @@ return [
'url' => env('MAIL_URL'), 'url' => env('MAIL_URL'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587), 'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'encryption' => env('MAIL_SCHEME', 'tls'),
'username' => env('MAIL_USERNAME'), 'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'), 'password' => env('MAIL_PASSWORD'),
'timeout' => null, 'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'), 'local_domain' => env('MAIL_EHLO_DOMAIN'),
'verify_peer' => env('MAIL_VERIFY_SSL', true), 'verify_peer' => env('MAIL_VERIFY_SSL', true),
'scheme' => env('MAIL_SCHEME'),
], ],
'mailgun' => [ 'mailgun' => [
-20
View File
@@ -1,20 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'password' => 'The provided password is incorrect.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];
-19
View File
@@ -1,19 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];
-3
View File
@@ -16,8 +16,5 @@ return [
'reset' => 'Your password has been reset!', 'reset' => 'Your password has been reset!',
'sent' => 'We have emailed your password reset link!', 'sent' => 'We have emailed your password reset link!',
'password' => 'The password and confirmation must match and contain at least six characters.', 'password' => 'The password and confirmation must match and contain at least six characters.',
'throttled' => 'Please wait before retrying.',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that email address.",
]; ];
+1 -140
View File
@@ -13,145 +13,6 @@ return [
| |
*/ */
'accepted' => 'The :attribute field must be accepted.',
'accepted_if' => 'The :attribute field must be accepted when :other is :value.',
'active_url' => 'The :attribute field must be a valid URL.',
'after' => 'The :attribute field must be a date after :date.',
'after_or_equal' => 'The :attribute field must be a date after or equal to :date.',
'alpha' => 'The :attribute field must only contain letters.',
'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.',
'alpha_num' => 'The :attribute field must only contain letters and numbers.',
'array' => 'The :attribute field must be an array.',
'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.',
'before' => 'The :attribute field must be a date before :date.',
'before_or_equal' => 'The :attribute field must be a date before or equal to :date.',
'between' => [
'array' => 'The :attribute field must have between :min and :max items.',
'file' => 'The :attribute field must be between :min and :max kilobytes.',
'numeric' => 'The :attribute field must be between :min and :max.',
'string' => 'The :attribute field must be between :min and :max characters.',
],
'boolean' => 'The :attribute field must be true or false.',
'can' => 'The :attribute field contains an unauthorized value.',
'confirmed' => 'The :attribute field confirmation does not match.',
'current_password' => 'The password is incorrect.',
'date' => 'The :attribute field must be a valid date.',
'date_equals' => 'The :attribute field must be a date equal to :date.',
'date_format' => 'The :attribute field must match the format :format.',
'decimal' => 'The :attribute field must have :decimal decimal places.',
'declined' => 'The :attribute field must be declined.',
'declined_if' => 'The :attribute field must be declined when :other is :value.',
'different' => 'The :attribute field and :other must be different.',
'digits' => 'The :attribute field must be :digits digits.',
'digits_between' => 'The :attribute field must be between :min and :max digits.',
'dimensions' => 'The :attribute field has invalid image dimensions.',
'distinct' => 'The :attribute field has a duplicate value.',
'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.',
'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.',
'email' => 'The :attribute field must be a valid email address.',
'ends_with' => 'The :attribute field must end with one of the following: :values.',
'enum' => 'The selected :attribute is invalid.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute field must be a file.',
'filled' => 'The :attribute field must have a value.',
'gt' => [
'array' => 'The :attribute field must have more than :value items.',
'file' => 'The :attribute field must be greater than :value kilobytes.',
'numeric' => 'The :attribute field must be greater than :value.',
'string' => 'The :attribute field must be greater than :value characters.',
],
'gte' => [
'array' => 'The :attribute field must have :value items or more.',
'file' => 'The :attribute field must be greater than or equal to :value kilobytes.',
'numeric' => 'The :attribute field must be greater than or equal to :value.',
'string' => 'The :attribute field must be greater than or equal to :value characters.',
],
'image' => 'The :attribute field must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field must exist in :other.',
'integer' => 'The :attribute field must be an integer.',
'ip' => 'The :attribute field must be a valid IP address.',
'ipv4' => 'The :attribute field must be a valid IPv4 address.',
'ipv6' => 'The :attribute field must be a valid IPv6 address.',
'json' => 'The :attribute field must be a valid JSON string.',
'lowercase' => 'The :attribute field must be lowercase.',
'lt' => [
'array' => 'The :attribute field must have less than :value items.',
'file' => 'The :attribute field must be less than :value kilobytes.',
'numeric' => 'The :attribute field must be less than :value.',
'string' => 'The :attribute field must be less than :value characters.',
],
'lte' => [
'array' => 'The :attribute field must not have more than :value items.',
'file' => 'The :attribute field must be less than or equal to :value kilobytes.',
'numeric' => 'The :attribute field must be less than or equal to :value.',
'string' => 'The :attribute field must be less than or equal to :value characters.',
],
'mac_address' => 'The :attribute field must be a valid MAC address.',
'max' => [
'array' => 'The :attribute field must not have more than :max items.',
'file' => 'The :attribute field must not be greater than :max kilobytes.',
'numeric' => 'The :attribute field must not be greater than :max.',
'string' => 'The :attribute field must not be greater than :max characters.',
],
'max_digits' => 'The :attribute field must not have more than :max digits.',
'mimes' => 'The :attribute field must be a file of type: :values.',
'mimetypes' => 'The :attribute field must be a file of type: :values.',
'min' => [
'array' => 'The :attribute field must have at least :min items.',
'file' => 'The :attribute field must be at least :min kilobytes.',
'numeric' => 'The :attribute field must be at least :min.',
'string' => 'The :attribute field must be at least :min characters.',
],
'min_digits' => 'The :attribute field must have at least :min digits.',
'missing' => 'The :attribute field must be missing.',
'missing_if' => 'The :attribute field must be missing when :other is :value.',
'missing_unless' => 'The :attribute field must be missing unless :other is :value.',
'missing_with' => 'The :attribute field must be missing when :values is present.',
'missing_with_all' => 'The :attribute field must be missing when :values are present.',
'multiple_of' => 'The :attribute field must be a multiple of :value.',
'not_in' => 'The selected :attribute is invalid.',
'not_regex' => 'The :attribute field format is invalid.',
'numeric' => 'The :attribute field must be a number.',
'password' => [
'letters' => 'The :attribute field must contain at least one letter.',
'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.',
'numbers' => 'The :attribute field must contain at least one number.',
'symbols' => 'The :attribute field must contain at least one symbol.',
'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.',
],
'present' => 'The :attribute field must be present.',
'prohibited' => 'The :attribute field is prohibited.',
'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
'prohibits' => 'The :attribute field prohibits :other from being present.',
'regex' => 'The :attribute field format is invalid.',
'required' => 'The :attribute field is required.',
'required_array_keys' => 'The :attribute field must contain entries for: :values.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_if_accepted' => 'The :attribute field is required when :other is accepted.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values are present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute field must match :other.',
'size' => [
'array' => 'The :attribute field must contain :size items.',
'file' => 'The :attribute field must be :size kilobytes.',
'numeric' => 'The :attribute field must be :size.',
'string' => 'The :attribute field must be :size characters.',
],
'starts_with' => 'The :attribute field must start with one of the following: :values.',
'string' => 'The :attribute field must be a string.',
'timezone' => 'The :attribute field must be a valid timezone.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'uppercase' => 'The :attribute field must be uppercase.',
'url' => 'The :attribute field must be a valid URL.',
'ulid' => 'The :attribute field must be a valid ULID.',
'uuid' => 'The :attribute field must be a valid UUID.',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Custom Validation Language Lines | Custom Validation Language Lines
@@ -165,7 +26,7 @@ return [
'custom' => [ 'custom' => [
'attribute-name' => [ 'attribute-name' => [
'rule-name' => 'custom-message',
], ],
], ],
+2 -1
View File
@@ -12,6 +12,7 @@
"laravel-vite-plugin": "^1.0.0", "laravel-vite-plugin": "^1.0.0",
"postcss": "^8.4.29", "postcss": "^8.4.29",
"tailwindcss": "^3.4.0", "tailwindcss": "^3.4.0",
"vite": "^5.4.14" "vite": "^5.4.14",
"concurrently": "^9.0.1"
} }
} }
+4
View File
@@ -9,6 +9,10 @@
RewriteCond %{HTTP:Authorization} . RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Handle X-XSRF-Token Header
RewriteCond %{HTTP:x-xsrf-token} .
RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}]
# Redirect Trailing Slashes If Not A Folder... # Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$ RewriteCond %{REQUEST_URI} (.+)/$
+5 -2
View File
@@ -1,5 +1,6 @@
<?php <?php
use Illuminate\Foundation\Application;
use Illuminate\Http\Request; use Illuminate\Http\Request;
define('LARAVEL_START', microtime(true)); define('LARAVEL_START', microtime(true));
@@ -13,5 +14,7 @@ if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php'))
require __DIR__.'/../vendor/autoload.php'; require __DIR__.'/../vendor/autoload.php';
// Bootstrap Laravel and handle the request... // Bootstrap Laravel and handle the request...
(require_once __DIR__.'/../bootstrap/app.php') /** @var Application $app */
->handleRequest(Request::capture()); $app = require_once __DIR__.'/../bootstrap/app.php';
$app->handleRequest(Request::capture());
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"/app.js": "/app.js?id=a04a99f77a55ffcecde23cd7304b481b", "/app.js": "/app.js?id=99e99836705c54c9dc04352a9907bc7f",
"/app-dark.css": "/app-dark.css?id=1ea407db56c5163ae29311f1f38eb7b9", "/app-dark.css": "/app-dark.css?id=1ea407db56c5163ae29311f1f38eb7b9",
"/app.css": "/app.css?id=de4c978567bfd90b38d186937dee5ccf" "/app.css": "/app.css?id=de4c978567bfd90b38d186937dee5ccf"
} }
+1
View File
@@ -1,3 +1,4 @@
* *
!private/
!public/ !public/
!.gitignore !.gitignore
+2
View File
@@ -0,0 +1,2 @@
*
!.gitignore