#1 - project skeleton (#7)

* #1 - project skeleton

* #1 - composer fix

* #1 - add app key to phpunit config

* #1 - change default session driver

* #1 - add EXTERNAL_WEBSERVER_PORT variable to .env.example
This commit is contained in:
Adrian Hopek
2022-01-10 13:28:18 +01:00
committed by GitHub
parent 683b2367ea
commit 8f5f2b88f0
90 changed files with 25980 additions and 1 deletions

46
config/app.php Normal file
View File

@@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
return [
"name" => env("APP_NAME", "Laravel"),
"env" => env("APP_ENV", "production"),
"debug" => (bool)env("APP_DEBUG", false),
"url" => env("APP_URL", "http://localhost"),
"asset_url" => env("ASSET_URL"),
"timezone" => "Europe/Warsaw",
"locale" => "pl",
"fallback_locale" => "en",
"faker_locale" => "pl_PL",
"key" => env("APP_KEY"),
"cipher" => "AES-256-CBC",
"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,
Toby\Providers\AppServiceProvider::class,
Toby\Providers\AuthServiceProvider::class,
Toby\Providers\EventServiceProvider::class,
Toby\Providers\RouteServiceProvider::class,
Toby\Providers\TelescopeServiceProvider::class,
],
];

31
config/auth.php Normal file
View File

@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
return [
"defaults" => [
"guard" => "web",
"passwords" => "users",
],
"guards" => [
"web" => [
"driver" => "session",
"provider" => "users",
],
],
"providers" => [
"users" => [
"driver" => "eloquent",
"model" => Toby\Models\User::class,
],
],
"passwords" => [
"users" => [
"provider" => "users",
"table" => "password_resets",
"expire" => 60,
"throttle" => 60,
],
],
"password_timeout" => 10800,
];

15
config/broadcasting.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
return [
"default" => env("BROADCAST_DRIVER", "null"),
"connections" => [
"log" => [
"driver" => "log",
],
"null" => [
"driver" => "null",
],
],
];

26
config/cache.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
use Illuminate\Support\Str;
return [
"default" => env("CACHE_DRIVER", "file"),
"stores" => [
"array" => [
"driver" => "array",
"serialize" => false,
],
"database" => [
"driver" => "database",
"table" => "cache",
"connection" => null,
"lock_connection" => null,
],
"file" => [
"driver" => "file",
"path" => storage_path("framework/cache/data"),
],
],
"prefix" => env("CACHE_PREFIX", Str::slug(env("APP_NAME", "laravel"), "_") . "_cache"),
];

14
config/cors.php Normal file
View File

@@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
return [
"paths" => ["api/*", "sanctum/csrf-cookie"],
"allowed_methods" => ["*"],
"allowed_origins" => ["*"],
"allowed_origins_patterns" => [],
"allowed_headers" => ["*"],
"exposed_headers" => [],
"max_age" => 0,
"supports_credentials" => false,
];

34
config/database.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
return [
"default" => env("DB_CONNECTION", "mysql"),
"connections" => [
"testing" => [
"driver" => "sqlite",
"database" => ":memory:",
"prefix" => "",
],
"mysql" => [
"driver" => "mysql",
"url" => env("DATABASE_URL"),
"host" => env("DB_HOST", "127.0.0.1"),
"port" => env("DB_PORT", "3306"),
"database" => env("DB_DATABASE", "forge"),
"username" => env("DB_USERNAME", "forge"),
"password" => env("DB_PASSWORD", ""),
"unix_socket" => env("DB_SOCKET", ""),
"charset" => "utf8mb4",
"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"),
]) : [],
],
],
"migrations" => "migrations",
];

22
config/filesystems.php Normal file
View File

@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
return [
"default" => env("FILESYSTEM_DRIVER", "local"),
"disks" => [
"local" => [
"driver" => "local",
"root" => storage_path("app"),
],
"public" => [
"driver" => "local",
"root" => storage_path("app/public"),
"url" => env("APP_URL") . "/storage",
"visibility" => "public",
],
],
"links" => [
public_path("storage") => storage_path("app/public"),
],
];

15
config/hashing.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
return [
"driver" => "bcrypt",
"bcrypt" => [
"rounds" => env("BCRYPT_ROUNDS", 10),
],
"argon" => [
"memory" => 1024,
"threads" => 2,
"time" => 2,
],
];

54
config/logging.php Normal file
View File

@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler;
return [
"default" => env("LOG_CHANNEL", "stack"),
"deprecations" => env("LOG_DEPRECATIONS_CHANNEL", "null"),
"channels" => [
"stack" => [
"driver" => "stack",
"channels" => ["single"],
"ignore_exceptions" => false,
],
"single" => [
"driver" => "single",
"path" => storage_path("logs/laravel.log"),
"level" => env("LOG_LEVEL", "debug"),
],
"daily" => [
"driver" => "daily",
"path" => storage_path("logs/laravel.log"),
"level" => env("LOG_LEVEL", "debug"),
"days" => 14,
],
"stderr" => [
"driver" => "monolog",
"level" => env("LOG_LEVEL", "debug"),
"handler" => StreamHandler::class,
"formatter" => env("LOG_STDERR_FORMATTER"),
"with" => [
"stream" => "php://stderr",
],
],
"syslog" => [
"driver" => "syslog",
"level" => env("LOG_LEVEL", "debug"),
],
"errorlog" => [
"driver" => "errorlog",
"level" => env("LOG_LEVEL", "debug"),
],
"null" => [
"driver" => "monolog",
"handler" => NullHandler::class,
],
"emergency" => [
"path" => storage_path("logs/laravel.log"),
],
],
];

43
config/mail.php Normal file
View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
return [
"default" => env("MAIL_MAILER", "smtp"),
"mailers" => [
"smtp" => [
"transport" => "smtp",
"host" => env("MAIL_HOST", "smtp.mailgun.org"),
"port" => env("MAIL_PORT", 587),
"encryption" => env("MAIL_ENCRYPTION", "tls"),
"username" => env("MAIL_USERNAME"),
"password" => env("MAIL_PASSWORD"),
"timeout" => null,
"auth_mode" => null,
],
"log" => [
"transport" => "log",
"channel" => env("MAIL_LOG_CHANNEL"),
],
"array" => [
"transport" => "array",
],
"failover" => [
"transport" => "failover",
"mailers" => [
"smtp",
"log",
],
],
],
"from" => [
"address" => env("MAIL_FROM_ADDRESS", "hello@example.com"),
"name" => env("MAIL_FROM_NAME", "Example"),
],
"markdown" => [
"theme" => "default",
"paths" => [
resource_path("views/vendor/mail"),
],
],
];

17
config/queue.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
return [
"default" => env("QUEUE_CONNECTION", "sync"),
"connections" => [
"sync" => [
"driver" => "sync",
],
],
"failed" => [
"driver" => env("QUEUE_FAILED_DRIVER", "database-uuids"),
"database" => env("DB_CONNECTION", "mysql"),
"table" => "failed_jobs",
],
];

17
config/sanctum.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
return [
"stateful" => explode(",", env("SANCTUM_STATEFUL_DOMAINS", sprintf(
"%s%s",
"localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1",
env("APP_URL") ? "," . parse_url(env("APP_URL"), PHP_URL_HOST) : "",
))),
"guard" => ["web"],
"expiration" => null,
"middleware" => [
"verify_csrf_token" => Toby\Http\Middleware\VerifyCsrfToken::class,
"encrypt_cookies" => Toby\Http\Middleware\EncryptCookies::class,
],
];

5
config/services.php Normal file
View File

@@ -0,0 +1,5 @@
<?php
declare(strict_types=1);
return [];

26
config/session.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
use Illuminate\Support\Str;
return [
"driver" => env("SESSION_DRIVER", "file"),
"lifetime" => env("SESSION_LIFETIME", 120),
"expire_on_close" => false,
"encrypt" => false,
"files" => storage_path("framework/sessions"),
"connection" => env("SESSION_CONNECTION"),
"table" => "sessions",
"store" => env("SESSION_STORE"),
"lottery" => [2, 100],
"cookie" => env(
"SESSION_COOKIE",
Str::slug(env("APP_NAME", "laravel"), "_") . "_session",
),
"path" => "/",
"domain" => env("SESSION_DOMAIN"),
"secure" => env("SESSION_SECURE_COOKIE"),
"http_only" => true,
"same_site" => "lax",
];

82
config/telescope.php Normal file
View File

@@ -0,0 +1,82 @@
<?php
declare(strict_types=1);
use Laravel\Telescope\Http\Middleware\Authorize;
use Laravel\Telescope\Watchers;
return [
"domain" => env("TELESCOPE_DOMAIN"),
"path" => env("TELESCOPE_PATH", "telescope"),
"driver" => env("TELESCOPE_DRIVER", "database"),
"storage" => [
"database" => [
"connection" => env("DB_CONNECTION", "mysql"),
"chunk" => 1000,
],
],
"enabled" => env("TELESCOPE_ENABLED", true),
"middleware" => [
"web",
Authorize::class,
],
"only_paths" => [],
"ignore_paths" => [
"nova-api*",
],
"ignore_commands" => [],
"watchers" => [
Watchers\BatchWatcher::class => env("TELESCOPE_BATCH_WATCHER", true),
Watchers\CacheWatcher::class => env("TELESCOPE_CACHE_WATCHER", true),
Watchers\ClientRequestWatcher::class => env("TELESCOPE_CLIENT_REQUEST_WATCHER", true),
Watchers\CommandWatcher::class => [
"enabled" => env("TELESCOPE_COMMAND_WATCHER", true),
"ignore" => [],
],
Watchers\DumpWatcher::class => env("TELESCOPE_DUMP_WATCHER", true),
Watchers\EventWatcher::class => [
"enabled" => env("TELESCOPE_EVENT_WATCHER", true),
"ignore" => [],
],
Watchers\ExceptionWatcher::class => env("TELESCOPE_EXCEPTION_WATCHER", true),
Watchers\GateWatcher::class => [
"enabled" => env("TELESCOPE_GATE_WATCHER", true),
"ignore_abilities" => [],
"ignore_packages" => true,
],
Watchers\JobWatcher::class => env("TELESCOPE_JOB_WATCHER", true),
Watchers\LogWatcher::class => env("TELESCOPE_LOG_WATCHER", true),
Watchers\MailWatcher::class => env("TELESCOPE_MAIL_WATCHER", true),
Watchers\ModelWatcher::class => [
"enabled" => env("TELESCOPE_MODEL_WATCHER", true),
"events" => ["eloquent.*"],
"hydrations" => true,
],
Watchers\NotificationWatcher::class => env("TELESCOPE_NOTIFICATION_WATCHER", true),
Watchers\QueryWatcher::class => [
"enabled" => env("TELESCOPE_QUERY_WATCHER", true),
"ignore_packages" => true,
"slow" => 100,
],
Watchers\RedisWatcher::class => env("TELESCOPE_REDIS_WATCHER", true),
Watchers\RequestWatcher::class => [
"enabled" => env("TELESCOPE_REQUEST_WATCHER", true),
"size_limit" => env("TELESCOPE_RESPONSE_SIZE_LIMIT", 64),
"ignore_status_codes" => [],
],
Watchers\ScheduleWatcher::class => env("TELESCOPE_SCHEDULE_WATCHER", true),
Watchers\ViewWatcher::class => env("TELESCOPE_VIEW_WATCHER", true),
],
];

13
config/view.php Normal file
View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
return [
"paths" => [
resource_path("views"),
],
"compiled" => env(
"VIEW_COMPILED_PATH",
realpath(storage_path("framework/views")),
),
];