Upgrade Notes
OpenDXP 1.3.0
- Bugfix: Fix Video Processor when TmpStore is missing
- Improvement: Use try-finally for disable/enable versioning
- Improvement: Refactor SQL queries: enforce parameterized bindings and consistent style
- Improvement: Refactor constants
- New Feature: add site custom settings
- New Feature: Introduce
GeneralHostResolverservice for centralized domain resolution, see docs
OpenDXP 1.2.2
- Bugfix: Update upgrade notes and handle migration cleanup in CoreBundle
- Bugfix: Update IgnoreCoreTablesFilterListener
OpenDXP 1.2.1
- Improvement: DataObject\Listing: Add missing PhpDocs
- Bugfix: Snippets will be cached with wrong links
- Bugfix: Make translations sortable by dates
- Improvement:
Translator::checkForEmptyTranslation()- getValidLanguages needs to accept domain parameter - Improvement: Use preferred tile.openstreetmap.org URL
- Improvement: Add IgnoreCoreTablesFilterListener
- Improvement: Improve Generic Execution Engine Entities & Manager
- Improvement: [ApplicationLogger] standardize quotes and improve code readability in js files
- Improvement: update FOSJsRoutingBundle routing resource to use PHP configuration
- Improvement: Replace deprecated Doctrine DBAL query introspection methods
- Improvement: Update version references
OpenDXP 1.2.0
[Core]
- Improvement: Symfony 7.4 compatibility (bumped minimum required version to
^7.4) - Improvement: Code cleanup, performance improvements & modernized code style.
- Deprecated
lib/helper-functions.php. Use static helpers fromOpenDxp\Helper\*instead.
[AdminBundle]
- Improvement: Various UI refinements like colors, icons and some general styling
- Improvement: Symfony 7.4 compatibility
- Improvement: Code cleanup, performance improvements & modernized code style.
- Feature: Added poster image, title and description for every video type (video overlay)
OpenDXP 1.1.3
[Core]
- BlockElement: Add SetNullFilter for '_owner' property in DeepCopy configuration to improve performance.
OpenDXP 1.1.0
[Core]
- Added
open-dxp/admin-bundleas core dependency since this is currently the only backend UI available.
[AdminBundle]
- Renamed
open-dxp/admin-ui-classic-bundletoopen-dxp/admin-bundle.- PHP namespace has not changed.
- Abandoned composer package
open-dxp/admin-ui-classic-bundle.
[SeoBundle]
- Performance improvements for redirect resolving in
RoutingListener.
Get started with OpenDXP 1.0
Preparation
Upgrade to the latest Pimcore 11.5.x first!
bin/console
- Replace the use-statements Pimcore with OpenDxp or download it from skeleton. After composer upgrade you'll able to run php bin/console again and debug any missing replacements.
Settings Store
- In table
settings_store, replaceBUNDLE_INSTALLED__PimcorewithBUNDLE_INSTALLED__OpenDxp
Methods
- getPimcoreUser => getOpenDxpUser
Configuration
- Autoload directory: config/pimcore => config/opendxp
- All Pimcore configuration blocks
pimcore_*(like pimcore_admin) =>opendxp_*. This affects config and var/config folder.
Constants
- All Constants
PIMCORE_=>OPENDXP_
Messenger
- All runners from
pimcore_=>opendxp_
Commands
- All commands from
pimcore:=>opendxp:
Twig
- All twig methods changed from
pimcore_=>opendxp_
If you want to migrate your existing document, asset and object versions please read this: Version Migration
Breaking Changes
Core
- ⚠️ Important: Removed hardcoded password salt in
OpenDxp\Tool\Authentication::preparePlainTextPassword().As a BC layer the new config option
opendxp.security.password.saltwas introduced. Set it to "pimcore" to keep password logins of existing installations working. - Renamed
OpenDxp\Routing\Loader\AnnotatedRouteControllerLoadertoOpenDxp\Routing\Loader\AttributeRouteControllerLoader. OpenDxp\Extension\Document\Areabrick\AbstractAreabrickno longer implementsSymfony\Component\DependencyInjection\ContainerAwareInterface. Use dependency injection for services instead.- Removed
symfony/templatingas core dependency; fully rely on Twig now.- Replace any usage of
OpenDxp\Templating\TwigDefaultDelegatigEnginewith Twig (via DI). OpenDxp\Navigation\Renderer\AbstractRenderer::$templatingEngineis now of typeTwig\Environment.OpenDxp\Document\Editable\EditableHandler::$templatingis now of typeTwig\Environment.- Removed
OpenDxp\Controller\Controller. UseSymfony\Bundle\FrameworkBundle\Controller\AbstractControllerinstead.
- Replace any usage of
OpenDxp\Model\Element\ElementInterface::getById()changed signature. Check your code for implementations.OpenDxp\Workflow\Manager::getWorkflowByName()changed return type tonull|Symfony\Component\Workflow\WorkflowInterface.
⚠️ Migrations
- Removed all migrations from
Pimcore\Bundle\CoreBundle\Migrationsnamespace.- Delete corresponding entries from
migration_versionstable in your database.
- Delete corresponding entries from
Wysiwyg
The suggested Quill editor lacks the capabilities expected in a professional CMS. As a result, we’ve reintroduced the TinyMCE bundle. (TinyMCE has changed its open-source license to GPL, which is acceptable for our use.)
Misc
- Core: Removed PlatformVersion
- Skeleton: Removed QuillBundle
Removed Deprecations
OpenDxp\Model\Element\Service::getElementById(): Parameter$idno longer supportsstring; useintinstead.OpenDxp\Model\Document::getById(): Parameter$idno longer supportsstring; useintinstead.- Removed deprecated method
OpenDxp\Model\DataObject\Service::getHelperDefinitions(). UseOpenDxp\Bundle\AdminBundle\Service\GridData\DataObject::getHelperDefinitions()instead (requiresopen-dxp/admin-bundle). - Removed deprecated method
OpenDxp\Model\DataObject\Service::gridObjectData(). UseOpenDxp\Bundle\AdminBundle\Service\GridData\DataObject::getData()instead (requiresopen-dxp/admin-bundle). - Removed deprecated method
OpenDxp\Model\DataObject\Service::getInheritedData(). UseOpenDxp\Bundle\AdminBundle\Service\GridData::getInheritedData()instead (requiresopen-dxp/admin-bundle). - Removed BC layer
OpenDxp\Model\DataObject\Service::getVersionDependentColumnName()(conversion ofo_-prefixed columns/properties). Migrate or delete versions before upgrading. - Removed
OpenDxp\Model\DataObject\ClassDefinition\DynamicOptionsProvider\MultiSelectOptionsProviderInterface. Use...\SelectOptionsProviderInterfaceinstead. - Removed support for any password algorithm other than
password_hashinOpenDxp\Model\DataObject\ClassDefinition\Data\Password. OpenDxp\Model\DataObject\ClassDefinition\Data:- Removed support to pass
nullvalues tosetIndex(). - Removed deprecated method
getAsIntegerCast(). - Removed deprecated method
getAsFloatCast(). - Removed deprecated property
$fieldtype.
- Removed support to pass
OpenDxp\Model\DataObject\AbstractObject::getById(): Parameter$idno longer supportsstring; useintinstead.OpenDxp\Model\Asset::getById(): Parameter$idno longer supportsstring; useintinstead.- Removed deprecated method
OpenDxp\Model\Asset\Image::getThumbnailConfig(). UseOpenDxp\Model\Asset\Image::getThumbnail()->getConfig()instead. OpenDxp\Tool\Adminfile-based maintenance mode removed:- Removed
getMaintenanceModeFile()andgetMaintenanceModeScheduleLoginFile(). - Removed
activateMaintenanceMode()/deactivateMaintenanceMode(). UseOpenDxp\Tool\MaintenanceModeHelper::activate()/::deactivate()instead. - Removed
isInMaintenanceMode(). UseOpenDxp\Tool\MaintenanceModeHelper::isActive()instead. - Removed
isMaintenanceModeScheduledForLogin()/scheduleMaintenanceModeOnLogin()/unscheduleMaintenanceModeOnLogin().
- Removed
OpenDxp\Event\Model\Asset\ResolveUploadTargetEvent: removed deprecatedgetContext(),setContext()and$context. UsesetArgument()instead.OpenDxp\Bundle\XliffBundle\ExportDataExtractorService\DataExtractor\DocumentDataExtractor: removed deprecatedaddDoumentEditables(); useaddDocumentEditables()instead.- Removed deprecated class
OpenDxp\Helper\CsvFormulaFormatter; useLeague\Csv\EscapeFormulainstead. OpenDxp\Image\Adapter\Imagick: removed deprecated option to use relative path for image thumbnail in methodsaddOverlay()andaddOverlayFit().- Removed native Chromium support. Use gotenberg instead.
- Removed
OpenDxp\Image\HtmlToImage::convertChromium()and::getChromiumBinary(). - Removed class
OpenDxp\Image\Chromium. - Removed config node
opendxp.chromium.
- Removed
- Removed deprecated methods in
OpenDxp\Bundle\ApplicationLoggerBundle\ApplicationLogger:setRelatedObject(),setFileObject(). - Removed deprecated config node
opendxp.general.language. OpenDxp\Image\Adapter: removed deprecated abstract methods now provided byOpenDxp\Image\AdapterInterface:load(),save(),getContentOptimizedFormat(),supportsFormat().- Removed deprecated static property
OpenDxp\Extension\Bundle\AbstractOpenDxpBundle::$bundleManager. - Removed deprecated method
OpenDxp\Tool\Console::runPhpScriptInBackground(). - Removed deprecated method
OpenDxp\Tool::getCachedSymfonyEnvironments(). - Removed deprecated static property
OpenDxp\Navigation\Page::$_defaultPageType. - Removed deprecated method
OpenDxp\Model\Element\Recyclebin\Item::getStoreageFile(). - Removed deprecated GET method for
OpenDxp\Bundle\ApplicationLoggerBundle\Controller\LogController::showAction(). Use POST instead. - Removed deprecated console option
--generatorforopendxp:image:low-quality-preview(OpenDxp\Bundle\CoreBundle\Command\LowQualityImagePreviewCommand).
PHP & Symfony deprecations
- Removed dotenv variable BC layer in
OpenDxp\Bootstrap::bootstrap(). Use Symfony Runtime (public/index.php & bin/console.php). - Twig templating deprecations (use Twig instead of Symfony Templating):
OpenDxp\Twig\Extension\Templating\Placeholder\Container: removedcaptureStart()andcaptureEnd(); use Twig set tag for output capturing.OpenDxp\Twig\Extension\Templating\HeadStyle: removedcaptureStart()andcaptureEnd(); use Twig set tag for output capturing.OpenDxp\Twig\Extension\Templating\HeadScript: removedcaptureStart()andcaptureEnd(); use Twig set tag for output capturing.- Removed deprecated
opendxp_cacheTwig function (OpenDxp\Twig\Extension\CacheExtension); use theopendxpcachetag instead. - Removed enable_authenticator_manager from security.yaml due to symfony 7.3
Templates
- Removed
key_value_table.html.twigfromCoreBundle