Update framework to version 6.3

This commit is contained in:
Jeroen De Meerleer 2023-06-27 12:15:30 +02:00
parent de9b9380c2
commit ec1b3313a2
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
16 changed files with 927 additions and 820 deletions

View File

@ -11,25 +11,25 @@
"ext-openssl": "*", "ext-openssl": "*",
"ext-pcntl": "*", "ext-pcntl": "*",
"ext-posix": "*", "ext-posix": "*",
"doctrine/doctrine-bundle": "^2.9", "doctrine/doctrine-bundle": "^2.10",
"doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/doctrine-migrations-bundle": "^3.2",
"doctrine/orm": "^2.14", "doctrine/orm": "^2.15",
"guzzlehttp/guzzle": "^7.5", "guzzlehttp/guzzle": "^7.7",
"phpseclib/phpseclib": "^3.0", "phpseclib/phpseclib": "^3.0",
"scienta/doctrine-json-functions": "^5.2", "scienta/doctrine-json-functions": "^5.3",
"symfony/console": "^6.2", "symfony/console": "^6.3",
"symfony/crowdin-translation-provider": "^6.2", "symfony/crowdin-translation-provider": "^6.3",
"symfony/dotenv": "^6.2", "symfony/dotenv": "^6.3",
"symfony/flex": "^2.2", "symfony/flex": "^2.3",
"symfony/framework-bundle": "^6.2", "symfony/framework-bundle": "^6.3",
"symfony/mailer": "^6.2", "symfony/mailer": "^6.3",
"symfony/proxy-manager-bridge": "^6.2", "symfony/proxy-manager-bridge": "^6.3",
"symfony/runtime": "^6.2", "symfony/runtime": "^6.3",
"symfony/security-bundle": "^6.2", "symfony/security-bundle": "^6.3",
"symfony/translation": "^6.2", "symfony/translation": "^6.3",
"symfony/twig-bundle": "^6.2", "symfony/twig-bundle": "^6.3",
"symfony/webpack-encore-bundle": "^v1.16", "symfony/webpack-encore-bundle": "^v2.0",
"symfony/yaml": "^6.2" "symfony/yaml": "^6.3"
}, },
"config": { "config": {
"allow-plugins": { "allow-plugins": {
@ -83,10 +83,10 @@
} }
}, },
"require-dev": { "require-dev": {
"symfony/debug-bundle": "^6.2", "symfony/debug-bundle": "^6.3",
"symfony/maker-bundle": "^v1.48", "symfony/maker-bundle": "^1.48",
"symfony/monolog-bundle": "^3.8", "symfony/monolog-bundle": "^3.0",
"symfony/stopwatch": "^6.2", "symfony/stopwatch": "^6.3",
"symfony/web-profiler-bundle": "^6.2" "symfony/web-profiler-bundle": "^6.3"
} }
} }

1425
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,12 @@ doctrine:
# IMPORTANT: You MUST configure your server version, # IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file) # either here or in the DATABASE_URL env var (see .env file)
#server_version: '13' #server_version: '15'
orm: orm:
auto_generate_proxy_classes: true auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
report_fields_where_declared: true
validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true auto_mapping: true
dql: dql:
@ -29,6 +32,7 @@ when@prod:
doctrine: doctrine:
orm: orm:
auto_generate_proxy_classes: false auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver: query_cache_driver:
type: pool type: pool
pool: doctrine.system_cache_pool pool: doctrine.system_cache_pool

View File

@ -3,4 +3,4 @@ doctrine_migrations:
# namespace is arbitrary but should be different from App\Migrations # namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded # as migrations classes should NOT be autoloaded
'DoctrineMigrations': '%kernel.project_dir%/migrations' 'DoctrineMigrations': '%kernel.project_dir%/migrations'
enable_profiler: '%kernel.debug%' enable_profiler: false

View File

@ -3,6 +3,7 @@ framework:
secret: '%env(APP_SECRET)%' secret: '%env(APP_SECRET)%'
#csrf_protection: true #csrf_protection: true
http_method_override: false http_method_override: false
handle_all_throwables: true
# Enables session support. Note that the session will ONLY be started if you read or write from it. # 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. # Remove or comment this section to explicitly disable session support.

View File

@ -1,5 +1,4 @@
security: security:
enable_authenticator_manager: true
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers: password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'

View File

@ -4,7 +4,9 @@ when@dev:
intercept_redirects: false intercept_redirects: false
framework: framework:
profiler: { only_exceptions: false } profiler:
only_exceptions: false
collect_serializer_data: true
when@test: when@test:
web_profiler: web_profiler:

View File

@ -25,14 +25,10 @@ webpack_encore:
# If you have multiple builds: # If you have multiple builds:
# builds: # builds:
# pass "frontend" as the 3rg arg to the Twig functions
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
# frontend: '%kernel.project_dir%/public/frontend/build' # frontend: '%kernel.project_dir%/public/frontend/build'
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) # pass the build name as the 3rd argument to the Twig functions
# Put in config/packages/prod/webpack_encore.yaml # {{ encore_entry_script_tags('entry1', null, 'frontend') }}
# cache: true
framework: framework:
assets: assets:

View File

@ -1,82 +1,5 @@
default: controllers:
path: '/' resource:
controller: App\Controller\UserController::loginAction path: ../src/Controller/
namespace: App\Controller
login_check: type: attribute
path: '/login_check'
logout:
path: '/logout'
health:
path: '/health'
controller: App\Controller\SiteController::healthAction
favicon:
path: '/favicon.ico'
controller: App\Controller\SiteController::faviconAction
settings:
path: '/{_locale}/settings'
methods: [ 'GET' ]
controller: App\Controller\UserController::settingsAction
settings_save:
path: '/{_locale}/settings'
methods: [ 'POST' ]
controller: App\Controller\UserController::settingsSaveAction
default_locale:
path: '/{_locale}'
controller: App\Controller\UserController::loginAction
login:
path: '/{_locale}/login'
controller: App\Controller\UserController::loginAction
webhook:
path: '/hook/{id}/{token}'
controller: App\Controller\JobController::hookAction
requirements:
id: \d+
token: '[A-Za-z0-9]+'
job_index:
path: '/{_locale}/job'
controller: App\Controller\JobController::defaultAction
job_view:
path: '/{_locale}/job/{id}/{all}'
methods: [ 'GET' ]
controller: App\Controller\JobController::jobAction
defaults:
all: false
requirements:
id: \d+
all: (all|)
job_delete:
path: '/{_locale}/job/{id}'
methods: [ 'DELETE' ]
controller: App\Controller\JobController::jobAction
requirements:
id: \d+
job_edit:
path: '/{_locale}/job/{id}/edit'
controller: App\Controller\JobController::editAction
requirements:
id: \d+
job_run:
path: '/{_locale}/job/{id}/run/{timestamp}'
controller: App\Controller\JobController::runAction
requirements:
id: \d+
timestamp: \d+
defaults:
timestamp: 0
job_add:
path: '/{_locale}/job/add'
controller: App\Controller\JobController::addAction

View File

@ -13,14 +13,19 @@
"moment": "^2.29" "moment": "^2.29"
}, },
"devDependencies": { "devDependencies": {
"@symfony/webpack-encore": "^4.3", "@babel/core": "^7.17.0",
"core-js": "^3.30", "@babel/preset-env": "^7.16.0",
"sass": "^1.62", "@symfony/webpack-encore": "^4.0.0",
"sass-loader": "^13.2" "core-js": "^3.23.0",
"regenerator-runtime": "^0.13.9",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-notifier": "^1.15.0"
}, },
"scripts": { "scripts": {
"dev-server": "encore dev-server",
"dev": "encore dev",
"watch": "encore dev --watch", "watch": "encore dev --watch",
"build-dev": "encore dev", "build": "encore production --progress"
"build": "encore prod"
} }
} }

View File

@ -11,10 +11,12 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Contracts\Translation\TranslatorInterface;
class JobController extends AbstractController class JobController extends AbstractController
{ {
#[Route('/{_locale}/job', name: 'job_index')]
public function defaultAction(ManagerRegistry $doctrine): Response public function defaultAction(ManagerRegistry $doctrine): Response
{ {
$jobRepo = $doctrine->getRepository(Job::class); $jobRepo = $doctrine->getRepository(Job::class);
@ -22,23 +24,27 @@ class JobController extends AbstractController
return $this->render('job/index.html.twig', ['jobs' => $jobs]); return $this->render('job/index.html.twig', ['jobs' => $jobs]);
} }
public function jobAction(Request $request, ManagerRegistry $doctrine, int $id, mixed $all = false): Response #[Route('/{_locale}/job/{id}/{all}', name: 'job_view', methods: ['GET'], defaults: [ 'all' => false ], requirements: ['id' => '\d+', 'all' => '(all|)'])]
public function viewAction(Request $request, ManagerRegistry $doctrine, int $id, mixed $all = false): Response
{ {
$jobRepo = $doctrine->getRepository(Job::class); $jobRepo = $doctrine->getRepository(Job::class);
$runRepo = $doctrine->getRepository(Run::class); $runRepo = $doctrine->getRepository(Run::class);
if($request->getMethod() == 'GET') { $job = $jobRepo->find($id);
$job = $jobRepo->find($id); $runs = $runRepo->getRunsForJob($job, $all != 'all');
$runs = $runRepo->getRunsForJob($job, $all != 'all'); return $this->render('job/view.html.twig', ['job' => $job, 'runs' => $runs, 'allruns' => $all == 'all']);
return $this->render('job/view.html.twig', ['job' => $job, 'runs' => $runs, 'allruns' => $all == 'all']);
} elseif($request->getMethod() == 'DELETE') {
$success = $jobRepo->deleteJob($id);
$this->addFlash('success', 'job.index.flashes.jobdeleted');
return new JsonResponse(['return_path' => $this->GenerateUrl('job_index')]);
}
return new JsonResponse(['success'=>false, 'message' => 'Your request is invalid'], Response::HTTP_BAD_REQUEST);
} }
#[Route('/{_locale}/job/{id}', name: 'job_delete', methods: ['DELETE'], defaults: [ 'all' => false ], requirements: ['id' => '\d+', 'all' => '(all|)'])]
public function deleteAction(Request $request, ManagerRegistry $doctrine, int $id, mixed $all = false): Response
{
$jobRepo = $doctrine->getRepository(Job::class);
$success = $jobRepo->deleteJob($id);
$this->addFlash('success', 'job.index.flashes.jobdeleted');
return new JsonResponse(['return_path' => $this->GenerateUrl('job_index')]);
}
#[Route('/{_locale}/job/{id}/edit', name: 'job_edit', requirements: ['id' => '\d+'])]
public function editAction(Request $request, ManagerRegistry $doctrine, int $id): Response public function editAction(Request $request, ManagerRegistry $doctrine, int $id): Response
{ {
if($request->getMethod() == 'GET') { if($request->getMethod() == 'GET') {
@ -61,6 +67,7 @@ class JobController extends AbstractController
return new JsonResponse(['success'=>false, 'message' => 'Your request is invalid'], Response::HTTP_BAD_REQUEST); return new JsonResponse(['success'=>false, 'message' => 'Your request is invalid'], Response::HTTP_BAD_REQUEST);
} }
#[Route('/{_locale}/job/add', name: 'job_add')]
public function addAction(Request $request, ManagerRegistry $doctrine): Response public function addAction(Request $request, ManagerRegistry $doctrine): Response
{ {
if($request->getMethod() == 'GET') { if($request->getMethod() == 'GET') {
@ -80,7 +87,7 @@ class JobController extends AbstractController
return new Response('Not implemented yet', Response::HTTP_TOO_EARLY); return new Response('Not implemented yet', Response::HTTP_TOO_EARLY);
} }
} }
#[Route('/{_locale}/job/{id}/run/{timestamp}', name: 'job_run', defaults: ['timestamp' => 0 ], requirements: ['id' => '\d+', 'timestamp' => '\d+'])]
public function runAction(Request $request, ManagerRegistry $doctrine, TranslatorInterface $translator, int $id, int $timestamp): JsonResponse public function runAction(Request $request, ManagerRegistry $doctrine, TranslatorInterface $translator, int $id, int $timestamp): JsonResponse
{ {
if($request->getMethod() == 'GET') { if($request->getMethod() == 'GET') {
@ -112,6 +119,7 @@ class JobController extends AbstractController
return new JsonResponse(['success'=>false, 'message' => 'Your request is invalid'], Response::HTTP_BAD_REQUEST); return new JsonResponse(['success'=>false, 'message' => 'Your request is invalid'], Response::HTTP_BAD_REQUEST);
} }
#[Route('/hook/{id}/{token}', name: 'webhook', requirements: ['id' => '\d+', 'token' => '[A-Za-z0-9]+'])]
public function hookAction(Request $request, ManagerRegistry $doctrine, int $id, string $token) public function hookAction(Request $request, ManagerRegistry $doctrine, int $id, string $token)
{ {
$jobRepo = $doctrine->getRepository(Job::class); $jobRepo = $doctrine->getRepository(Job::class);

View File

@ -10,10 +10,12 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Routing\Annotation\Route;
class SiteController extends AbstractController class SiteController extends AbstractController
{ {
#[Route('/health', name: 'health')]
public function healthAction(Request $request, ManagerRegistry $doctrine, KernelInterface $kernel) public function healthAction(Request $request, ManagerRegistry $doctrine, KernelInterface $kernel)
{ {
$em = $doctrine->getManager(); $em = $doctrine->getManager();
@ -28,6 +30,7 @@ class SiteController extends AbstractController
return new JsonResponse($return, $return['DaemonRunning'] ? 200 : 500); return new JsonResponse($return, $return['DaemonRunning'] ? 200 : 500);
} }
#[Route('/favicon.ico', name: 'favicon')]
public function faviconAction(Request $request) public function faviconAction(Request $request)
{ {
return new Response('', 200); return new Response('', 200);

View File

@ -11,10 +11,13 @@ use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class UserController extends AbstractController class UserController extends AbstractController
{ {
#[Route('/', name: 'default')]
public function loginAction(Request $request, AuthenticationUtils $authenticationUtils): Response public function loginAction(Request $request, AuthenticationUtils $authenticationUtils): Response
{ {
if($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) { if($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
@ -42,13 +45,14 @@ class UserController extends AbstractController
]); ]);
} }
#[Route('/{_locale}/settings', name: 'settings', methods: ['GET'])]
public function settingsAction(Request $request) public function settingsAction(Request $request)
{ {
$params['locales'] = $this->getParameter('enabled_locales'); $params['locales'] = $this->getParameter('enabled_locales');
$params['user'] = $this->getUser(); $params['user'] = $this->getUser();
return $this->render('settings.html.twig', $params); return $this->render('settings.html.twig', $params);
} }
#[Route('/{_locale}/settings', name: 'settings_save', methods: ['POST'])]
public function settingsSaveAction(Request $request, ManagerRegistry $em, UserPasswordHasherInterface $passwordHasher) public function settingsSaveAction(Request $request, ManagerRegistry $em, UserPasswordHasherInterface $passwordHasher)
{ {
$session = $request->getSession(); $session = $request->getSession();
@ -94,12 +98,14 @@ class UserController extends AbstractController
return $this->redirect($this->generateUrl($route, ['_locale' => $locale])); return $this->redirect($this->generateUrl($route, ['_locale' => $locale]));
} }
#[Route('/logout', name: 'logout')]
public function logoutAction(): void public function logoutAction(): void
{ {
// controller can be blank: it will never be called! // controller can be blank: it will never be called!
throw new \Exception('Don\'t forget to activate logout in security.yaml'); throw new \Exception('Don\'t forget to activate logout in security.yaml');
} }
#[Route('/login_check', name: 'login_check')]
public function loginCheckAction(): void public function loginCheckAction(): void
{ {

View File

@ -24,12 +24,12 @@
"version": "v0.5.3" "version": "v0.5.3"
}, },
"doctrine/doctrine-bundle": { "doctrine/doctrine-bundle": {
"version": "2.6", "version": "2.10",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "2.4", "version": "2.10",
"ref": "ddddd8249dd55bbda16fa7a45bb7499ef6f8e90e" "ref": "f0d8c9a4da17815830aac0d63e153a940ae176bb"
}, },
"files": [ "files": [
"config/packages/doctrine.yaml", "config/packages/doctrine.yaml",
@ -41,9 +41,9 @@
"version": "3.2", "version": "3.2",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "3.1", "version": "3.1",
"ref": "ee609429c9ee23e22d6fa5728211768f51ed2818" "ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33"
}, },
"files": [ "files": [
"config/packages/doctrine_migrations.yaml", "config/packages/doctrine_migrations.yaml",
@ -104,18 +104,6 @@
"paragonie/random_compat": { "paragonie/random_compat": {
"version": "v9.99.100" "version": "v9.99.100"
}, },
"pentatrion/vite-bundle": {
"version": "1.2",
"recipe": {
"repo": "github.com/symfony/recipes-contrib",
"branch": "main",
"version": "1.0",
"ref": "33d48a1c831b2d29641175c8320e66a9f1c9911f"
},
"files": [
"config/routes/dev/pentatrion_vite.yaml"
]
},
"phpseclib/phpseclib": { "phpseclib/phpseclib": {
"version": "3.0.14" "version": "3.0.14"
}, },
@ -168,12 +156,12 @@
] ]
}, },
"symfony/crowdin-translation-provider": { "symfony/crowdin-translation-provider": {
"version": "6.1", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "main", "branch": "main",
"version": "5.3", "version": "5.3",
"ref": "8acdcff2acee247e79f16ed0b2abc8fd53cf0d30" "ref": "9f5f1508bc80ed56c8a3ae7febc53a8aa982e424"
} }
}, },
"symfony/debug-bundle": { "symfony/debug-bundle": {
@ -216,24 +204,24 @@
"version": "v6.0.3" "version": "v6.0.3"
}, },
"symfony/flex": { "symfony/flex": {
"version": "2.1", "version": "2.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "1.0", "version": "1.0",
"ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
}, },
"files": [ "files": [
".env" ".env"
] ]
}, },
"symfony/framework-bundle": { "symfony/framework-bundle": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "5.4", "version": "6.2",
"ref": "3cd216a4d007b78d8554d44a5b1c0a446dab24fb" "ref": "af47254c5e4cd543e6af3e4508298ffebbdaddd3"
}, },
"files": [ "files": [
"config/packages/cache.yaml", "config/packages/cache.yaml",
@ -259,12 +247,12 @@
"version": "v6.0.7" "version": "v6.0.7"
}, },
"symfony/mailer": { "symfony/mailer": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "4.3", "version": "4.3",
"ref": "97a61eabb351d7f6cb7702039bcfe07fe9d7e03c" "ref": "2bf89438209656b85b9a49238c4467bff1b1f939"
}, },
"files": [ "files": [
"config/packages/mailer.yaml" "config/packages/mailer.yaml"
@ -325,12 +313,12 @@
"version": "v6.0.6" "version": "v6.0.6"
}, },
"symfony/routing": { "symfony/routing": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "6.0", "version": "6.2",
"ref": "eb3b377a4dc07006c4bdb2c773652cc9434f5246" "ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6"
}, },
"files": [ "files": [
"config/packages/routing.yaml", "config/packages/routing.yaml",
@ -341,12 +329,12 @@
"version": "v6.0.7" "version": "v6.0.7"
}, },
"symfony/security-bundle": { "symfony/security-bundle": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "5.3", "version": "6.0",
"ref": "98f1f2b0d635908c2b40f3675da2d23b1a069d30" "ref": "8a5b112826f7d3d5b07027f93786ae11a1c7de48"
}, },
"files": [ "files": [
"config/packages/security.yaml" "config/packages/security.yaml"
@ -390,12 +378,12 @@
"version": "v6.0.7" "version": "v6.0.7"
}, },
"symfony/twig-bundle": { "symfony/twig-bundle": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "5.4", "version": "6.3",
"ref": "bb2178c57eee79e6be0b297aa96fc0c0def81387" "ref": "b7772eb20e92f3fb4d4fe756e7505b4ba2ca1a2c"
}, },
"files": [ "files": [
"config/packages/twig.yaml", "config/packages/twig.yaml",
@ -409,12 +397,12 @@
"version": "v6.0.7" "version": "v6.0.7"
}, },
"symfony/web-profiler-bundle": { "symfony/web-profiler-bundle": {
"version": "6.0", "version": "6.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "main",
"version": "5.3", "version": "6.1",
"ref": "24bbc3d84ef2f427f82104f766014e799eefcc3e" "ref": "e42b3f0177df239add25373083a564e5ead4e13a"
}, },
"files": [ "files": [
"config/packages/web_profiler.yaml", "config/packages/web_profiler.yaml",
@ -422,18 +410,15 @@
] ]
}, },
"symfony/webpack-encore-bundle": { "symfony/webpack-encore-bundle": {
"version": "1.15", "version": "2.0",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "main", "branch": "main",
"version": "1.10", "version": "2.0",
"ref": "2e458cc7e6f1df1dad890eb104b81e4f302c9bd4" "ref": "13ebe04e25085e2ff0bcb0f9218b561d8b5089f3"
}, },
"files": [ "files": [
"assets/app.js", "assets/app.js",
"assets/bootstrap.js",
"assets/controllers.json",
"assets/controllers/hello_controller.js",
"assets/styles/app.css", "assets/styles/app.css",
"config/packages/webpack_encore.yaml", "config/packages/webpack_encore.yaml",
"package.json", "package.json",

View File

@ -1,8 +1,8 @@
<!doctype html> <!DOCTYPE html>
<html class="h-100"> <html class="h-100">
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ "title" | trans }} :: {% block title %}{% endblock %}</title> <title>{{ "title" | trans }} :: {% block title %}{% endblock %}</title>
{% block styles %}{% endblock %} {% block styles %}{% endblock %}
@ -39,5 +39,4 @@
{% block extrahtml %}{% endblock %} {% block extrahtml %}{% endblock %}
{{ include('footer.html.twig') }} {{ include('footer.html.twig') }}
</body> </body>
</html> </html>

View File

@ -11,7 +11,7 @@ Encore
.setOutputPath('public/build/') .setOutputPath('public/build/')
// public path used by the web server to access the output path // public path used by the web server to access the output path
.setPublicPath('/build') .setPublicPath('/build')
// only needed for CDN's or sub-directory deploy // only needed for CDN's or subdirectory deploy
//.setManifestKeyPrefix('build/') //.setManifestKeyPrefix('build/')
/* /*
@ -47,14 +47,15 @@ Encore
// enables hashed filenames (e.g. app.abc123.css) // enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction()) .enableVersioning(Encore.isProduction())
.configureBabel((config) => { // configure Babel
config.plugins.push('@babel/plugin-proposal-class-properties'); // .configureBabel((config) => {
}) // config.plugins.push('@babel/a-babel-plugin');
// })
// enables @babel/preset-env polyfills // enables and configure @babel/preset-env polyfills
.configureBabelPresetEnv((config) => { .configureBabelPresetEnv((config) => {
config.useBuiltIns = 'usage'; config.useBuiltIns = 'usage';
config.corejs = 3; config.corejs = '3.23';
}) })
// enables Sass/SCSS support // enables Sass/SCSS support