@ -0,0 +1,19 @@ | |||
# In all environments, the following files are loaded if they exist, | |||
# the latter taking precedence over the former: | |||
# | |||
# * .env contains default values for the environment variables needed by the app | |||
# * .env.local uncommitted file with local overrides | |||
# * .env.$APP_ENV committed environment-specific defaults | |||
# * .env.$APP_ENV.local uncommitted environment-specific overrides | |||
# | |||
# Real environment variables win over .env files. | |||
# | |||
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. | |||
# | |||
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). | |||
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration | |||
###> symfony/framework-bundle ### | |||
APP_ENV=dev | |||
APP_SECRET=aa708f7c537a5c6d167229524aea0817 | |||
###< symfony/framework-bundle ### |
@ -0,0 +1,10 @@ | |||
###> symfony/framework-bundle ### | |||
/.env.local | |||
/.env.local.php | |||
/.env.*.local | |||
/config/secrets/prod/prod.decrypt.private.php | |||
/public/bundles/ | |||
/var/ | |||
/vendor/ | |||
###< symfony/framework-bundle ### |
@ -0,0 +1,43 @@ | |||
#!/usr/bin/env php | |||
<?php | |||
use App\Kernel; | |||
use Symfony\Bundle\FrameworkBundle\Console\Application; | |||
use Symfony\Component\Console\Input\ArgvInput; | |||
use Symfony\Component\Dotenv\Dotenv; | |||
use Symfony\Component\ErrorHandler\Debug; | |||
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) { | |||
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL; | |||
} | |||
set_time_limit(0); | |||
require dirname(__DIR__).'/vendor/autoload.php'; | |||
if (!class_exists(Application::class) || !class_exists(Dotenv::class)) { | |||
throw new LogicException('You need to add "symfony/framework-bundle" and "symfony/dotenv" as Composer dependencies.'); | |||
} | |||
$input = new ArgvInput(); | |||
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) { | |||
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); | |||
} | |||
if ($input->hasParameterOption('--no-debug', true)) { | |||
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); | |||
} | |||
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); | |||
if ($_SERVER['APP_DEBUG']) { | |||
umask(0000); | |||
if (class_exists(Debug::class)) { | |||
Debug::enable(); | |||
} | |||
} | |||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); | |||
$application = new Application($kernel); | |||
$application->run($input); |
@ -0,0 +1,61 @@ | |||
{ | |||
"type": "project", | |||
"license": "proprietary", | |||
"minimum-stability": "dev", | |||
"prefer-stable": true, | |||
"require": { | |||
"php": ">=7.2.5", | |||
"ext-ctype": "*", | |||
"ext-iconv": "*", | |||
"symfony/console": "5.2.*", | |||
"symfony/dotenv": "5.2.*", | |||
"symfony/flex": "^1.3.1", | |||
"symfony/framework-bundle": "5.2.*", | |||
"symfony/yaml": "5.2.*" | |||
}, | |||
"require-dev": { | |||
}, | |||
"config": { | |||
"optimize-autoloader": true, | |||
"preferred-install": { | |||
"*": "dist" | |||
}, | |||
"sort-packages": true | |||
}, | |||
"autoload": { | |||
"psr-4": { | |||
"App\\": "src/" | |||
} | |||
}, | |||
"autoload-dev": { | |||
"psr-4": { | |||
"App\\Tests\\": "tests/" | |||
} | |||
}, | |||
"replace": { | |||
"symfony/polyfill-ctype": "*", | |||
"symfony/polyfill-iconv": "*", | |||
"symfony/polyfill-php72": "*" | |||
}, | |||
"scripts": { | |||
"auto-scripts": { | |||
"cache:clear": "symfony-cmd", | |||
"assets:install %PUBLIC_DIR%": "symfony-cmd" | |||
}, | |||
"post-install-cmd": [ | |||
"@auto-scripts" | |||
], | |||
"post-update-cmd": [ | |||
"@auto-scripts" | |||
] | |||
}, | |||
"conflict": { | |||
"symfony/symfony": "*" | |||
}, | |||
"extra": { | |||
"symfony": { | |||
"allow-contrib": false, | |||
"require": "5.2.*" | |||
} | |||
} | |||
} |
@ -0,0 +1,5 @@ | |||
<?php | |||
return [ | |||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], | |||
]; |
@ -0,0 +1,19 @@ | |||
framework: | |||
cache: | |||
# Unique name of your app: used to compute stable namespaces for cache keys. | |||
#prefix_seed: your_vendor_name/app_name | |||
# The "app" cache stores to the filesystem by default. | |||
# The data in this cache should persist between deploys. | |||
# Other options include: | |||
# Redis | |||
#app: cache.adapter.redis | |||
#default_redis_provider: redis://localhost | |||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) | |||
#app: cache.adapter.apcu | |||
# Namespaced pools use the above "app" backend by default | |||
#pools: | |||
#my.dedicated.cache: null |
@ -0,0 +1,17 @@ | |||
# see https://symfony.com/doc/current/reference/configuration/framework.html | |||
framework: | |||
secret: '%env(APP_SECRET)%' | |||
#csrf_protection: true | |||
#http_method_override: true | |||
# Enables session support. Note that the session will ONLY be started if you read or write from it. | |||
# Remove or comment this section to explicitly disable session support. | |||
session: | |||
handler_id: null | |||
cookie_secure: auto | |||
cookie_samesite: lax | |||
#esi: true | |||
#fragments: true | |||
php_errors: | |||
log: true |
@ -0,0 +1,3 @@ | |||
framework: | |||
router: | |||
strict_requirements: null |
@ -0,0 +1,7 @@ | |||
framework: | |||
router: | |||
utf8: true | |||
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands. | |||
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands | |||
#default_uri: http://localhost |
@ -0,0 +1,4 @@ | |||
framework: | |||
test: true | |||
session: | |||
storage_id: session.storage.mock_file |
@ -0,0 +1,5 @@ | |||
<?php | |||
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) { | |||
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php'; | |||
} |
@ -0,0 +1,3 @@ | |||
#index: | |||
# path: / | |||
# controller: App\Controller\DefaultController::index |
@ -0,0 +1,3 @@ | |||
_errors: | |||
resource: '@FrameworkBundle/Resources/config/routing/errors.xml' | |||
prefix: /_error |
@ -0,0 +1,31 @@ | |||
# This file is the entry point to configure your own services. | |||
# Files in the packages/ subdirectory configure your dependencies. | |||
# Put parameters here that don't need to change on each machine where the app is deployed | |||
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration | |||
parameters: | |||
services: | |||
# default configuration for services in *this* file | |||
_defaults: | |||
autowire: true # Automatically injects dependencies in your services. | |||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. | |||
# makes classes in src/ available to be used as services | |||
# this creates a service per class whose id is the fully-qualified class name | |||
App\: | |||
resource: '../src/' | |||
exclude: | |||
- '../src/DependencyInjection/' | |||
- '../src/Entity/' | |||
- '../src/Kernel.php' | |||
- '../src/Tests/' | |||
# controllers are imported separately to make sure services can be injected | |||
# as action arguments even if you don't extend any base controller class | |||
App\Controller\: | |||
resource: '../src/Controller/' | |||
tags: ['controller.service_arguments'] | |||
# add more service definitions when explicit configuration is needed | |||
# please note that last definitions always *replace* previous ones |
@ -0,0 +1,22 @@ | |||
<?php | |||
use App\Kernel; | |||
use Symfony\Component\Dotenv\Dotenv; | |||
use Symfony\Component\ErrorHandler\Debug; | |||
use Symfony\Component\HttpFoundation\Request; | |||
require dirname(__DIR__).'/vendor/autoload.php'; | |||
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); | |||
if ($_SERVER['APP_DEBUG']) { | |||
umask(0000); | |||
Debug::enable(); | |||
} | |||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); | |||
$request = Request::createFromGlobals(); | |||
$response = $kernel->handle($request); | |||
$response->send(); | |||
$kernel->terminate($request, $response); |
@ -0,0 +1,38 @@ | |||
<?php | |||
namespace App; | |||
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; | |||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; | |||
use Symfony\Component\HttpKernel\Kernel as BaseKernel; | |||
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; | |||
class Kernel extends BaseKernel | |||
{ | |||
use MicroKernelTrait; | |||
protected function configureContainer(ContainerConfigurator $container): void | |||
{ | |||
$container->import('../config/{packages}/*.yaml'); | |||
$container->import('../config/{packages}/'.$this->environment.'/*.yaml'); | |||
if (is_file(\dirname(__DIR__).'/config/services.yaml')) { | |||
$container->import('../config/services.yaml'); | |||
$container->import('../config/{services}_'.$this->environment.'.yaml'); | |||
} elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) { | |||
(require $path)($container->withPath($path), $this); | |||
} | |||
} | |||
protected function configureRoutes(RoutingConfigurator $routes): void | |||
{ | |||
$routes->import('../config/{routes}/'.$this->environment.'/*.yaml'); | |||
$routes->import('../config/{routes}/*.yaml'); | |||
if (is_file(\dirname(__DIR__).'/config/routes.yaml')) { | |||
$routes->import('../config/routes.yaml'); | |||
} elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) { | |||
(require $path)($routes->withPath($path), $this); | |||
} | |||
} | |||
} |
@ -0,0 +1,147 @@ | |||
{ | |||
"php": { | |||
"version": "7.3" | |||
}, | |||
"psr/cache": { | |||
"version": "1.0.1" | |||
}, | |||
"psr/container": { | |||
"version": "1.0.0" | |||
}, | |||
"psr/event-dispatcher": { | |||
"version": "1.0.0" | |||
}, | |||
"psr/log": { | |||
"version": "1.1.3" | |||
}, | |||
"symfony/cache": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/cache-contracts": { | |||
"version": "v2.2.0" | |||
}, | |||
"symfony/config": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/console": { | |||
"version": "5.1", | |||
"recipe": { | |||
"repo": "github.com/symfony/recipes", | |||
"branch": "master", | |||
"version": "5.1", | |||
"ref": "c6d02bdfba9da13c22157520e32a602dbee8a75c" | |||
}, | |||
"files": [ | |||
"bin/console" | |||
] | |||
}, | |||
"symfony/dependency-injection": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/deprecation-contracts": { | |||
"version": "v2.2.0" | |||
}, | |||
"symfony/dotenv": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/error-handler": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/event-dispatcher": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/event-dispatcher-contracts": { | |||
"version": "v2.2.0" | |||
}, | |||
"symfony/filesystem": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/finder": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/flex": { | |||
"version": "1.0", | |||
"recipe": { | |||
"repo": "github.com/symfony/recipes", | |||
"branch": "master", | |||
"version": "1.0", | |||
"ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" | |||
}, | |||
"files": [ | |||
".env" | |||
] | |||
}, | |||
"symfony/framework-bundle": { | |||
"version": "5.2", | |||
"recipe": { | |||
"repo": "github.com/symfony/recipes", | |||
"branch": "master", | |||
"version": "5.2", | |||
"ref": "6ec87563dcc85cd0c48856dcfbfc29610506d250" | |||
}, | |||
"files": [ | |||
"config/packages/cache.yaml", | |||
"config/packages/framework.yaml", | |||
"config/packages/test/framework.yaml", | |||
"config/preload.php", | |||
"config/routes/dev/framework.yaml", | |||
"config/services.yaml", | |||
"public/index.php", | |||
"src/Controller/.gitignore", | |||
"src/Kernel.php" | |||
] | |||
}, | |||
"symfony/http-client-contracts": { | |||
"version": "v2.3.1" | |||
}, | |||
"symfony/http-foundation": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/http-kernel": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/polyfill-intl-grapheme": { | |||
"version": "v1.20.0" | |||
}, | |||
"symfony/polyfill-intl-normalizer": { | |||
"version": "v1.20.0" | |||
}, | |||
"symfony/polyfill-mbstring": { | |||
"version": "v1.20.0" | |||
}, | |||
"symfony/polyfill-php73": { | |||
"version": "v1.20.0" | |||
}, | |||
"symfony/polyfill-php80": { | |||
"version": "v1.20.0" | |||
}, | |||
"symfony/routing": { | |||
"version": "5.1", | |||
"recipe": { | |||
"repo": "github.com/symfony/recipes", | |||
"branch": "master", | |||
"version": "5.1", | |||
"ref": "b4f3e7c95e38b606eef467e8a42a8408fc460c43" | |||
}, | |||
"files": [ | |||
"config/packages/prod/routing.yaml", | |||
"config/packages/routing.yaml", | |||
"config/routes.yaml" | |||
] | |||
}, | |||
"symfony/service-contracts": { | |||
"version": "v2.2.0" | |||
}, | |||
"symfony/string": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/var-dumper": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/var-exporter": { | |||
"version": "v5.2.0-rc1" | |||
}, | |||
"symfony/yaml": { | |||
"version": "v5.2.0-rc1" | |||
} | |||
} |