From 5f57b188702ed9a7aaf8d7688b9966a3a677f08b Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Fri, 10 Jun 2022 16:13:19 +0100 Subject: [PATCH 01/28] wip Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .env.example | 17 +++++++++++++++++ composer.json | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 70d00e3f56..e7ad97dcb8 100644 --- a/.env.example +++ b/.env.example @@ -19,10 +19,13 @@ DB_PREFIX= BROADCAST_DRIVER=log CACHE_DRIVER=file +FILESYSTEM_DISK=local QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 +MEMCACHED_HOST=127.0.0.1 + REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 @@ -35,3 +38,17 @@ MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=noreply@tastyigniter.tld MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/composer.json b/composer.json index 690986a8b3..097ec3019f 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,20 @@ ], "require": { "php": "^8.0", - "tastyigniter/flame": "~2.0" + "tastyigniter/flame": "v4.x-dev", + "tastyigniter/ti-ext-api": "v4.x-dev", + "tastyigniter/ti-ext-automation": "v4.x-dev", + "tastyigniter/ti-ext-broadcast": "v4.x-dev", + "tastyigniter/ti-ext-cart": "v4.x-dev", + "tastyigniter/ti-ext-coupons": "v4.x-dev", + "tastyigniter/ti-ext-frontend": "v4.x-dev", + "tastyigniter/ti-ext-local": "v4.x-dev", + "tastyigniter/ti-ext-pages": "v4.x-dev", + "tastyigniter/ti-ext-payregister": "v4.x-dev", + "tastyigniter/ti-ext-reservation": "v4.x-dev", + "tastyigniter/ti-ext-socialite": "v4.x-dev", + "tastyigniter/ti-ext-user": "v4.x-dev", + "tastyigniter/ti-theme-orange": "v4.x-dev" }, "autoload": { "psr-4": { From eabbe1f2c8e62a6677a59886602cf91e5cbf829f Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 12 Jun 2022 00:02:37 +0100 Subject: [PATCH 02/28] wip --- config/auth.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/config/auth.php b/config/auth.php index 53dfe4b406..d8c6cee7c1 100644 --- a/config/auth.php +++ b/config/auth.php @@ -64,12 +64,6 @@ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], -// 'igniter-admin' => [ -// 'driver' => 'igniter-admin', -// ], -// 'igniter-customers' => [ -// 'driver' => 'igniter-customer', -// ], // 'users' => [ // 'driver' => 'database', From 3a03c6271c259c82a07e58d753721a9b3f42f7cb Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Tue, 22 Nov 2022 22:34:13 +0000 Subject: [PATCH 03/28] Remove demo extension and theme --- extensions/.gitignore | 3 -- extensions/igniter/demo/Components/Block.php | 14 --------- .../demo/Components/block/default.blade.php | 4 --- extensions/igniter/demo/Extension.php | 19 ------------ extensions/igniter/demo/extension.json | 8 ----- .../igniter/demo/language/en/default.php | 6 ---- themes/.gitignore | 3 -- themes/demo/_layouts/default.blade.php | 30 ------------------- themes/demo/_pages/error.blade.php | 11 ------- themes/demo/_pages/home.blade.php | 26 ---------------- themes/demo/_partials/footer.blade.php | 10 ------- themes/demo/_partials/head.blade.php | 5 ---- .../demo/_partials/payregister/cod.blade.php | 0 themes/demo/theme.json | 11 ------- 14 files changed, 150 deletions(-) delete mode 100644 extensions/.gitignore delete mode 100644 extensions/igniter/demo/Components/Block.php delete mode 100644 extensions/igniter/demo/Components/block/default.blade.php delete mode 100644 extensions/igniter/demo/Extension.php delete mode 100644 extensions/igniter/demo/extension.json delete mode 100644 extensions/igniter/demo/language/en/default.php delete mode 100644 themes/.gitignore delete mode 100644 themes/demo/_layouts/default.blade.php delete mode 100644 themes/demo/_pages/error.blade.php delete mode 100644 themes/demo/_pages/home.blade.php delete mode 100644 themes/demo/_partials/footer.blade.php delete mode 100644 themes/demo/_partials/head.blade.php delete mode 100644 themes/demo/_partials/payregister/cod.blade.php delete mode 100644 themes/demo/theme.json diff --git a/extensions/.gitignore b/extensions/.gitignore deleted file mode 100644 index 073674a451..0000000000 --- a/extensions/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!igniter/demo/ -!.gitignore diff --git a/extensions/igniter/demo/Components/Block.php b/extensions/igniter/demo/Components/Block.php deleted file mode 100644 index 39630ca1a8..0000000000 --- a/extensions/igniter/demo/Components/Block.php +++ /dev/null @@ -1,14 +0,0 @@ -page['code'] = $code = $this->property('code'); - $this->page['title'] = $this->property('title', $code); - } -} diff --git a/extensions/igniter/demo/Components/block/default.blade.php b/extensions/igniter/demo/Components/block/default.blade.php deleted file mode 100644 index aa5dd3a2dd..0000000000 --- a/extensions/igniter/demo/Components/block/default.blade.php +++ /dev/null @@ -1,4 +0,0 @@ -
-

{{ $title }}

-

This is the default view for {{ ucwords($code) }} Component

-
\ No newline at end of file diff --git a/extensions/igniter/demo/Extension.php b/extensions/igniter/demo/Extension.php deleted file mode 100644 index 09a1d312fc..0000000000 --- a/extensions/igniter/demo/Extension.php +++ /dev/null @@ -1,19 +0,0 @@ - [ - 'code' => 'block', - 'name' => 'lang:igniter.demo::default.text_component_title', - 'description' => 'lang:igniter.demo::default.text_component_desc', - ], - ]; - } -} diff --git a/extensions/igniter/demo/extension.json b/extensions/igniter/demo/extension.json deleted file mode 100644 index 6614e47708..0000000000 --- a/extensions/igniter/demo/extension.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "code": "igniter.demo", - "name": "Demo Extension", - "description": "Provides block component for demonstration", - "version": "1.0.0", - "icon": "fa-plug", - "author": "SamPoyigi" -} \ No newline at end of file diff --git a/extensions/igniter/demo/language/en/default.php b/extensions/igniter/demo/language/en/default.php deleted file mode 100644 index 9af857d52b..0000000000 --- a/extensions/igniter/demo/language/en/default.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Demo Component', - 'text_component_desc' => 'Component provided for demonstration', -]; diff --git a/themes/.gitignore b/themes/.gitignore deleted file mode 100644 index 59dd06a21a..0000000000 --- a/themes/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!demo/ -!.gitignore \ No newline at end of file diff --git a/themes/demo/_layouts/default.blade.php b/themes/demo/_layouts/default.blade.php deleted file mode 100644 index ecaa68f324..0000000000 --- a/themes/demo/_layouts/default.blade.php +++ /dev/null @@ -1,30 +0,0 @@ ---- -description: Default layout ---- - - - - @themePartial('head') - - -
-
- -
-
- -
- @page -
- - -@scripts - - diff --git a/themes/demo/_pages/error.blade.php b/themes/demo/_pages/error.blade.php deleted file mode 100644 index cc4cccba1c..0000000000 --- a/themes/demo/_pages/error.blade.php +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Error page (500) -layout: default -permalink: /error ---- -
-
-

Error

-

We're sorry, but something went wrong and the page cannot be displayed.

-
-
\ No newline at end of file diff --git a/themes/demo/_pages/home.blade.php b/themes/demo/_pages/home.blade.php deleted file mode 100644 index 1d79c37765..0000000000 --- a/themes/demo/_pages/home.blade.php +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Getting Started -layout: default -permalink: / ---- - -
-
-
-

This is TastyIgniter's - demonstration theme to help you get started if you plan on designing your theme from scratch.

-

- Navigate to your admin dashboard - (Design > Themes) - to choose from a variety of themes pre-built for you to start receiving orders. -

- -

Learn more on themes and extension, see the - Themes documentation.

- -

- TastyIgniter Frontend -

-
-
-
diff --git a/themes/demo/_partials/footer.blade.php b/themes/demo/_partials/footer.blade.php deleted file mode 100644 index fec0115d07..0000000000 --- a/themes/demo/_partials/footer.blade.php +++ /dev/null @@ -1,10 +0,0 @@ -
-

- {!! sprintf( - lang('igniter::main.site_copyright'), - date('Y'), - setting('site_name'), - lang('igniter::system.system_name') - ).lang('igniter::system.system_powered') !!} -

-
diff --git a/themes/demo/_partials/head.blade.php b/themes/demo/_partials/head.blade.php deleted file mode 100644 index 09383543c1..0000000000 --- a/themes/demo/_partials/head.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -{!! get_metas() !!} - -{{ sprintf(lang('igniter::main.site_title'), lang(get_title()), setting('site_name')) }} - -@styles diff --git a/themes/demo/_partials/payregister/cod.blade.php b/themes/demo/_partials/payregister/cod.blade.php deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/themes/demo/theme.json b/themes/demo/theme.json deleted file mode 100644 index e0e7b0c6c5..0000000000 --- a/themes/demo/theme.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "code": "demo", - "parent": null, - "name": "Demo Theme", - "description": "Demonstration theme for TastyIgniter front-end", - "author": "TastyIgniter Dev Team", - "version": "1.0.0", - "tags": { - "1.0.0": "Theme initialization" - } -} \ No newline at end of file From 2241338ac195208f222d78691caa431aadae7b1d Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Wed, 23 Nov 2022 12:28:05 +0000 Subject: [PATCH 04/28] wip --- composer.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/composer.json b/composer.json index 097ec3019f..695dc214ef 100644 --- a/composer.json +++ b/composer.json @@ -39,15 +39,7 @@ "tastyigniter/ti-ext-api": "v4.x-dev", "tastyigniter/ti-ext-automation": "v4.x-dev", "tastyigniter/ti-ext-broadcast": "v4.x-dev", - "tastyigniter/ti-ext-cart": "v4.x-dev", - "tastyigniter/ti-ext-coupons": "v4.x-dev", - "tastyigniter/ti-ext-frontend": "v4.x-dev", - "tastyigniter/ti-ext-local": "v4.x-dev", - "tastyigniter/ti-ext-pages": "v4.x-dev", - "tastyigniter/ti-ext-payregister": "v4.x-dev", - "tastyigniter/ti-ext-reservation": "v4.x-dev", "tastyigniter/ti-ext-socialite": "v4.x-dev", - "tastyigniter/ti-ext-user": "v4.x-dev", "tastyigniter/ti-theme-orange": "v4.x-dev" }, "autoload": { From 527451976ec618ebc819711d3dc9e57fbdce2670 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Wed, 23 Nov 2022 18:51:04 +0000 Subject: [PATCH 05/28] Merge branch tastyigniter/tastyigniter/3.x - Remove locked property from composer.json manifest (tastyigniter/tastyigniter@be92fda8) - Drop asset minification feature to fix JS issue with admin not able to login and unable to edit mail templates. #970 #948 (tastyigniter/tastyigniter@b9df4df1) - Add allergens relation to 3.x branch (tastyigniter/tastyigniter#978) (tastyigniter/tastyigniter@ed16a6d3) - minor fix (tastyigniter/tastyigniter@e8d87178) - Fix location_options issue when creating a location #981 (tastyigniter/tastyigniter@ccbba690) - minor fixes (tastyigniter/tastyigniter@721943ae) - Remove unique validation rule on allergen, category, location, mealtime, menu and table requests (tastyigniter/tastyigniter@20a9e629) - Add permissions to order, reservation delete bulk action #986 (tastyigniter/tastyigniter@16f24e05) - Add padding to modal form fields container (tastyigniter/tastyigniter@bc9ceb12) - Add branch name to split GA (tastyigniter/tastyigniter@f70ccc7b) - New admin.list.extendRecords event (tastyigniter/tastyigniter#989) (tastyigniter/tastyigniter@aeb055b7) - Minor fix (tastyigniter/tastyigniter@f4996352) - Use locale dates formats in order and reservation emails (tastyigniter/tastyigniter@3f5303e6) - Minor refactor to assignables (tastyigniter/tastyigniter@d5fd36cc) - Add location logo mail variables (tastyigniter/tastyigniter@d91683e9) - Move allocate table logic from booking manager to reservation mode (tastyigniter/tastyigniter@a4530bdd) - Minor fix (tastyigniter/tastyigniter@4d9bdeb8) - Add migration to drop all foreign keys due to irritating foreign key errors (tastyigniter/tastyigniter@ec0542bd) - Ensure list column names do not much model relation name (tastyigniter/tastyigniter@5e84a712) - Check foreign key/index exists before dropping (tastyigniter/tastyigniter@bbaa0796) - Use customer email as replyTo when appropriate (tastyigniter/tastyigniter@#1002) (tastyigniter/tastyigniter@4635985d) - Ensure guest_num and duration have minimum values (tastyigniter/tastyigniter#1001) (tastyigniter/tastyigniter@a3f024a0) - use lowest menu option price when menu item price is 0 (tastyigniter/tastyigniter@137734cb) - Add location options as HasMany relation (tastyigniter/tastyigniter@652cb6e2) - Fix location list order type filter (tastyigniter/tastyigniter@68e405b0) - Add comment column to reservations list tastyigniter/ti-ext-reservation#32 (tastyigniter/tastyigniter@3016c2fd) - Sort menu item option dropdown alphabetically (tastyigniter/tastyigniter@f30bbff6) - Fix issue where cart item option quantity type calculated value is not properly displayed (tastyigniter/tastyigniter@f2c500cc) - Update [README.md](http://readme.md/) (tastyigniter/tastyigniter@b3732a3f) - Install core update first instead of ignoring non-core updates (tastyigniter/tastyigniter@2a754e46) - Fix broken link (tastyigniter/tastyigniter@a937a00d) - Minor fix (tastyigniter/tastyigniter@6486a89d) - Fix issue where media finder attachment config modal not opening (tastyigniter/tastyigniter#1010) (tastyigniter/tastyigniter@2c1f30d6) - Minor fix (tastyigniter/tastyigniter@5bf7b4e7) - Cache location options (tastyigniter/tastyigniter@cfe5f965) - Make location options fields unique (tastyigniter/tastyigniter#1011) (tastyigniter/tastyigniter@5ec9a233) - Minor fixes (tastyigniter/tastyigniter@5cbaced6) - Add support for locationable trait on HasManyThrough, HasOneThrough relationships (tastyigniter/tastyigniter@da6bc020) - Allow rendering of multiple list widgets (tastyigniter/tastyigniter@ed2a9101) - Fix dashboard news widget feed url (tastyigniter/tastyigniter@98bc919d) - Reorder reservation form fields (tastyigniter/tastyigniter@895d9949) - Minor UI fix (tastyigniter/tastyigniter@5e7fbc53) - Fix issue where reservation list can not be filtered by multiple statuses (tastyigniter/tastyigniter@de8ec050) - Ensure admin password max length is 32 when installing (tastyigniter/tastyigniter@9ceb0251) - Minor fix (tastyigniter/tastyigniter@359687ee) - Fix dashboard charts not displaying data (tastyigniter/tastyigniter@80a8ba3a) - Minor refactor (tastyigniter/tastyigniter@b780b42c) - Strip html tags from formatted address (tastyigniter/tastyigniter@88f9243d) - Support multiple extension paths (tastyigniter/tastyigniter#1017) (tastyigniter/tastyigniter@cd89efb7) - Allow payments, themes form query to be extended (tastyigniter/tastyigniter@c61f8de1) - Fix issue where staff list is empty (tastyigniter/tastyigniter@3128a19a) - Code field on mail layouts and partials should always be unique (tastyigniter/tastyigniter@b8896856) - Avoid marking order as processed more than once (tastyigniter/tastyigniter@723ed8c5) - Minor UI fix (tastyigniter/tastyigniter@d3da0a09) - Minor fix (tastyigniter/tastyigniter@cf831c80) - Fixed issue where its impossible to unassign a group or staff (tastyigniter/tastyigniter@aa539055) - Fix issue with clockpicker positioning and some minor UI adjustments (tastyigniter/tastyigniter@303444db) - Avoid negative order total when calculating totals (tastyigniter/tastyigniter@f9501d9a) - Fix issue with managing records when recordeditor is in radio mode (tastyigniter/tastyigniter@c8ff4870) --- README.md | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4b27d80c7d..5206c9aef4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

Stable @@ -13,58 +13,77 @@ [TastyIgniter](https://tastyigniter.com/) provides a professional and reliable platform for restaurants wanting to offer online food ordering and table reservation to their customers. -![screenshot](https://tastyigniter.com/assets/ui/images/mockups/Menus-v2.png) +![screenshot](https://tastyigniter.com/images/mockups/Menus-v2.png) ### Documentation + The best place to learn TastyIgniter is by reading the [documentation](https://tastyigniter.com/docs) ### Installation + Please read the [Installation Guide](https://tastyigniter.com/docs/installation) for more information. ### Questions -For questions and support please use the [Community Forum](https://forum.tastyigniter.com) or [Join us on Discord](https://tastyigniter.com/discord). + +For questions and support please use the [Community Forum](https://forum.tastyigniter.com) +or [Join us on Discord](https://tastyigniter.com/discord). ### Issues + Please report bugs using the [GitHub issue tracker](https://github.com/tastyigniter/TastyIgniter/issues) ### Stay in touch + - [Follow us on Twitter](https://twitter.com/tastyigniter/) for announcements and updates. - [Blog](https://tastyigniter.com/blog) for tips and latest developments in the food industry. ## Contributing -We would love your help building TastyIgniter! Please read the [Contributing Guidelines](.github/CONTRIBUTING.md) to learn how you can help. + +We would love your help building TastyIgniter! Please read the [Contributing Guidelines](.github/CONTRIBUTING.md) to +learn how you can help. Thank you to all the people who already contributed to TastyIgniter! ## Supporting TastyIgniter -TastyIgniter is an MIT-licensed community-driven project with its continuous development made possible by the support of these awesome [backers](#contributing). If you'd like to help support the future of the project, please consider: + +TastyIgniter is an MIT-licensed community-driven project with its continuous development made possible by the support of +these awesome [backers](#contributing). If you'd like to help support the future of the project, please consider: + 1. Donating development time to the project. 2. Spreading the word about TastyIgniter. 3. Becoming a sponsor by donating funds (see below). ## Sponsors -Become a sponsor and get your logo on our README on Github with a link to your site. + +Become a sponsor and get your logo on our README on Github with a link to your site. ### via Open Collective + ### via Patreon + [[Become a Patreon sponsor](https://www.patreon.com/sampoyigi)] ## Built With :heart: + - Laravel full-stack PHP framework - Bootstrap 4 front-end framework ## Author + TastyIgniter was created by [Samuel Adepoyigi](https://github.com/sampoyigi). ## Security Vulnerabilities + If you discover a security vulnerability within TastyIgniter, please send an e-mail to support@tastyigniter.com. ## License -Starting with version 3.0.0 TastyIgniter is licensed under the [The MIT License (MIT)](https://tastyigniter.com/licence/). Older versions were GPL-licensed. + +Starting with version 3.0.0 TastyIgniter is licensed under +the [The MIT License (MIT)](https://tastyigniter.com/license/). Older versions were GPL-licensed. From 775f6ac4eaa8ba0df1535f9f149b0593a419c8cc Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sat, 26 Nov 2022 11:55:03 +0000 Subject: [PATCH 06/28] wip --- .gitignore | 1 + composer.json | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8d771a06a7..d9df07e27a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .env.testing .phpunit.result.cache phpunit.dusk.xml +auth.json # Ignore all vendor files included by composer and the lock file /vendor diff --git a/composer.json b/composer.json index 695dc214ef..5372f96f26 100644 --- a/composer.json +++ b/composer.json @@ -42,6 +42,10 @@ "tastyigniter/ti-ext-socialite": "v4.x-dev", "tastyigniter/ti-theme-orange": "v4.x-dev" }, + "require-dev": { + "nunomaduro/larastan": "^2.2", + "tastyigniter/ti-ext-debugbar": "*@dev" + }, "autoload": { "psr-4": { "App\\": "app/", @@ -61,7 +65,7 @@ "@php artisan igniter:package-discover --ansi" ], "post-update-cmd": [ - "@php artisan vendor:publish --tag=igniter-assets --ansi --force" + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" From c3f7f81cf3d433d182310f2201487698198f5f1a Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 27 Nov 2022 12:15:31 +0000 Subject: [PATCH 07/28] Bring back extensions and themes folder --- extensions/.gitignore | 2 ++ themes/.gitignore | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 extensions/.gitignore create mode 100644 themes/.gitignore diff --git a/extensions/.gitignore b/extensions/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/extensions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/themes/.gitignore b/themes/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/themes/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 1898e6485609885c3ef078fdde119a4f35673f76 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 19 Feb 2023 23:36:37 +0000 Subject: [PATCH 08/28] Upgrade to laravel 10 --- app/Http/Kernel.php | 2 +- app/Providers/AuthServiceProvider.php | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index c3be2544bd..416cadd296 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -52,7 +52,7 @@ class Kernel extends HttpKernel * * @var array */ - protected $routeMiddleware = [ + protected $middlewareAliases = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 51b351b0b3..ff713f54a3 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -3,19 +3,9 @@ namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; -use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider { - /** - * The model to policy mappings for the application. - * - * @var array - */ - protected $policies = [ - // 'App\Models\Model' => 'App\Policies\ModelPolicy', - ]; - /** * Register any authentication / authorization services. * @@ -23,8 +13,6 @@ class AuthServiceProvider extends ServiceProvider */ public function boot() { - $this->registerPolicies(); - // } } From 6c3b9d8bbab1b9dbe34cd6392bf24e0281b1bb1f Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Mon, 20 Feb 2023 17:26:40 +0000 Subject: [PATCH 09/28] Fix broken link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5206c9aef4..dc0c7f5afb 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

Stable Total Downloads -GitHub Workflow Status +GitHub Workflow Status Build Status License Crowdin From ac12db3df6f4d59c3cdb496c25d2da699fa4fc1e Mon Sep 17 00:00:00 2001 From: Sam <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 5 Mar 2023 12:46:04 +0000 Subject: [PATCH 10/28] Always include notifications migration file --- ...3_05_123125_create_notifications_table.php | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 database/migrations/2023_03_05_123125_create_notifications_table.php diff --git a/database/migrations/2023_03_05_123125_create_notifications_table.php b/database/migrations/2023_03_05_123125_create_notifications_table.php new file mode 100644 index 0000000000..d73803223d --- /dev/null +++ b/database/migrations/2023_03_05_123125_create_notifications_table.php @@ -0,0 +1,31 @@ +uuid('id')->primary(); + $table->string('type'); + $table->morphs('notifiable'); + $table->text('data'); + $table->timestamp('read_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('notifications'); + } +}; From 13db78a61d04646ab7ea00c43efa6744a8a81e0c Mon Sep 17 00:00:00 2001 From: Sam <6567634+sampoyigi@users.noreply.github.com> Date: Fri, 17 Mar 2023 20:51:47 +0000 Subject: [PATCH 11/28] Set composer minimum-stability to stable --- composer.json | 171 ++++++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 83 deletions(-) diff --git a/composer.json b/composer.json index 5372f96f26..c995cc8f85 100644 --- a/composer.json +++ b/composer.json @@ -1,89 +1,94 @@ { - "name": "tastyigniter/tastyigniter", - "description": "TastyIgniter is a free open source online ordering and restaurant management system", - "type": "project", - "keywords": [ - "tastyigniter", - "igniter", - "restaurant", - "ordering", - "ecommerce", - "opensource" - ], - "authors": [ - { - "name": "Samuel Adepoyigi", - "email": "sam@sampoyigi.com", - "role": "Creator" - } - ], - "license": "MIT", - "homepage": "https://tastyigniter.com", - "support": { - "paid": "https://tastyigniter.com/premium-support", - "issues": "https://github.com/tastyigniter/TastyIgniter/issues", - "forum": "https://forum.tastyigniter.com", - "discord": "https/tastyigniter.com/discord", - "docs": "https://tastyigniter.com/docs", - "source": "https://github.com/tastyigniter/TastyIgniter" - }, - "repositories": [ - { - "type": "composer", - "url": "https://satis.tastyigniter.com" - } - ], - "require": { - "php": "^8.0", - "tastyigniter/flame": "v4.x-dev", - "tastyigniter/ti-ext-api": "v4.x-dev", - "tastyigniter/ti-ext-automation": "v4.x-dev", - "tastyigniter/ti-ext-broadcast": "v4.x-dev", - "tastyigniter/ti-ext-socialite": "v4.x-dev", - "tastyigniter/ti-theme-orange": "v4.x-dev" - }, - "require-dev": { - "nunomaduro/larastan": "^2.2", - "tastyigniter/ti-ext-debugbar": "*@dev" - }, - "autoload": { - "psr-4": { - "App\\": "app/", - "Database\\Factories\\": "database/factories/", - "Database\\Seeders\\": "database/seeders/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "scripts": { - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi", - "@php artisan igniter:package-discover --ansi" + "name": "tastyigniter/tastyigniter", + "description": "TastyIgniter is a free open source online ordering and restaurant management system", + "type": "project", + "keywords": [ + "tastyigniter", + "igniter", + "restaurant", + "ordering", + "ecommerce", + "opensource" ], - "post-update-cmd": [ - "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + "authors": [ + { + "name": "Samuel Adepoyigi", + "email": "sam@sampoyigi.com", + "role": "Creator" + } ], - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + "license": "MIT", + "homepage": "https://tastyigniter.com", + "support": { + "paid": "https://tastyigniter.com/premium-support", + "issues": "https://github.com/tastyigniter/TastyIgniter/issues", + "forum": "https://forum.tastyigniter.com", + "discord": "https/tastyigniter.com/discord", + "docs": "https://tastyigniter.com/docs", + "source": "https://github.com/tastyigniter/TastyIgniter" + }, + "repositories": [ + { + "type": "composer", + "url": "https://satis.tastyigniter.com" + } ], - "post-create-project-cmd": [ - "@php artisan key:generate --ansi" - ] - }, - "extra": { - "laravel": { - "dont-discover": [] + "require": { + "php": "^8.1", + "tastyigniter/core": "dev-master", + "tastyigniter/ti-ext-api": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-automation": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-broadcast": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-socialite": "v4.x-dev as v4.0", + "tastyigniter/ti-theme-orange": "v4.x-dev as v4.0" + }, + "require-dev": { + "nunomaduro/larastan": "^2.2", + "tastyigniter/ti-ext-debugbar": "v4.x-dev as v4.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi", + "@php artisan igniter:package-discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "minimum-stability": "stable", + "prefer-stable": true, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true, + "php-http/discovery": true, + "composer/installers": true + } } - }, - "minimum-stability": "dev", - "prefer-stable": true, - "config": { - "optimize-autoloader": true, - "preferred-install": "dist", - "sort-packages": true - } } From c4269cebfadc8d65c47a06ff75d37049cf3e0967 Mon Sep 17 00:00:00 2001 From: Sam <6567634+sampoyigi@users.noreply.github.com> Date: Sat, 6 May 2023 14:07:18 +0100 Subject: [PATCH 12/28] Change media storage configuration, rename system.log to laravel.log in logging configuration and remove repositories from composer.json Signed-off-by: Sam <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 164 +++++++++++++++++++---------------------- config/filesystems.php | 7 -- config/logging.php | 2 +- 3 files changed, 77 insertions(+), 96 deletions(-) diff --git a/composer.json b/composer.json index c995cc8f85..6e4b146844 100644 --- a/composer.json +++ b/composer.json @@ -1,94 +1,82 @@ { - "name": "tastyigniter/tastyigniter", - "description": "TastyIgniter is a free open source online ordering and restaurant management system", - "type": "project", - "keywords": [ - "tastyigniter", - "igniter", - "restaurant", - "ordering", - "ecommerce", - "opensource" + "name": "tastyigniter/tastyigniter", + "description": "TastyIgniter is a free open source online ordering and restaurant management system", + "type": "project", + "keywords": [ + "tastyigniter", + "igniter", + "restaurant", + "ordering", + "ecommerce", + "opensource" + ], + "authors": [ + { + "name": "Samuel Adepoyigi", + "email": "sam@sampoyigi.com", + "role": "Creator" + } + ], + "license": "MIT", + "homepage": "https://tastyigniter.com", + "support": { + "paid": "https://tastyigniter.com/premium-support", + "issues": "https://github.com/tastyigniter/TastyIgniter/issues", + "forum": "https://forum.tastyigniter.com", + "discord": "https/tastyigniter.com/discord", + "docs": "https://tastyigniter.com/docs", + "source": "https://github.com/tastyigniter/TastyIgniter" + }, + "require": { + "php": "^8.1", + "tastyigniter/core": "dev-master", + "tastyigniter/ti-ext-api": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-automation": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-broadcast": "v4.x-dev as v4.0", + "tastyigniter/ti-ext-socialite": "v4.x-dev as v4.0", + "tastyigniter/ti-theme-orange": "v4.x-dev as v4.0" + }, + "require-dev": { + "tastyigniter/ti-ext-debugbar": "v4.x-dev as v4.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi", + "@php artisan igniter:package-discover --ansi" ], - "authors": [ - { - "name": "Samuel Adepoyigi", - "email": "sam@sampoyigi.com", - "role": "Creator" - } + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], - "license": "MIT", - "homepage": "https://tastyigniter.com", - "support": { - "paid": "https://tastyigniter.com/premium-support", - "issues": "https://github.com/tastyigniter/TastyIgniter/issues", - "forum": "https://forum.tastyigniter.com", - "discord": "https/tastyigniter.com/discord", - "docs": "https://tastyigniter.com/docs", - "source": "https://github.com/tastyigniter/TastyIgniter" - }, - "repositories": [ - { - "type": "composer", - "url": "https://satis.tastyigniter.com" - } + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], - "require": { - "php": "^8.1", - "tastyigniter/core": "dev-master", - "tastyigniter/ti-ext-api": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-automation": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-broadcast": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-socialite": "v4.x-dev as v4.0", - "tastyigniter/ti-theme-orange": "v4.x-dev as v4.0" - }, - "require-dev": { - "nunomaduro/larastan": "^2.2", - "tastyigniter/ti-ext-debugbar": "v4.x-dev as v4.0" - }, - "autoload": { - "psr-4": { - "App\\": "app/", - "Database\\Factories\\": "database/factories/", - "Database\\Seeders\\": "database/seeders/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "scripts": { - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi", - "@php artisan igniter:package-discover --ansi" - ], - "post-update-cmd": [ - "@php artisan vendor:publish --tag=laravel-assets --ansi --force" - ], - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" - ], - "post-create-project-cmd": [ - "@php artisan key:generate --ansi" - ] - }, - "extra": { - "laravel": { - "dont-discover": [] - } - }, - "minimum-stability": "stable", - "prefer-stable": true, - "config": { - "optimize-autoloader": true, - "preferred-install": "dist", - "sort-packages": true, - "allow-plugins": { - "pestphp/pest-plugin": true, - "php-http/discovery": true, - "composer/installers": true - } + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] } + }, + "minimum-stability": "stable", + "prefer-stable": true, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true + } } diff --git a/config/filesystems.php b/config/filesystems.php index dcc950f903..fe9d2f2127 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -36,13 +36,6 @@ 'throw' => true, ], - 'media' => [ - 'driver' => 'local', - 'root' => public_path('media'), - 'url' => env('APP_URL').'/media', - 'throw' => true, - ], - 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), diff --git a/config/logging.php b/config/logging.php index 3ed50f735d..09d0cb9ccf 100644 --- a/config/logging.php +++ b/config/logging.php @@ -115,7 +115,7 @@ ], 'emergency' => [ - 'path' => storage_path('logs/system.log'), + 'path' => storage_path('logs/laravel.log'), ], ], From 207a5b8848dac73a2cb7ef79834fb1de949123ed Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Mon, 12 Jun 2023 20:21:21 +0100 Subject: [PATCH 13/28] Delete unnecessary files and update robots.txt to disallow access to the admin section. Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- public/media/attachments/protected/.gitignore | 2 -- public/media/attachments/public/.gitignore | 2 -- public/media/uploads/.gitignore | 4 ---- public/media/uploads/no_photo.png | Bin 5985 -> 0 bytes public/robots.txt | 2 +- 5 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 public/media/attachments/protected/.gitignore delete mode 100644 public/media/attachments/public/.gitignore delete mode 100644 public/media/uploads/.gitignore delete mode 100644 public/media/uploads/no_photo.png diff --git a/public/media/attachments/protected/.gitignore b/public/media/attachments/protected/.gitignore deleted file mode 100644 index d6b7ef32c8..0000000000 --- a/public/media/attachments/protected/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/public/media/attachments/public/.gitignore b/public/media/attachments/public/.gitignore deleted file mode 100644 index d6b7ef32c8..0000000000 --- a/public/media/attachments/public/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/public/media/uploads/.gitignore b/public/media/uploads/.gitignore deleted file mode 100644 index 82b3596d89..0000000000 --- a/public/media/uploads/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* -!flags -!no_photo.png -!.gitignore \ No newline at end of file diff --git a/public/media/uploads/no_photo.png b/public/media/uploads/no_photo.png deleted file mode 100644 index 7ce5415d34a20aa29cc5170ddfee929891fcb549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5985 zcmbVQdpwkB`$xzjR2oTP)5>N>IV;E5C=^BWn3;-k8jO%*4kKczWy=;u5wb$&z%T|C zIkOpqFeWA}t>iS7Q_DoZd)W8$c@KZQ@8|c&%>8-p>$<+z;l8fxexB>+^A4wFq?DwD zgoI>l&zy1+5)%Fu{16f%V8??Uk_i^cYiH1*U_G<>vw7ujF4&B?X6f?}ZXu#}0eDcj zZhOk|V&w4r$Sh{UPAS>F``aU8y$!lo)Ba(#5%%Osh5ebu%RAoJe=YXcz3QQUkUzCP zUS!z&>-ictSSD$(T5WZCmeb$gpQdW@vf=a?g)__HaI_A7?_d&5Abee!&r!Pf@~%x` zzD3+j7BXssD&=ROxMS`lw}OaX^G>>Ja4@N+aFxJQy2mK|9C^7QtC!Szp?X-8@K`7H z*H#AdxLd;wWUd%$2%m)h=?RAvf@9d-$T(EhjIiqSM{3bA-sYXEf77f0EhfW^u|t4+} z(BSQa?}R96i)(Aywf48sqSQWr?<>tAu9eRDme;$~e33!aYR1FCctF9Iv#V9)PwS*U zM#@(W5B|}20MOYxsny7azxL53Fb1c|0YzC^O^5{OP9OdfRqU&F>aU0Wk^5-csXMDk zyHO9U&$KW|ih?zrK~e#0FR229+>H?6oTZYa6mYw$@Q)#wxU>N792uXO1oSEuAt#%f z0V?Y?Nfzs_U`bB)MalzEfgL2dO_&u7TS@=}%$*Szz>q2+15p7C8%d5%5Wvi=6$h~Y zTJlt|gg1iN^-2j4U>Jja0y!~&B7qSWNLmTV2~a#ZiN`R3I(U`He`6uHZ{I}w7j{vg z{a+BR1q%OHmQitFfhbid6{~l}LAj3~+7p}pSY2IRUS4*2SD2`s-{Yy=_~~94 zM$9rEino@1z;G?6HvO&)&mO??Mi+w`miX((++IE{NTG%&7G_zfq=oBmC~FvpMO4lA zB)^=ooEtb_C899I;&QoohLhfly1KbA{Ffrll`DI^)l&F`( zK5^%(J1@Z*ypJD|Red_5h=s8a$DZAJ@aE04wZp;E@Gj#_=sDjlZrxj>IredZb76ye zYMTgMi2VBX*!<^6$_lOjlh>VA+y0eo9Atw@vbcpT?mrTQX~YMvFq$b=Rh2)+o+W>p zN}hS<>>~`xcTfl9O`pPWFx|lA0;rp^O1O)TXV+ec$S=N)eu$ssy_t`=($F*YjXm9h zXvFVC^-m9!1Yn_J41+t*^w6uEeKe(A^&EMMT0FXhMBVu7 zU0O~~j;GJ*l+^^qOW?2bUzM|#M9rx*nd{eU#n;I`gX&PR3u)p7V&8l!GopQc!9+`K$ zWHMy+>({F-C#yx-O>aby+%G*g%fow9lO)pJcnhzr%IYe5wvU9;KMaxT?t7c}*g3jx z7p4i3-(yQvgYS1=2*jb!Jqh|V121LZ=g&2vjx0`cm6z*j&g(@pT}p8WT@1)e^ej(D z+miN%8s6{kuE?Om#o@e1$s(-E`*!SKy(;`p-_1!sAO&}9{Rw}R>@QpPEPDjWD#KPe z_){tjYnoMs5sjK}5dP0K;|3Dx_j2d#B*_B$!AbiNTrmrXsU@Y{ZO%{2EE21BV@@2mM$xU--KI zhB;^?GGqGKv12peldA3L3;1HtJg^30h#p7QqLICEn6a{1eN9b`h}^xLOV>g}LxY3w zy~j7rRq4_|IYilSQ^3NoL|#!!`{5s8CaQhZJ-Bqa=Ocj$E*T6cUJMnF`~^L@udcp6 zT;4?b?dj;aFV6d4Y36K^;?d8CKr_fX<`!YDhG?aD#u$)4q?e2@uSjvEXhPDo1w&>T ziQdh*;omhx`H(xg?6tPOaqF0-5fu=H;4X9mPGb@WRY5%K(%l!$BIm3pOJP{xz@!h6 z4XIYo6S@{&YhE2}I=4S`a1${^m)TC0T@hV0V!Dy9jnS@cA!*Q;-gW;FV@H4MB*Qnl zmZhq4iJ(b@#&sgUq)5HqvPIk8ZDdC>>Q4W|Ng~WJd8zP5`Cfw@mWqmsP2q)4CTllz zAKre_<}t2deJw=2A3vqk@*B7t8bv5wEMpTBXA{Rd-+W#z=x-kPotcwPDl)fPK2;L< z!KtpLQH~|fW(jv&Ko=vJr@f%9cc<<~njZ=V0eoVIMH`XEK62Y3zwDdqv!FO>ii>UEyBXI@@%MQ&V|sCgKI?0Tn8C zRzt2V!vn;t(rS$&2qz~R<;$N6ZgJ7kDc-~*@-KA{KSXbLdB=TrUxx^-7_2L;3T(cN zEuG!75qXq|-p;YV?GG&t7gR&7x8xYkm!4(m59e#$m{?~ovXn!_eB$taw)?_?11+w-~SEH<0nbj!FHS^Ilu)RM9wOLYA% z29in|&}&6gol&oGZ6nrJHFL|+CUP)pX8o^IQ$D!o+Z0L-QTUm(w6tAhx~e|>rtWr@ zUG>zRK-E0M&jk=K$<)+z&nV|G&{+DuwxO<$@MfR|H?$*pDJDsMv;a;Bs4juH&L8u| zQSsIb;>?J(CA7DD2O=jZvz?N`mmC(V%d_1nYK}pN*?)`80nVM7Zp0uI@?L~XCM`#s zDeiEx^0c>n^478UXv~29?eMFiD$&~o$x+8o9A7xq6TrX}4WXIAi$2fatR+NzK8K(! zeJurNbWx5Xy1$g%H2Z87k(=lDHbo~ICh`Ljox`%RRs*SCs)(A|$HLK3FO0Z~y|yb} zX0KdX(UN(d*T(;h@H;3dhTO^%T3Pnr232^DFz>+)JfR|*5fRxIX5NAV{>F!Qnp#+N zi1_P1tS!!K04FBPPBXr|5$=(fzF$ygvrA09))_h8SydK`;t5yg_jFyu{_NK-Fm4A0 zb%@uY;PmuPT!6W_V!fxWHQj^FV3_Md!5C;x<{~)6r4Lb zK24&qgGAS3o+hLE-LzH-=OqNDXl(O0&+kwo-+dW!T$*lr{lnU)wfWj|F+r-9*(=Vr z803>$A7++7lBBlWG!sFT#Trw%ccc>jXz@|M{F1O5avvV_Br}eo=x=(o1}?R!Oq)g! zCy7Dj92485@EbRd@(JeM+YlnCFiB4r)Df3oZ0l6&KI}RfZw;I!bkH2gNCaK6MJ*l~ zN^{`9!YE)?bHW!KO}Ea}m~Bd#t6I>9^N?>Zy>|!kznpa*X+wF)OKqF@WAp^Lp8X&S zxz^0$q!6M}OoA@a>9{8RQgp(@1?-h_Oc!%Fs-6i&S;NfG7j__*hA6dvXdC7h7i zUOpiXB#Ol0P0^@8!;>2rWj#3Wr%KP*OM=3~(!~UGathIEw7I_)%5tZZdOyuf%ZPu`^9H7mHPbM&&k>IO4F@rp8HE(U0vIil9{1` zl#r%LU4q&FU}|nYv!dx37!;IlDL?9{y}pKq+-1bKeVeoi&3Pv)IMO6myDqg^UdcGu z;j*tRuQ&4zVq|h{4TBll7M-0rb(AEqJ=6BLOZ>Z#IBR6&3dOqoF10}P_px=oP#&$4B#-# z;mREbTFVttmyI@ek$)6vx# zRlC(ruDY0TWUnmAa>D#ZeFF*Smh~kJ;@H z3m~48udlCPj;e~KOC2c}gb3d9^d9IVAL7!AGG7EWjMcoFZ9gYMU13$qsj(*q3g>^R zIi zAf7i28jW_p-wefnCY&5On}&tApFJ$U?3kaQA8<5gVy}0-eSUp2u>Fidqg2n+K2Bgw z&f_R%_G{li&GA)DhYIxad(^X#wl;k?=GsU~_nlMQJm^DT*OZs1&(?dnJ`J5|Xb|+9 zBPJ;RqQ!DOiHcIzDPebu{;>Wu%Tv`nC2un1NCS>Ov~+!`{zl;#`9bB2kB-~zaYWw2 z>Y~q=gC`H-Kp=#nYRt39?t`~`@fwg${mTy6`Ek`lJVg#AQEDm((829qkl7ZR6RApd zI!pww5My!Q>c2f-FxpJakiJf>>3#K+A+ne@U3;@3!3$_P+=sq-CUVrvi{=&<7C0ym z6O~;QcON?P#Y=3fP6zXh2J86i8{LY84NR=>U_~DG=9WD-Fv|NAIic`VWC{Aj%Q8aO z=B+MLRjF_zJly-NsO9+#h>sf*#0&fCJ%#l*IYg^&Bv9_wkA<2%!!PIuMH+=X{KOSP zrQxQXDX%+k7Tp3@#B05h1!4PrX&vL?%AL4P|6s+L+yZ+y^`roa2NstC+Z54{HPS=M zX=hmrZ!>NSL5wEjaa?{0Tho+RRt{eN4PCo$XDPRFJm3g?SzbLWqk=~*csKSgw8n*9Tvnk} zH}xAvU7x8C3<63zfx?s7efW~h;rfg6ESz4!;?mNeD`sEAf8c(x-L323G`oWT)9^8` z;V-untV*ic-2f+hA@X5tX;cZir1m6Lw(L86kDd6>+RF!!`a>S5^jD|GW{oU&?zr_M zzoGey9lg_cUsoUbe1&b27|I~6Q^w#A(L2?q80A?#Otb%;=Z~%_osR0NOgj{5zYSug zBG}53gKrR2=tRj5+`NSDT|428_)|%+*+i=<%>wiekY_C@ zU!)BEgPaKTE(MYAdJvP@kI1cEB{)Qhp=3I7^q)s<_E0 z^8GmdE_hB)o*#1|Dz$%wM14efDf?3iAl7|P3qtUqG3AHVO8&5G{jpT^i zeM>sa#}A+y)iioLQzW?S8SnPp4cPvoAx$3?))6PN$aP|Qt7SW=KVLA-pn;i!cB+s9 zCisnxG))5It{{v6^Oi0!$ABJ5fTBx)9)LR6jhc)r3C1-4w59l;Tblp5W%_Sh6X)8wlAt3|1^R*FCIs-IdH;@o-%3Dl z2}%n>v&p-wt69Jc`~{AJxeTorI4S`7+r~|TC|#R84cy*@wfYB>fefNb?E%u0jxjJ9 z08{V_QWO}U6>-L<_kW@cB}eVsr~tV_@GC{ zWBU)`lw~AN{VBaS<<}+L^wGW)9ZKZS{y@|HQHriVLuW}U!oNs@dS)LxMreB5-$cM9b3I7K~R3k Date: Tue, 5 Dec 2023 17:41:07 +0000 Subject: [PATCH 14/28] Update composer.json to change Discord URL and update minimum-stability and allow-plugins configuration. Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 10 +++++++--- server.php | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 server.php diff --git a/composer.json b/composer.json index 6e4b146844..1d8e4cd227 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "paid": "https://tastyigniter.com/premium-support", "issues": "https://github.com/tastyigniter/TastyIgniter/issues", "forum": "https://forum.tastyigniter.com", - "discord": "https/tastyigniter.com/discord", + "discord": "https/tastyigniter.com/chat", "docs": "https://tastyigniter.com/docs", "source": "https://github.com/tastyigniter/TastyIgniter" }, @@ -72,11 +72,15 @@ "dont-discover": [] } }, - "minimum-stability": "stable", + "minimum-stability": "dev", "prefer-stable": true, "config": { "optimize-autoloader": true, "preferred-install": "dist", - "sort-packages": true + "sort-packages": true, + "allow-plugins": { + "composer/installers": true, + "php-http/discovery": true + } } } diff --git a/server.php b/server.php new file mode 100644 index 0000000000..627537da07 --- /dev/null +++ b/server.php @@ -0,0 +1,19 @@ + Date: Tue, 2 Jan 2024 19:51:12 +0000 Subject: [PATCH 15/28] Remove igniter:package-discover command from post-autoload-dump scripts to avoid running twice Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 1d8e4cd227..7a36b15d2e 100644 --- a/composer.json +++ b/composer.json @@ -54,8 +54,7 @@ "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi", - "@php artisan igniter:package-discover --ansi" + "@php artisan package:discover --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" From 2950c6788c188df0f1450f5c6b52d9c605dc2e06 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Thu, 18 Jan 2024 00:50:18 +0000 Subject: [PATCH 16/28] Avoid static method when throwing exception for better trace log Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7a36b15d2e..bc1a2f0e84 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "source": "https://github.com/tastyigniter/TastyIgniter" }, "require": { - "php": "^8.1", + "php": "^8.2", "tastyigniter/core": "dev-master", "tastyigniter/ti-ext-api": "v4.x-dev as v4.0", "tastyigniter/ti-ext-automation": "v4.x-dev as v4.0", From d6c0cee2ce8b27d8d11f422f75fdfbc252f07e80 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Fri, 12 Apr 2024 10:46:04 +0100 Subject: [PATCH 17/28] Add followsymlinks options and rewritebase path Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- public/.htaccess | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/public/.htaccess b/public/.htaccess index 3aec5e27e5..e411442edd 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,10 +1,18 @@ Options -MultiViews -Indexes + # Options +FollowSymlinks + ## Turn on URL rewriting + ## RewriteEngine On + ## !IMPORTANT! You may need to uncomment the following line for some hosting environments, + ## If your installation resides in a subdirectory, enter the name here also + ## + # RewriteBase / + # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] From ccffc1430e8b611b52bfe66d3172b0240a486b9f Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:26:06 +0100 Subject: [PATCH 18/28] Use wildcard version for TI packages Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index bc1a2f0e84..599d965d46 100644 --- a/composer.json +++ b/composer.json @@ -30,14 +30,14 @@ "require": { "php": "^8.2", "tastyigniter/core": "dev-master", - "tastyigniter/ti-ext-api": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-automation": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-broadcast": "v4.x-dev as v4.0", - "tastyigniter/ti-ext-socialite": "v4.x-dev as v4.0", - "tastyigniter/ti-theme-orange": "v4.x-dev as v4.0" + "tastyigniter/ti-ext-api": "*", + "tastyigniter/ti-ext-automation": "*", + "tastyigniter/ti-ext-broadcast": "*", + "tastyigniter/ti-ext-socialite": "*", + "tastyigniter/ti-theme-orange": "*" }, "require-dev": { - "tastyigniter/ti-ext-debugbar": "v4.x-dev as v4.0" + "tastyigniter/ti-ext-debugbar": "*" }, "autoload": { "psr-4": { From ba802d0091191fbaa9a610e320980f273e8840ed Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Thu, 9 May 2024 13:00:56 +0100 Subject: [PATCH 19/28] Add version constraints to ti composer packages Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 599d965d46..8942d83947 100644 --- a/composer.json +++ b/composer.json @@ -33,11 +33,11 @@ "tastyigniter/ti-ext-api": "*", "tastyigniter/ti-ext-automation": "*", "tastyigniter/ti-ext-broadcast": "*", - "tastyigniter/ti-ext-socialite": "*", - "tastyigniter/ti-theme-orange": "*" + "tastyigniter/ti-ext-socialite": "v4.x-dev as 4.0", + "tastyigniter/ti-theme-orange": "v4.x-dev as 4.0" }, "require-dev": { - "tastyigniter/ti-ext-debugbar": "*" + "tastyigniter/ti-ext-debugbar": "v4.x-dev as 4.0" }, "autoload": { "psr-4": { From 742422c0ec508c84c6802d4014d6bce208fb3dea Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sat, 8 Jun 2024 14:03:27 +0100 Subject: [PATCH 20/28] Restructure to match laravel v11 app structure Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .env.example | 43 +++-- app/Console/Kernel.php | 32 ---- app/Exceptions/Handler.php | 50 ------ app/Http/Controllers/Controller.php | 8 +- app/Http/Kernel.php | 67 ------- app/Http/Middleware/Authenticate.php | 21 --- app/Http/Middleware/EncryptCookies.php | 17 -- .../PreventRequestsDuringMaintenance.php | 17 -- .../Middleware/RedirectIfAuthenticated.php | 32 ---- app/Http/Middleware/TrimStrings.php | 19 -- app/Http/Middleware/TrustHosts.php | 20 --- app/Http/Middleware/TrustProxies.php | 28 --- app/Http/Middleware/VerifyCsrfToken.php | 17 -- app/Models/User.php | 5 +- app/Providers/AuthServiceProvider.php | 18 -- app/Providers/BroadcastServiceProvider.php | 21 --- app/Providers/EventServiceProvider.php | 42 ----- app/Providers/RouteServiceProvider.php | 52 ------ bootstrap/app.php | 69 ++----- bootstrap/providers.php | 5 + composer.json | 12 +- config/app.php | 139 +++----------- config/auth.php | 40 +++-- config/broadcasting.php | 33 +++- config/cache.php | 33 ++-- config/cors.php | 34 ---- config/database.php | 97 +++++----- config/filesystems.php | 14 +- config/hashing.php | 25 ++- config/logging.php | 36 ++-- config/mail.php | 55 ++++-- config/queue.php | 55 ++++-- config/sanctum.php | 67 ------- config/services.php | 18 +- config/session.php | 80 +++++---- config/view.php | 36 ---- lang/en/auth.php | 20 --- lang/en/pagination.php | 19 -- lang/en/passwords.php | 22 --- lang/en/validation.php | 169 ------------------ public/index.php | 48 +---- routes/api.php | 16 -- routes/channels.php | 16 -- 43 files changed, 389 insertions(+), 1278 deletions(-) delete mode 100644 app/Console/Kernel.php delete mode 100644 app/Exceptions/Handler.php delete mode 100644 app/Http/Kernel.php delete mode 100644 app/Http/Middleware/Authenticate.php delete mode 100644 app/Http/Middleware/EncryptCookies.php delete mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php delete mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php delete mode 100644 app/Http/Middleware/TrimStrings.php delete mode 100644 app/Http/Middleware/TrustHosts.php delete mode 100644 app/Http/Middleware/TrustProxies.php delete mode 100644 app/Http/Middleware/VerifyCsrfToken.php delete mode 100644 app/Providers/AuthServiceProvider.php delete mode 100644 app/Providers/BroadcastServiceProvider.php delete mode 100644 app/Providers/EventServiceProvider.php delete mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 bootstrap/providers.php delete mode 100644 config/cors.php delete mode 100644 config/sanctum.php delete mode 100644 config/view.php delete mode 100644 lang/en/auth.php delete mode 100644 lang/en/pagination.php delete mode 100644 lang/en/passwords.php delete mode 100644 lang/en/validation.php delete mode 100644 routes/api.php delete mode 100644 routes/channels.php diff --git a/.env.example b/.env.example index e7ad97dcb8..56ce8bb07d 100644 --- a/.env.example +++ b/.env.example @@ -1,31 +1,50 @@ -# APP CONFIG (DO NOT REMOVE!) -APP_NAME= +APP_NAME=TastyIgniter APP_ENV=production APP_KEY= APP_DEBUG=false -APP_URL= +APP_TIMEZONE=UTC +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +APP_MAINTENANCE_STORE=database IGNITER_CARTE_KEY= IGNITER_LOCATION_MODE=multiple -# DATABASE CONFIG (DO NOT REMOVE!) +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + DB_CONNECTION=mysql DB_HOST= DB_PORT= DB_DATABASE= DB_USERNAME= DB_PASSWORD= -DB_PREFIX= -BROADCAST_DRIVER=log -CACHE_DRIVER=file -FILESYSTEM_DISK=local -QUEUE_CONNECTION=sync -SESSION_DRIVER=file +SESSION_DRIVER=database SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 +REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 @@ -36,7 +55,7 @@ MAIL_PORT=null MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS=noreply@tastyigniter.tld +MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= @@ -52,3 +71,5 @@ PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +VITE_APP_NAME="${APP_NAME}" diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php deleted file mode 100644 index d8bc1d29f0..0000000000 --- a/app/Console/Kernel.php +++ /dev/null @@ -1,32 +0,0 @@ -command('inspire')->hourly(); - } - - /** - * Register the commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); - - require base_path('routes/console.php'); - } -} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php deleted file mode 100644 index 82a37e4008..0000000000 --- a/app/Exceptions/Handler.php +++ /dev/null @@ -1,50 +0,0 @@ -, \Psr\Log\LogLevel::*> - */ - protected $levels = [ - // - ]; - - /** - * A list of the exception types that are not reported. - * - * @var array> - */ - protected $dontReport = [ - // - ]; - - /** - * A list of the inputs that are never flashed to the session on validation exceptions. - * - * @var array - */ - protected $dontFlash = [ - 'current_password', - 'password', - 'password_confirmation', - ]; - - /** - * Register the exception handling callbacks for the application. - * - * @return void - */ - public function register() - { - $this->reportable(function (Throwable $e) { - // - }); - } -} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index a0a2a8a34a..3aa2580a94 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,12 +2,6 @@ namespace App\Http\Controllers; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -use Illuminate\Foundation\Bus\DispatchesJobs; -use Illuminate\Foundation\Validation\ValidatesRequests; -use Illuminate\Routing\Controller as BaseController; - -class Controller extends BaseController +abstract class Controller { - use AuthorizesRequests, DispatchesJobs, ValidatesRequests; } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php deleted file mode 100644 index 416cadd296..0000000000 --- a/app/Http/Kernel.php +++ /dev/null @@ -1,67 +0,0 @@ - - */ - protected $middleware = [ - // \App\Http\Middleware\TrustHosts::class, - \App\Http\Middleware\TrustProxies::class, - \Illuminate\Http\Middleware\HandleCors::class, - \App\Http\Middleware\PreventRequestsDuringMaintenance::class, - \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, - \App\Http\Middleware\TrimStrings::class, - \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, - ]; - - /** - * The application's route middleware groups. - * - * @var array> - */ - protected $middlewareGroups = [ - 'web' => [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, - 'throttle:api', - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - ]; - - /** - * The application's route middleware. - * - * These middleware may be assigned to groups or used individually. - * - * @var array - */ - protected $middlewareAliases = [ - 'auth' => \App\Http\Middleware\Authenticate::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, - 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, - 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, - 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - ]; -} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php deleted file mode 100644 index 704089a7fe..0000000000 --- a/app/Http/Middleware/Authenticate.php +++ /dev/null @@ -1,21 +0,0 @@ -expectsJson()) { - return route('login'); - } - } -} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php deleted file mode 100644 index 867695bdcf..0000000000 --- a/app/Http/Middleware/EncryptCookies.php +++ /dev/null @@ -1,17 +0,0 @@ - - */ - protected $except = [ - // - ]; -} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php deleted file mode 100644 index 74cbd9a9ea..0000000000 --- a/app/Http/Middleware/PreventRequestsDuringMaintenance.php +++ /dev/null @@ -1,17 +0,0 @@ - - */ - protected $except = [ - // - ]; -} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php deleted file mode 100644 index a2813a0648..0000000000 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ /dev/null @@ -1,32 +0,0 @@ -check()) { - return redirect(RouteServiceProvider::HOME); - } - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php deleted file mode 100644 index 88cadcaaf2..0000000000 --- a/app/Http/Middleware/TrimStrings.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ - protected $except = [ - 'current_password', - 'password', - 'password_confirmation', - ]; -} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php deleted file mode 100644 index 7186414c65..0000000000 --- a/app/Http/Middleware/TrustHosts.php +++ /dev/null @@ -1,20 +0,0 @@ - - */ - public function hosts() - { - return [ - $this->allSubdomainsOfApplicationUrl(), - ]; - } -} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php deleted file mode 100644 index 3391630ecc..0000000000 --- a/app/Http/Middleware/TrustProxies.php +++ /dev/null @@ -1,28 +0,0 @@ -|string|null - */ - protected $proxies; - - /** - * The headers that should be used to detect proxies. - * - * @var int - */ - protected $headers = - Request::HEADER_X_FORWARDED_FOR | - Request::HEADER_X_FORWARDED_HOST | - Request::HEADER_X_FORWARDED_PORT | - Request::HEADER_X_FORWARDED_PROTO | - Request::HEADER_X_FORWARDED_AWS_ELB; -} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index 9e86521722..0000000000 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,17 +0,0 @@ - - */ - protected $except = [ - // - ]; -} diff --git a/app/Models/User.php b/app/Models/User.php index 89963686eb..48cd97bdad 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,15 +2,14 @@ namespace App\Models; -use Illuminate\Contracts\Auth\MustVerifyEmail; +//use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; -use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { - use HasApiTokens, HasFactory, Notifiable; + use HasFactory, Notifiable; /** * The attributes that are mass assignable. diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index ff713f54a3..0000000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,18 +0,0 @@ -> - */ - protected $listen = [ - Registered::class => [ - SendEmailVerificationNotification::class, - ], - ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - // - } - - /** - * Determine if events and listeners should be automatically discovered. - * - * @return bool - */ - public function shouldDiscoverEvents() - { - return false; - } -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php deleted file mode 100644 index ea87f2e57d..0000000000 --- a/app/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,52 +0,0 @@ -configureRateLimiting(); - - $this->routes(function () { - Route::middleware('api') - ->prefix('api') - ->group(base_path('routes/api.php')); - - Route::middleware('web') - ->group(base_path('routes/web.php')); - }); - } - - /** - * Configure the rate limiters for the application. - * - * @return void - */ - protected function configureRateLimiting() - { - RateLimiter::for('api', function (Request $request) { - return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); - }); - } -} diff --git a/bootstrap/app.php b/bootstrap/app.php index 037e17df03..5f447460cb 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -1,55 +1,18 @@ singleton( - Illuminate\Contracts\Http\Kernel::class, - App\Http\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Console\Kernel::class, - App\Console\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Debug\ExceptionHandler::class, - App\Exceptions\Handler::class -); - -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ - -return $app; +use Illuminate\Foundation\Application; +use Illuminate\Foundation\Configuration\Exceptions; +use Illuminate\Foundation\Configuration\Middleware; + +return Application::configure(basePath: dirname(__DIR__)) + ->withRouting( + web: __DIR__.'/../routes/web.php', + commands: __DIR__.'/../routes/console.php', + health: '/up', + ) + ->withMiddleware(function(Middleware $middleware) { + // + }) + ->withExceptions(function(Exceptions $exceptions) { + // + })->create(); diff --git a/bootstrap/providers.php b/bootstrap/providers.php new file mode 100644 index 0000000000..38b258d185 --- /dev/null +++ b/bootstrap/providers.php @@ -0,0 +1,5 @@ + env('APP_NAME', 'TastyIgniter'), + 'name' => env('APP_NAME', 'Laravel'), /* |-------------------------------------------------------------------------- @@ -41,7 +39,7 @@ | */ - 'debug' => (bool)env('APP_DEBUG', false), + 'debug' => (bool) env('APP_DEBUG', false), /* |-------------------------------------------------------------------------- @@ -50,26 +48,24 @@ | | This URL is used by the console to properly generate URLs when using | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. + | the application so that it's available within Artisan commands. | */ 'url' => env('APP_URL', 'http://localhost'), - 'asset_url' => env('ASSET_URL'), - /* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- | | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. + | will be used by the PHP date and date-time functions. The timezone + | is set to "UTC" by default as it is suitable for most use cases. | */ - 'timezone' => 'UTC', + 'timezone' => env('APP_TIMEZONE', 'UTC'), /* |-------------------------------------------------------------------------- @@ -77,53 +73,37 @@ |-------------------------------------------------------------------------- | | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. + | by Laravel's translation / localization methods. This option can be + | set to any locale for which you plan to have translation strings. | */ - 'locale' => 'en', + 'locale' => env('APP_LOCALE', 'en'), - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ + 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Faker Locale - |-------------------------------------------------------------------------- - | - | This locale will be used by the Faker PHP library when generating fake - | data for your database seeds. For example, this will be used to get - | localized telephone numbers, street address information and more. - | - */ - - 'faker_locale' => 'en_US', + 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), /* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! + | This key is utilized by Laravel's encryption services and should be set + | to a random, 32 character string to ensure that all encrypted values + | are secure. You should do this prior to deploying the application. | */ + 'cipher' => 'AES-256-CBC', + 'key' => env('APP_KEY'), - 'cipher' => 'AES-256-CBC', + 'previous_keys' => [ + ...array_filter( + explode(',', env('APP_PREVIOUS_KEYS', '')) + ), + ], /* |-------------------------------------------------------------------------- @@ -139,77 +119,8 @@ */ 'maintenance' => [ - 'driver' => 'file', - // 'store' => 'redis', + 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), + 'store' => env('APP_MAINTENANCE_STORE', 'database'), ], - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - - /* - * Package Service Providers... - */ - - /* - * Application Service Providers... - */ - App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, - // App\Providers\BroadcastServiceProvider::class, - App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => Facade::defaultAliases()->merge([ - // 'ExampleClass' => App\Example\ExampleClass::class, - ])->toArray(), - ]; diff --git a/config/auth.php b/config/auth.php index d8c6cee7c1..0ba5d5d8f1 100644 --- a/config/auth.php +++ b/config/auth.php @@ -7,15 +7,15 @@ | Authentication Defaults |-------------------------------------------------------------------------- | - | This option controls the default authentication "guard" and password - | reset options for your application. You may change these defaults + | This option defines the default authentication "guard" and password + | reset "broker" for your application. You may change these values | as required, but they're a perfect start for most applications. | */ 'defaults' => [ - 'guard' => 'web', - 'passwords' => 'users', + 'guard' => env('AUTH_GUARD', 'web'), + 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), ], /* @@ -25,11 +25,11 @@ | | Next, you may define every authentication guard for your application. | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. + | which utilizes session storage plus the Eloquent user provider. | - | All authentication drivers have a user provider. This defines how the + | All authentication guards have a user provider, which defines how the | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. + | system used by the application. Typically, Eloquent is utilized. | | Supported: "session" | @@ -47,12 +47,12 @@ | User Providers |-------------------------------------------------------------------------- | - | All authentication drivers have a user provider. This defines how the + | All authentication guards have a user provider, which defines how the | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. + | system used by the application. Typically, Eloquent is utilized. | | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then + | providers to represent the model / table. These providers may then | be assigned to any extra authentication guards you have defined. | | Supported: "database", "eloquent" @@ -62,7 +62,7 @@ 'providers' => [ 'users' => [ 'driver' => 'eloquent', - 'model' => App\Models\User::class, + 'model' => env('AUTH_MODEL', App\Models\User::class), ], // 'users' => [ @@ -76,20 +76,24 @@ | Resetting Passwords |-------------------------------------------------------------------------- | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. + | These configuration options specify the behavior of Laravel's password + | reset functionality, including the table utilized for token storage + | and the user provider that is invoked to actually retrieve users. | - | The expire time is the number of minutes that each reset token will be + | The expiry time is the number of minutes that each reset token will be | considered valid. This security feature keeps tokens short-lived so | they have less time to be guessed. You may change this as needed. | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | */ 'passwords' => [ 'users' => [ 'provider' => 'users', - 'table' => 'password_resets', + 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'), 'expire' => 60, 'throttle' => 60, ], @@ -101,11 +105,11 @@ |-------------------------------------------------------------------------- | | Here you may define the amount of seconds before a password confirmation - | times out and the user is prompted to re-enter their password via the + | window expires and users are asked to re-enter their password via the | confirmation screen. By default, the timeout lasts for three hours. | */ - 'password_timeout' => 10800, + 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800), ]; diff --git a/config/broadcasting.php b/config/broadcasting.php index 67fcbbd6c8..ebc3fb9cf1 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -11,11 +11,11 @@ | framework when an event needs to be broadcast. You may set this to | any of the connections defined in the "connections" array below. | - | Supported: "pusher", "ably", "redis", "log", "null" + | Supported: "reverb", "pusher", "ably", "redis", "log", "null" | */ - 'default' => env('BROADCAST_DRIVER', 'null'), + 'default' => env('BROADCAST_CONNECTION', 'null'), /* |-------------------------------------------------------------------------- @@ -23,13 +23,29 @@ |-------------------------------------------------------------------------- | | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of + | to broadcast events to other systems or over WebSockets. Samples of | each available type of connection are provided inside this array. | */ 'connections' => [ + 'reverb' => [ + 'driver' => 'reverb', + 'key' => env('REVERB_APP_KEY'), + 'secret' => env('REVERB_APP_SECRET'), + 'app_id' => env('REVERB_APP_ID'), + 'options' => [ + 'host' => env('REVERB_HOST'), + 'port' => env('REVERB_PORT', 443), + 'scheme' => env('REVERB_SCHEME', 'https'), + 'useTLS' => env('REVERB_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + 'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), @@ -37,7 +53,11 @@ 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), - 'useTLS' => true, + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', ], 'client_options' => [ // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html @@ -49,11 +69,6 @@ 'key' => env('ABLY_KEY'), ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - 'log' => [ 'driver' => 'log', ], diff --git a/config/cache.php b/config/cache.php index a1962de1e7..6b57b18332 100644 --- a/config/cache.php +++ b/config/cache.php @@ -9,13 +9,13 @@ | Default Cache Store |-------------------------------------------------------------------------- | - | This option controls the default cache connection that gets used while - | using this caching library. This connection is used when another is - | not explicitly specified when executing a given caching function. + | This option controls the default cache store that will be used by the + | framework. This connection is utilized if another isn't explicitly + | specified when running a cache operation inside the application. | */ - 'default' => env('CACHE_DRIVER', 'file'), + 'default' => env('CACHE_STORE', 'database'), /* |-------------------------------------------------------------------------- @@ -26,17 +26,13 @@ | well as their drivers. You may even define multiple stores for the | same cache driver to group types of items stored in your caches. | - | Supported drivers: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb", "octane", "null" + | Supported drivers: "array", "database", "file", "memcached", + | "redis", "dynamodb", "octane", "null" | */ 'stores' => [ - 'apc' => [ - 'driver' => 'apc', - ], - 'array' => [ 'driver' => 'array', 'serialize' => false, @@ -44,14 +40,15 @@ 'database' => [ 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - 'lock_connection' => null, + 'table' => env('DB_CACHE_TABLE', 'cache'), + 'connection' => env('DB_CACHE_CONNECTION'), + 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'), ], 'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), ], 'memcached' => [ @@ -75,8 +72,8 @@ 'redis' => [ 'driver' => 'redis', - 'connection' => 'cache', - 'lock_connection' => 'default', + 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'), + 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'), ], 'dynamodb' => [ @@ -99,12 +96,12 @@ | Cache Key Prefix |-------------------------------------------------------------------------- | - | When utilizing the APC, database, memcached, Redis, or DynamoDB cache - | stores there might be other applications using the same cache. For + | When utilizing the APC, database, memcached, Redis, and DynamoDB cache + | stores, there might be other applications using the same cache. For | that reason, you may prefix every cache key to avoid collisions. | */ - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'tastyigniter'), '_').'_cache_'), + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), ]; diff --git a/config/cors.php b/config/cors.php deleted file mode 100644 index 8a39e6daa6..0000000000 --- a/config/cors.php +++ /dev/null @@ -1,34 +0,0 @@ - ['api/*', 'sanctum/csrf-cookie'], - - 'allowed_methods' => ['*'], - - 'allowed_origins' => ['*'], - - 'allowed_origins_patterns' => [], - - 'allowed_headers' => ['*'], - - 'exposed_headers' => [], - - 'max_age' => 0, - - 'supports_credentials' => false, - -]; diff --git a/config/database.php b/config/database.php index 9efec255ee..f8e8dcb8a6 100644 --- a/config/database.php +++ b/config/database.php @@ -10,26 +10,22 @@ |-------------------------------------------------------------------------- | | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. + | to use as your default connection for database operations. This is + | the connection which will be utilized unless another connection + | is explicitly specified when you execute a query / statement. | */ - 'default' => env('DB_CONNECTION', 'mysql'), + 'default' => env('DB_CONNECTION', 'sqlite'), /* |-------------------------------------------------------------------------- | Database Connections |-------------------------------------------------------------------------- | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. + | Below are all of the database connections defined for your application. + | An example configuration is provided for each database system which + | is supported by Laravel. You're free to add / remove connections. | */ @@ -37,7 +33,7 @@ 'sqlite' => [ 'driver' => 'sqlite', - 'url' => env('DATABASE_URL'), + 'url' => env('DB_URL'), 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), @@ -45,18 +41,38 @@ 'mysql' => [ 'driver' => 'mysql', - 'url' => env('DATABASE_URL'), + 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => env('DB_PREFIX', 'ti_'), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', 'prefix_indexes' => true, - 'strict' => false, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'mariadb' => [ + 'driver' => 'mariadb', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), @@ -65,13 +81,13 @@ 'pgsql' => [ 'driver' => 'pgsql', - 'url' => env('DATABASE_URL'), + 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', + 'charset' => env('DB_CHARSET', 'utf8'), 'prefix' => '', 'prefix_indexes' => true, 'search_path' => 'public', @@ -80,13 +96,13 @@ 'sqlsrv' => [ 'driver' => 'sqlsrv', - 'url' => env('DATABASE_URL'), + 'url' => env('DB_URL'), 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', + 'charset' => env('DB_CHARSET', 'utf8'), 'prefix' => '', 'prefix_indexes' => true, // 'encrypt' => env('DB_ENCRYPT', 'yes'), @@ -102,11 +118,14 @@ | | This table keeps track of all the migrations that have already run for | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. + | the migrations on disk haven't actually been run on the database. | */ - 'migrations' => 'migrations', + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => true, + ], /* |-------------------------------------------------------------------------- @@ -115,7 +134,7 @@ | | Redis is an open source, fast, and advanced key-value store that also | provides a richer body of commands than a typical key-value system - | such as APC or Memcached. Laravel makes it easy to dig right in. + | such as Memcached. You may define your connection settings here. | */ @@ -125,7 +144,7 @@ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'tastyigniter'), '_').'_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), ], 'default' => [ @@ -148,20 +167,4 @@ ], - /* - |-------------------------------------------------------------------------- - | DBAL Mappings - |-------------------------------------------------------------------------- - | - | If your migrations include ALTER commands then the library - | `doctrine/dbal` is used to make those changes. That library supports - | Laravel specific data type(s). This section maps those datatypes. - | - */ - - 'dbal' => [ - 'types' => [ - 'timestamp' => \Illuminate\Database\DBAL\TimestampType::class, - ], - ], ]; diff --git a/config/filesystems.php b/config/filesystems.php index fe9d2f2127..44fe9c828e 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -9,7 +9,7 @@ | | Here you may specify the default filesystem disk that should be used | by the framework. The "local" disk, as well as a variety of cloud - | based disks are available to your application. Just store away! + | based disks are available to your application for file storage. | */ @@ -20,9 +20,9 @@ | Filesystem Disks |-------------------------------------------------------------------------- | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been set up for each driver as an example of the required values. + | Below you may configure as many filesystem disks as necessary, and you + | may even configure multiple disks for the same driver. Examples for + | most supported storage drivers are configured here for reference. | | Supported Drivers: "local", "ftp", "sftp", "s3" | @@ -33,7 +33,7 @@ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), - 'throw' => true, + 'throw' => false, ], 'public' => [ @@ -41,7 +41,7 @@ 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', - 'throw' => true, + 'throw' => false, ], 's3' => [ @@ -53,7 +53,7 @@ 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), - 'throw' => true, + 'throw' => false, ], ], diff --git a/config/hashing.php b/config/hashing.php index bcd3be4c28..9eb408e09e 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -15,7 +15,7 @@ | */ - 'driver' => 'bcrypt', + 'driver' => env('HASH_DRIVER', 'bcrypt'), /* |-------------------------------------------------------------------------- @@ -29,7 +29,8 @@ */ 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), + 'rounds' => env('BCRYPT_ROUNDS', 12), + 'verify' => env('HASH_VERIFY', true), ], /* @@ -44,9 +45,23 @@ */ 'argon' => [ - 'memory' => 65536, - 'threads' => 1, - 'time' => 4, + 'memory' => env('ARGON_MEMORY', 65536), + 'threads' => env('ARGON_THREADS', 1), + 'time' => env('ARGON_TIME', 4), + 'verify' => env('HASH_VERIFY', true), ], + /* + |-------------------------------------------------------------------------- + | Rehash On Login + |-------------------------------------------------------------------------- + | + | Setting this option to true will tell Laravel to automatically rehash + | the user's password during login if the configured work factor for + | the algorithm has changed, allowing graceful upgrades of hashes. + | + */ + + 'rehash_on_login' => true, + ]; diff --git a/config/logging.php b/config/logging.php index 09d0cb9ccf..d526b64d75 100644 --- a/config/logging.php +++ b/config/logging.php @@ -3,6 +3,7 @@ use Monolog\Handler\NullHandler; use Monolog\Handler\StreamHandler; use Monolog\Handler\SyslogUdpHandler; +use Monolog\Processor\PsrLogMessageProcessor; return [ @@ -11,9 +12,9 @@ | Default Log Channel |-------------------------------------------------------------------------- | - | This option defines the default log channel that gets used when writing - | messages to the logs. The name specified in this option should match - | one of the channels defined in the "channels" configuration array. + | This option defines the default log channel that is utilized to write + | messages to your logs. The value provided here should match one of + | the channels present in the list of "channels" configured below. | */ @@ -32,7 +33,7 @@ 'deprecations' => [ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), - 'trace' => false, + 'trace' => env('LOG_DEPRECATIONS_TRACE', false), ], /* @@ -40,20 +41,20 @@ | Log Channels |-------------------------------------------------------------------------- | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. + | Here you may configure the log channels for your application. Laravel + | utilizes the Monolog PHP logging library, which includes a variety + | of powerful log handlers and formatters that you're free to use. | | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" + | "errorlog", "monolog", "custom", "stack" | */ 'channels' => [ + 'stack' => [ 'driver' => 'stack', - 'channels' => ['single'], + 'channels' => explode(',', env('LOG_STACK', 'single')), 'ignore_exceptions' => false, ], @@ -61,21 +62,24 @@ 'driver' => 'single', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, ], 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => env('LOG_LEVEL', 'debug'), - 'days' => 14, + 'days' => env('LOG_DAILY_DAYS', 14), + 'replace_placeholders' => true, ], 'slack' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'TastyIgniter Log', - 'emoji' => ':boom:', + 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'), + 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'), 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, ], 'papertrail' => [ @@ -87,6 +91,7 @@ 'port' => env('PAPERTRAIL_PORT'), 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), ], + 'processors' => [PsrLogMessageProcessor::class], ], 'stderr' => [ @@ -97,16 +102,20 @@ 'with' => [ 'stream' => 'php://stderr', ], + 'processors' => [PsrLogMessageProcessor::class], ], 'syslog' => [ 'driver' => 'syslog', 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER), + 'replace_placeholders' => true, ], 'errorlog' => [ 'driver' => 'errorlog', 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, ], 'null' => [ @@ -117,6 +126,7 @@ 'emergency' => [ 'path' => storage_path('logs/laravel.log'), ], + ], ]; diff --git a/config/mail.php b/config/mail.php index 534395a369..ad513854ba 100644 --- a/config/mail.php +++ b/config/mail.php @@ -7,13 +7,14 @@ | Default Mailer |-------------------------------------------------------------------------- | - | This option controls the default mailer that is used to send any email - | messages sent by your application. Alternative mailers may be setup - | and used as needed; however, this mailer will be used by default. + | This option controls the default mailer that is used to send all email + | messages unless another mailer is explicitly specified when sending + | the message. All additional mailers can be configured within the + | "mailers" array. Examples of each type of mailer are provided. | */ - 'default' => env('MAIL_MAILER', 'smtp'), + 'default' => env('MAIL_MAILER', 'log'), /* |-------------------------------------------------------------------------- @@ -24,20 +25,23 @@ | their respective settings. Several examples have been configured for | you and you are free to add your own as your application requires. | - | Laravel supports a variety of mail "transport" drivers to be used while - | sending an e-mail. You will specify which one you are using for your - | mailers below. You are free to add additional mailers as required. + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. | - | Supported: "smtp", "sendmail", "mailgun", "ses", - | "postmark", "log", "array", "failover" + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" | */ 'mailers' => [ + 'smtp' => [ 'transport' => 'smtp', - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - 'port' => env('MAIL_PORT', 587), + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), @@ -49,12 +53,16 @@ 'transport' => 'ses', ], - 'mailgun' => [ - 'transport' => 'mailgun', - ], - 'postmark' => [ 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'resend' => [ + 'transport' => 'resend', ], 'sendmail' => [ @@ -78,6 +86,15 @@ 'log', ], ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + ], /* @@ -85,9 +102,9 @@ | Global "From" Address |-------------------------------------------------------------------------- | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. | */ @@ -108,7 +125,7 @@ */ 'markdown' => [ - 'theme' => 'default', + 'theme' => env('MAIL_MARKDOWN_THEME', 'default'), 'paths' => [ resource_path('views/vendor/mail'), diff --git a/config/queue.php b/config/queue.php index 25ea5a8193..116bd8d002 100644 --- a/config/queue.php +++ b/config/queue.php @@ -7,22 +7,22 @@ | Default Queue Connection Name |-------------------------------------------------------------------------- | - | Laravel's queue API supports an assortment of back-ends via a single - | API, giving you convenient access to each back-end using the same - | syntax for every one. Here you may define a default connection. + | Laravel's queue supports a variety of backends via a single, unified + | API, giving you convenient access to each backend using identical + | syntax for each. The default queue connection is defined below. | */ - 'default' => env('QUEUE_CONNECTION', 'sync'), + 'default' => env('QUEUE_CONNECTION', 'database'), /* |-------------------------------------------------------------------------- | Queue Connections |-------------------------------------------------------------------------- | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. + | Here you may configure the connection options for every queue backend + | used by your application. An example configuration is provided for + | each backend supported by Laravel. You're also free to add more. | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" | @@ -36,17 +36,18 @@ 'database' => [ 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, + 'connection' => env('DB_QUEUE_CONNECTION'), + 'table' => env('DB_QUEUE_TABLE', 'jobs'), + 'queue' => env('DB_QUEUE', 'default'), + 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), 'after_commit' => false, ], 'beanstalkd' => [ 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, + 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), + 'queue' => env('BEANSTALKD_QUEUE', 'default'), + 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), 'block_for' => 0, 'after_commit' => false, ], @@ -64,29 +65,47 @@ 'redis' => [ 'driver' => 'redis', - 'connection' => 'default', + 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => env('REDIS_QUEUE', 'default'), - 'retry_after' => 90, + 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), 'block_for' => null, 'after_commit' => false, ], ], + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'job_batches', + ], + /* |-------------------------------------------------------------------------- | Failed Queue Jobs |-------------------------------------------------------------------------- | | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. + | can control how and where failed jobs are stored. Laravel ships with + | support for storing failed jobs in a simple file or in a database. + | + | Supported drivers: "database-uuids", "dynamodb", "file", "null" | */ 'failed' => [ 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), - 'database' => env('DB_CONNECTION', 'mysql'), + 'database' => env('DB_CONNECTION', 'sqlite'), 'table' => 'failed_jobs', ], diff --git a/config/sanctum.php b/config/sanctum.php deleted file mode 100644 index 529cfdc991..0000000000 --- a/config/sanctum.php +++ /dev/null @@ -1,67 +0,0 @@ - explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( - '%s%s', - 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', - Sanctum::currentApplicationUrlWithPort() - ))), - - /* - |-------------------------------------------------------------------------- - | Sanctum Guards - |-------------------------------------------------------------------------- - | - | This array contains the authentication guards that will be checked when - | Sanctum is trying to authenticate a request. If none of these guards - | are able to authenticate the request, Sanctum will use the bearer - | token that's present on an incoming request for authentication. - | - */ - - 'guard' => ['web'], - - /* - |-------------------------------------------------------------------------- - | Expiration Minutes - |-------------------------------------------------------------------------- - | - | This value controls the number of minutes until an issued token will be - | considered expired. If this value is null, personal access tokens do - | not expire. This won't tweak the lifetime of first-party sessions. - | - */ - - 'expiration' => null, - - /* - |-------------------------------------------------------------------------- - | Sanctum Middleware - |-------------------------------------------------------------------------- - | - | When authenticating your first-party SPA with Sanctum you may need to - | customize some of the middleware Sanctum uses while processing the - | request. You may change the middleware listed below as required. - | - */ - - 'middleware' => [ - 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, - 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, - ], - -]; diff --git a/config/services.php b/config/services.php index 0ace530e8d..27a36175f8 100644 --- a/config/services.php +++ b/config/services.php @@ -14,13 +14,6 @@ | */ - 'mailgun' => [ - 'domain' => env('MAILGUN_DOMAIN'), - 'secret' => env('MAILGUN_SECRET'), - 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), - 'scheme' => 'https', - ], - 'postmark' => [ 'token' => env('POSTMARK_TOKEN'), ], @@ -31,4 +24,15 @@ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), ], + 'resend' => [ + 'key' => env('RESEND_KEY'), + ], + + 'slack' => [ + 'notifications' => [ + 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), + 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), + ], + ], + ]; diff --git a/config/session.php b/config/session.php index 59f34fd932..f0b6541e58 100644 --- a/config/session.php +++ b/config/session.php @@ -9,16 +9,16 @@ | Default Session Driver |-------------------------------------------------------------------------- | - | This option controls the default session "driver" that will be used on - | requests. By default, we will use the lightweight native driver but - | you may specify any of the other wonderful drivers provided here. + | This option determines the default session driver that is utilized for + | incoming requests. Laravel supports a variety of storage options to + | persist session data. Database storage is a great default choice. | | Supported: "file", "cookie", "database", "apc", | "memcached", "redis", "dynamodb", "array" | */ - 'driver' => env('SESSION_DRIVER', 'file'), + 'driver' => env('SESSION_DRIVER', 'database'), /* |-------------------------------------------------------------------------- @@ -27,13 +27,14 @@ | | Here you may specify the number of minutes that you wish the session | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. + | to expire immediately when the browser is closed then you may + | indicate that via the expire_on_close configuration option. | */ 'lifetime' => env('SESSION_LIFETIME', 120), - 'expire_on_close' => false, + 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), /* |-------------------------------------------------------------------------- @@ -41,21 +42,21 @@ |-------------------------------------------------------------------------- | | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. + | should be encrypted before it's stored. All encryption is performed + | automatically by Laravel and you may use the session like normal. | */ - 'encrypt' => false, + 'encrypt' => env('SESSION_ENCRYPT', false), /* |-------------------------------------------------------------------------- | Session File Location |-------------------------------------------------------------------------- | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. + | When utilizing the "file" session driver, the session files are placed + | on disk. The default storage location is defined here; however, you + | are free to provide another location where they should be stored. | */ @@ -79,22 +80,22 @@ | Session Database Table |-------------------------------------------------------------------------- | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. + | When using the "database" session driver, you may specify the table to + | be used to store sessions. Of course, a sensible default is defined + | for you; however, you're welcome to change this to another table. | */ - 'table' => 'sessions', + 'table' => env('SESSION_TABLE', 'sessions'), /* |-------------------------------------------------------------------------- | Session Cache Store |-------------------------------------------------------------------------- | - | While using one of the framework's cache driven session backends you may - | list a cache store that should be used for these sessions. This value - | must match with one of the application's configured cache "stores". + | When using one of the framework's cache driven session backends, you may + | define the cache store which should be used to store the session data + | between requests. This must match one of your defined cache stores. | | Affects: "apc", "dynamodb", "memcached", "redis" | @@ -120,15 +121,15 @@ | Session Cookie Name |-------------------------------------------------------------------------- | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. + | Here you may change the name of the session cookie that is created by + | the framework. Typically, you should not need to change this value + | since doing so does not grant a meaningful security improvement. | */ 'cookie' => env( 'SESSION_COOKIE', - Str::slug(env('APP_NAME', 'tastyigniter'), '_').'_session' + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' ), /* @@ -138,20 +139,20 @@ | | The session cookie path determines the path for which the cookie will | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. + | your application, but you're free to change this when necessary. | */ - 'path' => '/', + 'path' => env('SESSION_PATH', '/'), /* |-------------------------------------------------------------------------- | Session Cookie Domain |-------------------------------------------------------------------------- | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. + | This value determines the domain and subdomains the session cookie is + | available to. By default, the cookie will be available to the root + | domain and all subdomains. Typically, this shouldn't be changed. | */ @@ -177,11 +178,11 @@ | | Setting this value to true will prevent JavaScript from accessing the | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. + | the HTTP protocol. It's unlikely you should disable this option. | */ - 'http_only' => true, + 'http_only' => env('SESSION_HTTP_ONLY', true), /* |-------------------------------------------------------------------------- @@ -190,12 +191,27 @@ | | This option determines how your cookies behave when cross-site requests | take place, and can be used to mitigate CSRF attacks. By default, we - | will set this value to "lax" since this is a secure default value. + | will set this value to "lax" to permit secure cross-site requests. + | + | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value | | Supported: "lax", "strict", "none", null | */ - 'same_site' => 'lax', + 'same_site' => env('SESSION_SAME_SITE', 'lax'), + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false), ]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 22b8a18d32..0000000000 --- a/config/view.php +++ /dev/null @@ -1,36 +0,0 @@ - [ - resource_path('views'), - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => env( - 'VIEW_COMPILED_PATH', - realpath(storage_path('framework/views')) - ), - -]; diff --git a/lang/en/auth.php b/lang/en/auth.php deleted file mode 100644 index 6598e2c060..0000000000 --- a/lang/en/auth.php +++ /dev/null @@ -1,20 +0,0 @@ - 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', - -]; diff --git a/lang/en/pagination.php b/lang/en/pagination.php deleted file mode 100644 index d481411877..0000000000 --- a/lang/en/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Previous', - 'next' => 'Next »', - -]; diff --git a/lang/en/passwords.php b/lang/en/passwords.php deleted file mode 100644 index 2345a56b5a..0000000000 --- a/lang/en/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Your password has been reset!', - 'sent' => 'We have emailed your password reset link!', - 'throttled' => 'Please wait before retrying.', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that email address.", - -]; diff --git a/lang/en/validation.php b/lang/en/validation.php deleted file mode 100644 index 724b5ace57..0000000000 --- a/lang/en/validation.php +++ /dev/null @@ -1,169 +0,0 @@ - 'The :attribute must be accepted.', - 'accepted_if' => 'The :attribute must be accepted when :other is :value.', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', - 'alpha' => 'The :attribute must only contain letters.', - 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', - 'alpha_num' => 'The :attribute must only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'before' => 'The :attribute must be a date before :date.', - 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', - 'between' => [ - 'array' => 'The :attribute must have between :min and :max items.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'numeric' => 'The :attribute must be between :min and :max.', - 'string' => 'The :attribute must be between :min and :max characters.', - ], - 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute is not a valid date.', - 'date_equals' => 'The :attribute must be a date equal to :date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'declined' => 'The :attribute must be declined.', - 'declined_if' => 'The :attribute must be declined when :other is :value.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'dimensions' => 'The :attribute has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'email' => 'The :attribute must be a valid email address.', - 'ends_with' => 'The :attribute must end with one of the following: :values.', - 'enum' => 'The selected :attribute is invalid.', - 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute must be a file.', - 'filled' => 'The :attribute field must have a value.', - 'gt' => [ - 'array' => 'The :attribute must have more than :value items.', - 'file' => 'The :attribute must be greater than :value kilobytes.', - 'numeric' => 'The :attribute must be greater than :value.', - 'string' => 'The :attribute must be greater than :value characters.', - ], - 'gte' => [ - 'array' => 'The :attribute must have :value items or more.', - 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be greater than or equal to :value.', - 'string' => 'The :attribute must be greater than or equal to :value characters.', - ], - 'image' => 'The :attribute must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'ipv4' => 'The :attribute must be a valid IPv4 address.', - 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'json' => 'The :attribute must be a valid JSON string.', - 'lt' => [ - 'array' => 'The :attribute must have less than :value items.', - 'file' => 'The :attribute must be less than :value kilobytes.', - 'numeric' => 'The :attribute must be less than :value.', - 'string' => 'The :attribute must be less than :value characters.', - ], - 'lte' => [ - 'array' => 'The :attribute must not have more than :value items.', - 'file' => 'The :attribute must be less than or equal to :value kilobytes.', - 'numeric' => 'The :attribute must be less than or equal to :value.', - 'string' => 'The :attribute must be less than or equal to :value characters.', - ], - 'mac_address' => 'The :attribute must be a valid MAC address.', - 'max' => [ - 'array' => 'The :attribute must not have more than :max items.', - 'file' => 'The :attribute must not be greater than :max kilobytes.', - 'numeric' => 'The :attribute must not be greater than :max.', - 'string' => 'The :attribute must not be greater than :max characters.', - ], - 'mimes' => 'The :attribute must be a file of type: :values.', - 'mimetypes' => 'The :attribute must be a file of type: :values.', - 'min' => [ - 'array' => 'The :attribute must have at least :min items.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'numeric' => 'The :attribute must be at least :min.', - 'string' => 'The :attribute must be at least :min characters.', - ], - 'multiple_of' => 'The :attribute must be a multiple of :value.', - 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute format is invalid.', - 'numeric' => 'The :attribute must be a number.', - 'password' => [ - 'letters' => 'The :attribute must contain at least one letter.', - 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :attribute must contain at least one number.', - 'symbols' => 'The :attribute 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 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_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 and :other must match.', - 'size' => [ - 'array' => 'The :attribute must contain :size items.', - 'file' => 'The :attribute must be :size kilobytes.', - 'numeric' => 'The :attribute must be :size.', - 'string' => 'The :attribute must be :size characters.', - ], - 'starts_with' => 'The :attribute must start with one of the following: :values.', - 'string' => 'The :attribute must be a string.', - 'timezone' => 'The :attribute must be a valid timezone.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'url' => 'The :attribute must be a valid URL.', - 'uuid' => 'The :attribute must be a valid UUID.', - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => [ - 'attribute-name' => [ - 'rule-name' => 'custom-message', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap our attribute placeholder - | with something more reader friendly such as "E-Mail Address" instead - | of "email". This simply helps us make our message more expressive. - | - */ - - 'attributes' => [], - -]; diff --git a/public/index.php b/public/index.php index 1d69f3a289..947d98963f 100644 --- a/public/index.php +++ b/public/index.php @@ -1,55 +1,17 @@ make(Kernel::class); - -$response = $kernel->handle( - $request = Request::capture() -)->send(); - -$kernel->terminate($request, $response); +// Bootstrap Laravel and handle the request... +(require_once __DIR__.'/../bootstrap/app.php') + ->handleRequest(Request::capture()); diff --git a/routes/api.php b/routes/api.php deleted file mode 100644 index 9b079b2265..0000000000 --- a/routes/api.php +++ /dev/null @@ -1,16 +0,0 @@ -get('/user', function (Request $request) { -// return $request->user(); -//}); diff --git a/routes/channels.php b/routes/channels.php deleted file mode 100644 index 4ea0d983bf..0000000000 --- a/routes/channels.php +++ /dev/null @@ -1,16 +0,0 @@ -id === (int) $id; -//}); From 9b894bd82a6fc2a95e4c8e5af108585fe50b5481 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Mon, 10 Jun 2024 13:45:18 +0100 Subject: [PATCH 21/28] Bring back DB_PREFIX env Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .env.example | 1 + config/database.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 56ce8bb07d..e81e72ad30 100644 --- a/.env.example +++ b/.env.example @@ -28,6 +28,7 @@ DB_PORT= DB_DATABASE= DB_USERNAME= DB_PASSWORD= +DB_PREFIX= SESSION_DRIVER=database SESSION_LIFETIME=120 diff --git a/config/database.php b/config/database.php index f8e8dcb8a6..43f2beb4e8 100644 --- a/config/database.php +++ b/config/database.php @@ -50,7 +50,7 @@ 'unix_socket' => env('DB_SOCKET', ''), 'charset' => env('DB_CHARSET', 'utf8mb4'), 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), - 'prefix' => '', + 'prefix' => env('DB_PREFIX', ''), 'prefix_indexes' => true, 'strict' => true, 'engine' => null, From 10e10580164cdbf5742848dbf171028620e0b7f4 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:32:45 +0100 Subject: [PATCH 22/28] Disable DB strict mode Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- config/database.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/database.php b/config/database.php index 43f2beb4e8..958416356d 100644 --- a/config/database.php +++ b/config/database.php @@ -52,7 +52,7 @@ 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), 'prefix' => env('DB_PREFIX', ''), 'prefix_indexes' => true, - 'strict' => true, + 'strict' => false, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), From 96e2303f0db2d99769fcc99019b442b2edd771ba Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:40:36 +0100 Subject: [PATCH 23/28] Set default cache store and session driver to file Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index e81e72ad30..8e98499c7e 100644 --- a/.env.example +++ b/.env.example @@ -30,7 +30,7 @@ DB_USERNAME= DB_PASSWORD= DB_PREFIX= -SESSION_DRIVER=database +SESSION_DRIVER=file SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ @@ -40,7 +40,7 @@ BROADCAST_CONNECTION=log FILESYSTEM_DISK=local QUEUE_CONNECTION=database -CACHE_STORE=database +CACHE_STORE=file CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 From 318e360bdcae1c60fb07e74bceacd5236f1dfd2a Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:41:16 +0100 Subject: [PATCH 24/28] Update composer deps and ignored files Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .gitignore | 2 ++ composer.json | 11 +++-------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index d9df07e27a..30e26efbd1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ composer.lock node_modules /public/vendor +/lang +/storage/clockwork diff --git a/composer.json b/composer.json index 6b38c5a05e..23aaebb796 100644 --- a/composer.json +++ b/composer.json @@ -31,12 +31,7 @@ "php": "^8.2", "laravel/framework": "^11.9", "laravel/tinker": "^2.9", - "tastyigniter/core": "dev-master", - "tastyigniter/ti-ext-api": "*", - "tastyigniter/ti-ext-automation": "*", - "tastyigniter/ti-ext-broadcast": "*", - "tastyigniter/ti-ext-socialite": "v4.x-dev as 4.0", - "tastyigniter/ti-theme-orange": "v4.x-dev as 4.0" + "tastyigniter/core": "dev-master" }, "require-dev": { "fakerphp/faker": "^1.23", @@ -44,8 +39,7 @@ "laravel/sail": "^1.26", "mockery/mockery": "^1.6", "nunomaduro/collision": "^8.0", - "phpunit/phpunit": "^11.0.1", - "tastyigniter/ti-ext-debugbar": "v4.x-dev as 4.0" + "phpunit/phpunit": "^11.0.1" }, "autoload": { "psr-4": { @@ -86,6 +80,7 @@ "preferred-install": "dist", "sort-packages": true, "allow-plugins": { + "composer/installers": true, "pestphp/pest-plugin": true, "php-http/discovery": true } From fb35857f40714dba407299fa51c09d493e9d93b3 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sat, 3 Aug 2024 13:53:47 +0100 Subject: [PATCH 25/28] Add sail docker compose file Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- docker-compose.yml | 112 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000..02801e0ac0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,112 @@ +services: + laravel.test: + build: + context: ./vendor/laravel/sail/runtimes/8.3 + dockerfile: Dockerfile + args: + WWWGROUP: '${WWWGROUP}' + image: sail-8.3/app + extra_hosts: + - 'host.docker.internal:host-gateway' + ports: + - '${APP_PORT:-80}:80' + - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' + environment: + WWWUSER: '${WWWUSER}' + LARAVEL_SAIL: 1 + XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' + XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' + IGNITION_LOCAL_SITES_PATH: '${PWD}' + volumes: + - '.:/var/www/html' + networks: + - sail + depends_on: + - mysql + - redis + - meilisearch + - mailpit + - selenium + mysql: + image: 'mysql/mysql-server:8.0' + ports: + - '${FORWARD_DB_PORT:-3306}:3306' + environment: + MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' + MYSQL_ROOT_HOST: '%' + MYSQL_DATABASE: '${DB_DATABASE}' + MYSQL_USER: '${DB_USERNAME}' + MYSQL_PASSWORD: '${DB_PASSWORD}' + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - 'sail-mysql:/var/lib/mysql' + - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' + networks: + - sail + healthcheck: + test: + - CMD + - mysqladmin + - ping + - '-p${DB_PASSWORD}' + retries: 3 + timeout: 5s + redis: + image: 'redis:alpine' + ports: + - '${FORWARD_REDIS_PORT:-6379}:6379' + volumes: + - 'sail-redis:/data' + networks: + - sail + healthcheck: + test: + - CMD + - redis-cli + - ping + retries: 3 + timeout: 5s + meilisearch: + image: 'getmeili/meilisearch:latest' + ports: + - '${FORWARD_MEILISEARCH_PORT:-7700}:7700' + environment: + MEILI_NO_ANALYTICS: '${MEILISEARCH_NO_ANALYTICS:-false}' + volumes: + - 'sail-meilisearch:/meili_data' + networks: + - sail + healthcheck: + test: + - CMD + - wget + - '--no-verbose' + - '--spider' + - 'http://127.0.0.1:7700/health' + retries: 3 + timeout: 5s + mailpit: + image: 'axllent/mailpit:latest' + ports: + - '${FORWARD_MAILPIT_PORT:-1025}:1025' + - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025' + networks: + - sail + selenium: + image: seleniarm/standalone-chromium + extra_hosts: + - 'host.docker.internal:host-gateway' + volumes: + - '/dev/shm:/dev/shm' + networks: + - sail +networks: + sail: + driver: bridge +volumes: + sail-mysql: + driver: local + sail-redis: + driver: local + sail-meilisearch: + driver: local From cd806ff1fbc979b7dc6eb24d37699709edfdcf4d Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sat, 10 Aug 2024 12:35:49 +0100 Subject: [PATCH 26/28] v4-beta release prepping Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 23aaebb796..0374301fd1 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "php": "^8.2", "laravel/framework": "^11.9", "laravel/tinker": "^2.9", - "tastyigniter/core": "dev-master" + "tastyigniter/core": "^v4.0@beta" }, "require-dev": { "fakerphp/faker": "^1.23", From 5889250b41bdd7847d32555606f6dd617d6ec739 Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 11 Aug 2024 12:06:05 +0100 Subject: [PATCH 27/28] Update README Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dc0c7f5afb..bc71d8ca17 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ these awesome [backers](#contributing). If you'd like to help support the future ## Sponsors -Become a sponsor and get your logo on our README on Github with a link to your site. +Become a sponsor and get your logo on our README on GitHub with a link to your site. ### via Open Collective @@ -72,7 +72,7 @@ Become a sponsor and get your logo on our README on Github with a link to your s ## Built With :heart: - Laravel full-stack PHP framework -- Bootstrap 4 front-end framework +- Bootstrap 5 front-end framework ## Author From f02d2be45a56cac5de8c435cc788eabc540c9adf Mon Sep 17 00:00:00 2001 From: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> Date: Sun, 24 Nov 2024 12:21:58 +0000 Subject: [PATCH 28/28] Refactor extension & theme path loading methods for maintainability. Signed-off-by: Sam Poyigi <6567634+sampoyigi@users.noreply.github.com> --- .gitignore | 1 + phpunit.xml | 3 +-- server.php | 19 ------------------- 3 files changed, 2 insertions(+), 21 deletions(-) delete mode 100644 server.php diff --git a/.gitignore b/.gitignore index 30e26efbd1..8aa4d5146e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,6 @@ composer.lock node_modules /public/vendor +/public/storage /lang /storage/clockwork diff --git a/phpunit.xml b/phpunit.xml index 2ac86a1858..49661e5d26 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -21,8 +21,7 @@ - - + diff --git a/server.php b/server.php deleted file mode 100644 index 627537da07..0000000000 --- a/server.php +++ /dev/null @@ -1,19 +0,0 @@ -