-
+
@@ -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
+- Bootstrap 5 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.
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 c3be2544bd..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 $routeMiddleware = [
- '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 51b351b0b3..0000000000
--- a/app/Providers/AuthServiceProvider.php
+++ /dev/null
@@ -1,30 +0,0 @@
-
- */
- protected $policies = [
- // 'App\Models\Model' => 'App\Policies\ModelPolicy',
- ];
-
- /**
- * Register any authentication / authorization services.
- *
- * @return void
- */
- public function boot()
- {
- $this->registerPolicies();
-
- //
- }
-}
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
deleted file mode 100644
index 395c518bc4..0000000000
--- a/app/Providers/BroadcastServiceProvider.php
+++ /dev/null
@@ -1,21 +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 53dfe4b406..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,14 +62,8 @@
'providers' => [
'users' => [
'driver' => 'eloquent',
- 'model' => App\Models\User::class,
+ 'model' => env('AUTH_MODEL', App\Models\User::class),
],
-// 'igniter-admin' => [
-// 'driver' => 'igniter-admin',
-// ],
-// 'igniter-customers' => [
-// 'driver' => 'igniter-customer',
-// ],
// 'users' => [
// 'driver' => 'database',
@@ -82,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,
],
@@ -107,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..958416356d 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,16 +41,16 @@
'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' => env('DB_PREFIX', ''),
'prefix_indexes' => true,
'strict' => false,
'engine' => null,
@@ -63,15 +59,35 @@
]) : [],
],
+ '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'),
+ ]) : [],
+ ],
+
'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 dcc950f903..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,14 +33,7 @@
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
- 'throw' => true,
- ],
-
- 'media' => [
- 'driver' => 'local',
- 'root' => public_path('media'),
- 'url' => env('APP_URL').'/media',
- 'throw' => true,
+ 'throw' => false,
],
'public' => [
@@ -48,7 +41,7 @@
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
- 'throw' => true,
+ 'throw' => false,
],
's3' => [
@@ -60,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 3ed50f735d..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' => [
@@ -115,8 +124,9 @@
],
'emergency' => [
- 'path' => storage_path('logs/system.log'),
+ '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/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');
+ }
+};
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
diff --git a/extensions/.gitignore b/extensions/.gitignore
index 073674a451..d6b7ef32c8 100644
--- a/extensions/.gitignore
+++ b/extensions/.gitignore
@@ -1,3 +1,2 @@
*
-!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/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/phpunit.xml b/phpunit.xml
index 2ac86a1858..49661e5d26 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -21,8 +21,7 @@
-
-
+
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}]
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/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 7ce5415d34..0000000000
Binary files a/public/media/uploads/no_photo.png and /dev/null differ
diff --git a/public/robots.txt b/public/robots.txt
index eb0536286f..d7cd58c962 100644
--- a/public/robots.txt
+++ b/public/robots.txt
@@ -1,2 +1,2 @@
User-agent: *
-Disallow:
+Disallow: /admin/
\ No newline at end of file
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;
-//});
diff --git a/themes/.gitignore b/themes/.gitignore
index 59dd06a21a..d6b7ef32c8 100644
--- a/themes/.gitignore
+++ b/themes/.gitignore
@@ -1,3 +1,2 @@
*
-!demo/
-!.gitignore
\ No newline at end of file
+!.gitignore
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')
-
-
-
-