From 09efe82068b258af5b33e672188489d97b398341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edi=20Modri=C4=87?= Date: Mon, 25 Apr 2022 16:51:16 +0200 Subject: [PATCH] Upgrade to Ibexa 4.1 --- .env | 4 +- composer.json | 4 +- config/packages/debug.yaml | 5 ++ config/packages/dev/debug.yaml | 4 - config/packages/dev/mailer.yaml | 3 - config/packages/dev/monolog.yaml | 19 ---- config/packages/dev/web_profiler.yaml | 11 --- config/packages/dev/webpack_encore.yaml | 4 - config/packages/doctrine.yaml | 25 ++++++ config/packages/monolog.yaml | 61 +++++++++++++ config/packages/prod/deprecations.yaml | 8 -- config/packages/prod/doctrine.yaml | 17 ---- config/packages/prod/monolog.yaml | 17 ---- config/packages/prod/webpack_encore.yaml | 4 - config/packages/test/doctrine.yaml | 4 - config/packages/test/monolog.yaml | 12 --- config/packages/test/validator.yaml | 3 - config/packages/test/web_profiler.yaml | 6 -- config/packages/test/webpack_encore.yaml | 2 - config/packages/validator.yaml | 5 ++ config/packages/web_profiler.yaml | 20 +++++ config/packages/webpack_encore.yaml | 16 ++++ config/routes/dev/web_profiler.yaml | 7 -- config/routes/web_profiler.yaml | 8 ++ ibexa.webpack.config.js | 8 ++ symfony.lock | 108 +++++++++++++++-------- 26 files changed, 225 insertions(+), 160 deletions(-) create mode 100644 config/packages/debug.yaml delete mode 100644 config/packages/dev/debug.yaml delete mode 100644 config/packages/dev/mailer.yaml delete mode 100644 config/packages/dev/monolog.yaml delete mode 100644 config/packages/dev/web_profiler.yaml delete mode 100644 config/packages/dev/webpack_encore.yaml create mode 100644 config/packages/monolog.yaml delete mode 100644 config/packages/prod/deprecations.yaml delete mode 100644 config/packages/prod/doctrine.yaml delete mode 100644 config/packages/prod/monolog.yaml delete mode 100644 config/packages/prod/webpack_encore.yaml delete mode 100644 config/packages/test/doctrine.yaml delete mode 100644 config/packages/test/monolog.yaml delete mode 100644 config/packages/test/validator.yaml delete mode 100644 config/packages/test/web_profiler.yaml delete mode 100644 config/packages/test/webpack_encore.yaml create mode 100644 config/packages/web_profiler.yaml delete mode 100644 config/routes/dev/web_profiler.yaml create mode 100644 config/routes/web_profiler.yaml diff --git a/.env b/.env index 979c10bfe..d779ff9e9 100644 --- a/.env +++ b/.env @@ -21,7 +21,7 @@ APP_SECRET=ThisTokenIsNotSoSecretChangeIt ###< symfony/framework-bundle ### ###> symfony/mailer ### -# MAILER_DSN=smtp://localhost +# MAILER_DSN=null://null ###< symfony/mailer ### ###> doctrine/doctrine-bundle ### @@ -29,7 +29,7 @@ APP_SECRET=ThisTokenIsNotSoSecretChangeIt # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml # # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" -# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7" +# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7&charset=utf8mb4" DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/app?serverVersion=13&charset=utf8" ###< doctrine/doctrine-bundle ### diff --git a/composer.json b/composer.json index 39318c543..75159b001 100644 --- a/composer.json +++ b/composer.json @@ -22,9 +22,9 @@ "doctrine/doctrine-bundle": "^2.4.2", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.11", - "ibexa/oss": "~4.0.1", + "ibexa/oss": "~4.1.0", "phpdocumentor/reflection-docblock": "^5.3", - "phpstan/phpdoc-parser": "^1.2", + "phpstan/phpdoc-parser": "^1.4", "sensio/framework-extra-bundle": "^6.1", "symfony/asset": "5.4.*", "symfony/console": "5.4.*", diff --git a/config/packages/debug.yaml b/config/packages/debug.yaml new file mode 100644 index 000000000..ad874afdd --- /dev/null +++ b/config/packages/debug.yaml @@ -0,0 +1,5 @@ +when@dev: + debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/dev/debug.yaml b/config/packages/dev/debug.yaml deleted file mode 100644 index 26d4e53d2..000000000 --- a/config/packages/dev/debug.yaml +++ /dev/null @@ -1,4 +0,0 @@ -debug: - # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. - # See the "server:dump" command to start a new server. - dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/dev/mailer.yaml b/config/packages/dev/mailer.yaml deleted file mode 100644 index 59f449a90..000000000 --- a/config/packages/dev/mailer.yaml +++ /dev/null @@ -1,3 +0,0 @@ -framework: - mailer: - dsn: 'null://null' diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml deleted file mode 100644 index b45b2d02d..000000000 --- a/config/packages/dev/monolog.yaml +++ /dev/null @@ -1,19 +0,0 @@ -monolog: - handlers: - main: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug - channels: ["!event", "!doctrine"] - # uncomment to get logging in your browser - # you may have to allow bigger header sizes in your Web server configuration - #firephp: - # type: firephp - # level: info - #chromephp: - # type: chromephp - # level: info - console: - type: console - process_psr_3_messages: false - channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml deleted file mode 100644 index 664a0a296..000000000 --- a/config/packages/dev/web_profiler.yaml +++ /dev/null @@ -1,11 +0,0 @@ -web_profiler: - toolbar: true - intercept_redirects: false - # By default disable showing of Admin UI "notifications/count" in web debug toolbar AJAX calls list to make it more manageable. - excluded_ajax_paths: '(^/(app(_[\\w]+)?\\.php/)?_wdt)|/notifications/count' - -framework: - profiler: - only_exceptions: false - # Optional: Skips generating profiles for subrequests by default due to dev performance - only_main_requests: true diff --git a/config/packages/dev/webpack_encore.yaml b/config/packages/dev/webpack_encore.yaml deleted file mode 100644 index 3310bf497..000000000 --- a/config/packages/dev/webpack_encore.yaml +++ /dev/null @@ -1,4 +0,0 @@ -webpack_encore: - builds: - # The path where Encore is building the assets - i.e. Encore.setOutputPath() - app: '%kernel.project_dir%/public/assets/app/build_dev' diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index 4d59967b4..8fe1dd407 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -15,3 +15,28 @@ doctrine: dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App + +when@test: + doctrine: + dbal: + # "TEST_TOKEN" is typically set by ParaTest + dbname_suffix: '_test%env(default::TEST_TOKEN)%' + +when@prod: + doctrine: + orm: + auto_generate_proxy_classes: false + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + + framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml new file mode 100644 index 000000000..3a969acc6 --- /dev/null +++ b/config/packages/monolog.yaml @@ -0,0 +1,61 @@ +monolog: + channels: + - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists + +when@dev: + monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event", "!doctrine"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] + +when@test: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + channels: ["!event"] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + +when@prod: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + buffer_size: 50 # How many messages should be saved? Prevent memory leaks + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + formatter: monolog.formatter.json + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + channels: [deprecation] + path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/config/packages/prod/deprecations.yaml b/config/packages/prod/deprecations.yaml deleted file mode 100644 index 920a06197..000000000 --- a/config/packages/prod/deprecations.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists -#monolog: -# channels: [deprecation] -# handlers: -# deprecation: -# type: stream -# channels: [deprecation] -# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml deleted file mode 100644 index 17299e289..000000000 --- a/config/packages/prod/doctrine.yaml +++ /dev/null @@ -1,17 +0,0 @@ -doctrine: - orm: - auto_generate_proxy_classes: false - query_cache_driver: - type: pool - pool: doctrine.system_cache_pool - result_cache_driver: - type: pool - pool: doctrine.result_cache_pool - -framework: - cache: - pools: - doctrine.result_cache_pool: - adapter: cache.app - doctrine.system_cache_pool: - adapter: cache.system diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml deleted file mode 100644 index 4112963b6..000000000 --- a/config/packages/prod/monolog.yaml +++ /dev/null @@ -1,17 +0,0 @@ -monolog: - handlers: - main: - type: fingers_crossed - action_level: error - handler: nested - excluded_http_codes: [404, 405] - buffer_size: 50 # How many messages should be saved? Prevent memory leaks - nested: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug - formatter: monolog.formatter.json - console: - type: console - process_psr_3_messages: false - channels: ["!event", "!doctrine"] diff --git a/config/packages/prod/webpack_encore.yaml b/config/packages/prod/webpack_encore.yaml deleted file mode 100644 index 07a1244f5..000000000 --- a/config/packages/prod/webpack_encore.yaml +++ /dev/null @@ -1,4 +0,0 @@ -webpack_encore: - builds: - # The path where Encore is building the assets - i.e. Encore.setOutputPath() - app: '%kernel.project_dir%/public/assets/app/build' diff --git a/config/packages/test/doctrine.yaml b/config/packages/test/doctrine.yaml deleted file mode 100644 index 34c2ebcca..000000000 --- a/config/packages/test/doctrine.yaml +++ /dev/null @@ -1,4 +0,0 @@ -doctrine: - dbal: - # "TEST_TOKEN" is typically set by ParaTest - dbname_suffix: '_test%env(default::TEST_TOKEN)%' diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml deleted file mode 100644 index fc40641dc..000000000 --- a/config/packages/test/monolog.yaml +++ /dev/null @@ -1,12 +0,0 @@ -monolog: - handlers: - main: - type: fingers_crossed - action_level: error - handler: nested - excluded_http_codes: [404, 405] - channels: ["!event"] - nested: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml deleted file mode 100644 index 1e5ab7880..000000000 --- a/config/packages/test/validator.yaml +++ /dev/null @@ -1,3 +0,0 @@ -framework: - validation: - not_compromised_password: false diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml deleted file mode 100644 index 03752de21..000000000 --- a/config/packages/test/web_profiler.yaml +++ /dev/null @@ -1,6 +0,0 @@ -web_profiler: - toolbar: false - intercept_redirects: false - -framework: - profiler: { collect: false } diff --git a/config/packages/test/webpack_encore.yaml b/config/packages/test/webpack_encore.yaml deleted file mode 100644 index 02a765150..000000000 --- a/config/packages/test/webpack_encore.yaml +++ /dev/null @@ -1,2 +0,0 @@ -#webpack_encore: -# strict_mode: false diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml index 350786a13..0201281d3 100644 --- a/config/packages/validator.yaml +++ b/config/packages/validator.yaml @@ -6,3 +6,8 @@ framework: # For instance, basic validation constraints will be inferred from Doctrine's metadata. #auto_mapping: # App\Entity\: [] + +when@test: + framework: + validation: + not_compromised_password: false diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml new file mode 100644 index 000000000..1540942f1 --- /dev/null +++ b/config/packages/web_profiler.yaml @@ -0,0 +1,20 @@ +when@dev: + web_profiler: + toolbar: true + intercept_redirects: false + # By default disable showing of Admin UI "notifications/count" in web debug toolbar AJAX calls list to make it more manageable. + excluded_ajax_paths: '(^/(app(_[\\w]+)?\\.php/)?_wdt)|/notifications/count' + + framework: + profiler: + only_exceptions: false + # Optional: Skips generating profiles for subrequests by default due to dev performance + only_main_requests: true + +when@test: + web_profiler: + toolbar: false + intercept_redirects: false + + framework: + profiler: { collect: false } diff --git a/config/packages/webpack_encore.yaml b/config/packages/webpack_encore.yaml index d928fb464..2a3a50696 100644 --- a/config/packages/webpack_encore.yaml +++ b/config/packages/webpack_encore.yaml @@ -33,3 +33,19 @@ webpack_encore: # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) # Put in config/packages/prod/webpack_encore.yaml # cache: true + +when@dev: + webpack_encore: + builds: + # The path where Encore is building the assets - i.e. Encore.setOutputPath() + app: '%kernel.project_dir%/public/assets/app/build_dev' + +when@prod: + webpack_encore: + builds: + # The path where Encore is building the assets - i.e. Encore.setOutputPath() + app: '%kernel.project_dir%/public/assets/app/build' + +#when@test: +# webpack_encore: +# strict_mode: false diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml deleted file mode 100644 index c82beff2f..000000000 --- a/config/routes/dev/web_profiler.yaml +++ /dev/null @@ -1,7 +0,0 @@ -web_profiler_wdt: - resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' - prefix: /_wdt - -web_profiler_profiler: - resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' - prefix: /_profiler diff --git a/config/routes/web_profiler.yaml b/config/routes/web_profiler.yaml new file mode 100644 index 000000000..8d85319fd --- /dev/null +++ b/config/routes/web_profiler.yaml @@ -0,0 +1,8 @@ +when@dev: + web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + + web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/ibexa.webpack.config.js b/ibexa.webpack.config.js index 3c613f76d..563e47311 100644 --- a/ibexa.webpack.config.js +++ b/ibexa.webpack.config.js @@ -1,6 +1,8 @@ const bundles = require('./var/encore/ibexa.config.js'); const ibexaConfigManager = require('./ibexa.webpack.config.manager.js'); const configManagers = require('./var/encore/ibexa.config.manager.js'); +const configSetups = require('./var/encore/ibexa.config.setup.js'); +const path = require('path'); module.exports = (Encore) => { Encore.setOutputPath('public/assets/ibexa/build') @@ -17,6 +19,12 @@ module.exports = (Encore) => { .enableReactPreset() .enableSingleRuntimeChunk(); + configSetups.forEach((configSetupPath) => { + const setupConfig = require(configSetupPath); + + setupConfig(Encore); + }); + bundles.forEach((configPath) => { const addEntries = require(configPath); diff --git a/symfony.lock b/symfony.lock index ad0281753..34b93f2e3 100644 --- a/symfony.lock +++ b/symfony.lock @@ -1,99 +1,137 @@ { "ibexa/oss": { - "version": "4.0.2", + "version": "4.1", + "recipe": { + "repo": "github.com/ibexa/recipes", + "branch": "master-serverless", + "version": "4.1", + "ref": "b17a54c3e2b97f4a3683cda7e9521f76d40c31aa" + }, "files": [ - "config/packages/dfs/dfs.yaml", - "config/packages/ibexa_welcome_page.yaml", - "config/packages/ibexa_assets.yaml", "config/packages/cache_pool/cache.memcached.yaml", - "config/packages/cache_pool/cache.tagaware.filesystem.yaml", "config/packages/cache_pool/cache.redis.yaml", + "config/packages/cache_pool/cache.tagaware.filesystem.yaml", + "config/packages/dfs/dfs.yaml", + "config/packages/graphql.yaml", "config/packages/ibexa.yaml", - "config/packages/ibexa_solr.yaml", "config/packages/ibexa_admin_ui.yaml", - "config/packages/ibexa_http_cache.yaml", - "config/packages/security.yaml", + "config/packages/ibexa_assets.yaml", "config/packages/ibexa_doctrine_schema.yaml", + "config/packages/ibexa_http_cache.yaml", "config/packages/ibexa_jms_translation.yaml", - "config/packages/graphql.yaml", - "config/routes/ibexa_content_forms.yaml", + "config/packages/ibexa_solr.yaml", + "config/packages/ibexa_welcome_page.yaml", + "config/packages/security.yaml", + "config/routes/graphql.yaml", "config/routes/ibexa.yaml", "config/routes/ibexa_admin_ui.yaml", + "config/routes/ibexa_content_forms.yaml", + "config/routes/ibexa_fieldtype_query.yaml", "config/routes/ibexa_http_cache.yaml", - "config/routes/ibexa_search.yaml", "config/routes/ibexa_rest.yaml", + "config/routes/ibexa_search.yaml", "config/routes/ibexa_system_info.yaml", - "config/routes/ibexa_fieldtype_query.yaml", "config/routes/ibexa_user.yaml", - "config/routes/graphql.yaml", - "package.json", + "ibexa.webpack.config.js", "ibexa.webpack.config.manager.js", - "webpack.config.js", "ibexa.webpack.custom.configs.js", - "ibexa.webpack.config.js", + "package.json", + "webpack.config.js", "templates/themes/standard/full/welcome_page.html.twig", "templates/themes/standard/pagelayout.html.twig", "translations/ibexa_welcome_page.en.xlf", - "assets/images/file-text-info-icon.svg", "assets/images/conversation-chat-icon.svg", + "assets/images/file-text-info-icon.svg", "assets/images/folder-icon.svg", "assets/scss/welcome-page.scss" ] }, "symfony/debug-bundle": { - "version": "5.4.3", + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "5aa8aa48234c8eb6dbdd7b3cd5d791485d2cec4b" + }, "files": [ "config/packages/debug.yaml" ] }, "symfony/framework-bundle": { - "version": "5.4.5", + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.4", + "ref": "3cd216a4d007b78d8554d44a5b1c0a446dab24fb" + }, "files": [ - "config/services.yaml", "config/packages/cache.yaml", "config/packages/framework.yaml", - "config/routes/framework.yaml", "config/preload.php", + "config/routes/framework.yaml", + "config/services.yaml", "public/index.php", - "src/Kernel.php", - "src/Controller/.gitignore" + "src/Controller/.gitignore", + "src/Kernel.php" ] }, "symfony/monolog-bundle": { - "version": "3.7.1", + "version": "3.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.7", + "ref": "213676c4ec929f046dfde5ea8e97625b81bc0578" + }, "files": [ "config/packages/monolog.yaml" ] }, "symfony/routing": { - "version": "5.4.3", + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "85de1d8ae45b284c3c84b668171d2615049e698f" + }, "files": [ "config/packages/routing.yaml", "config/routes.yaml" ] }, - "symfony/twig-bundle": { - "version": "5.4.3", - "files": [ - "config/packages/twig.yaml", - "templates/base.html.twig" - ] + "symfony/twig-bridge": { + "version": "v5.4.7" }, "symfony/web-profiler-bundle": { - "version": "5.4.5", + "version": "5.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.3", + "ref": "24bbc3d84ef2f427f82104f766014e799eefcc3e" + }, "files": [ "config/packages/web_profiler.yaml", "config/routes/web_profiler.yaml" ] }, "symfony/webpack-encore-bundle": { - "version": "1.13.2", + "version": "1.13", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.10", + "ref": "2858aeed7e1d81a45365c049eb533cc8827e380b" + }, "files": [ "assets/app.js", + "assets/bootstrap.js", "assets/controllers.json", - "assets/styles/app.css", "assets/controllers/hello_controller.js", - "assets/bootstrap.js", + "assets/styles/app.css", "config/packages/webpack_encore.yaml", "package.json", "webpack.config.js"