Ibexa DXP v5.0 LTS
Ibexa DXP v5.0.0¶
Notable changes¶
This version incorporates into the product numerous features brought by LTS Updates from previous versions, brings upgrades to the tech stack and improvements to developer experience.
AI Actions¶
The AI Actions feature enhances the usability and flexibility of Ibexa DXP by harnessing the potential of artificial intelligence to automate time-consuming editorial tasks. By default, the AI Actions feature can help users with their work in following scenarios:
- Refining text: when editing a content item, users can request that a passage selected in online editor is modified, for example, by adjusting the length of the text, changing its tone, or correcting linguistic errors
- Generating alternative text: when working with images, users can ask AI to generate alternative text for them, which helps improve accessibility and SEO
AI Actions integrate with Ibexa Connect, giving you an opportunity to build complex data transformation workflows without having to rely on custom code.
For more information, see AI Actions product guide.
Discounts ¶
With Discounts, you can temporarily or permanently reduce prices on specific products or categories, making deals more attractive to potential buyers.
Use them to encourage first-time purchases, reward loyal customers, promote new or slow-moving items, or drive sales during seasonal events.
By displaying discounted prices clearly in the catalog or cart, businesses can create a sense of urgency, increase customer satisfaction, and ultimately boost revenue.
For more information, see Discounts product guide.
Date and time attribute¶
The Date and time attributes allow you to represent date and time values as part of the product specification in the Product Information Management system.
For more information, see Date and time attributes.
Symbol attribute¶
The Symbol attributes allow you to efficiently represent the string-based data as part of the product specification in the Product Information Management system.
For more information, see Symbol attributes.
Collaboration¶
With Collaboration, multiple users can invite each other to work on the same content. It is a starting point for future functionalities in the collaboration domain.
For more information, see Collaboration PHP API and Share PHP API.
Software architecture upgrades¶
With improved compatibility, performance and increased security, as well as better developer experience in mind, Ibexa decided to introduce several significant tech stack upgrades.
For a full list of updated system requirements, see Requirements.
Symfony 7.3¶
With this release, Ibexa DXP moves to Symfony 7.3 from the previously used versions of Symfony.
For details, see Symfony 7.3.
Doctrine 3.9¶
By moving to Doctrine 3.9, Ibexa DXP brings developers better performance, cleaner code, and stronger foundation for a more modern and maintainable application.
PHP 8.3¶
With performance, coding safety and security in mind, with this version, Ibexa DXP moves to PHP 8.3 and drops support for lower versions of the language.
OpenAPI support¶
Adding support for generating the OpenAPI specification for our REST API makes future changes more manageable, and helps our partners automatically generate REST API clients.
For more information, see REST API usage.
Support for serialization and deserialization of REST payloads with the Symfony Serializer component improves data reliability and simplifies debugging.
React 19¶
Ibexa DXP's Back Office now uses React 19. This upgrade enhances maintainability, unlocks new UI capabilities, and simplifies future feature development.
Developer experience¶
New packages¶
The following packages have been introduced in Ibexa DXP v5.0.0:
- ibexa/collaboration
- ibexa/connector-ai
- ibexa/connector-openai
- ibexa/discounts
- ibexa/discounts-codes
- ibexa/product-catalog-date-time-attribute
- ibexa/product-catalog-symbol-attribute
- ibexa/share
REST APIs¶
Ibexa DXP v5.0.0 adds REST API coverage for the following features:
- AI Actions:
- Action Configurations
- Action Types
- Discounts
- Collaboration
PHP API¶
The PHP API has been expanded with the following classes and interfaces:
AI Actions
Ibexa\Contracts\ConnectorAi\Action\Action
Ibexa\Contracts\ConnectorAi\Action\ActionContext
Ibexa\Contracts\ConnectorAi\Action\ActionFactoryInterface
Ibexa\Contracts\ConnectorAi\Action\ActionHandlerInterface
Ibexa\Contracts\ConnectorAi\Action\ActionHandlerResolverInterface
Ibexa\Contracts\ConnectorAi\Action\GenerateAltTextAction
Ibexa\Contracts\ConnectorAi\Action\LLMBaseActionTypeInterface
Ibexa\Contracts\ConnectorAi\Action\RefineTextAction
Ibexa\Contracts\ConnectorAi\Action\RuntimeContext
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationCreateStruct
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationCopyStruct
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationListInterface
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationOptions
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationQuery
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionConfigurationUpdateStruct
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionHandlerOptionsFormMapperInterface
Ibexa\Contracts\ConnectorAi\ActionConfiguration\ActionTypeOptionsFormMapperInterface
Ibexa\Contracts\ConnectorAi\ActionConfiguration\OptionsFormatterInterface
Ibexa\Contracts\ConnectorAi\ActionType\ActionTypeFactoryInterface
Ibexa\Contracts\ConnectorAi\ActionType\ActionTypeInterface
Ibexa\Contracts\ConnectorAi\ActionType\ActionTypeRegistryInterface
Ibexa\Contracts\ConnectorAi\ActionType\OptionsValidatorError
Ibexa\Contracts\ConnectorAi\ActionType\OptionsValidatorInterface
Ibexa\Contracts\ConnectorAi\ActionType\OptionsValidatorRegistryInterface
Ibexa\Contracts\ConnectorAi\ActionConfigurationInterface
Ibexa\Contracts\ConnectorAi\ActionConfigurationServiceDecorator
Ibexa\Contracts\ConnectorAi\ActionConfigurationServiceInterface
Ibexa\Contracts\ConnectorAi\ActionHandlerRegistryInterface
Ibexa\Contracts\ConnectorAi\ActionInterface
Ibexa\Contracts\ConnectorAi\ActionResponseInterface
Ibexa\Contracts\ConnectorAi\ActionServiceDecorator
Ibexa\Contracts\ConnectorAi\ActionServiceInterface
Ibexa\Contracts\ConnectorAi\AdapterAwareActionInterface
Ibexa\Contracts\ConnectorAi\DataType
Ibexa\Contracts\ConnectorAi\PromptResolverInterface
Ibexa\Contracts\ConnectorAi\Prompt\PromptFactory
Ibexa\Contracts\ConnectorAi\Prompt\PromptInterface
Ibexa\Contracts\ConnectorAi\PromptResolverInterface
Ibexa\Contracts\ConnectorOpenAi\ClientProviderInterface
Discounts
Ibexa\Contracts\Discounts\DiscountConditionCriterionMapperInterface
Ibexa\Contracts\Discounts\DiscountFormMapperInterface
Ibexa\Contracts\Discounts\DiscountPrioritizationStrategyInterface
Ibexa\Contracts\Discounts\DiscountServiceDecorator
Ibexa\Contracts\Discounts\DiscountServiceInterface
Ibexa\Contracts\Discounts\DiscountValueFormatterInterface
Ibexa\Contracts\Discounts\DiscountVariablesResolverInterface
Ibexa\Contracts\Discounts\Admin\Form\DiscountValueFormTypeMapperInterface
Ibexa\Contracts\Discounts\Admin\Form\FormThemeProviderInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\ConditionsMapperInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\DiscountValueMapperInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\GeneralPropertiesMapperInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\ProductConditionsMapperInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\StepDataObjectMapperInterface
Ibexa\Contracts\Discounts\Admin\FormMapper\UserConditionsMapperInterface
Ibexa\Contracts\Discounts\Exception\DiscountConditionNotFoundException
Ibexa\Contracts\Discounts\Exception\DiscountExpressionInvalidArgumentException
Ibexa\Contracts\Discounts\Exception\DiscountExpressionRuntimeException
Ibexa\Contracts\Discounts\Exception\DiscountNotFoundException
Ibexa\Contracts\Discounts\Exception\DiscountRuleNotFoundException
Ibexa\Contracts\Discounts\Exception\DiscountValueResolutionException
Ibexa\Contracts\Discounts\Policy\AbstractDiscountPolicy
Ibexa\Contracts\Discounts\Policy\Create
Ibexa\Contracts\Discounts\Policy\Delete
Ibexa\Contracts\Discounts\Policy\Disable
Ibexa\Contracts\Discounts\Policy\Enable
Ibexa\Contracts\Discounts\Policy\Update
Ibexa\Contracts\Discounts\Policy\View
Ibexa\Contracts\Discounts\Value\CartDiscountConditionInterface
Ibexa\Contracts\Discounts\Value\DiscountConditionInterface
Ibexa\Contracts\Discounts\Value\DiscountExpressionAwareInterface
Ibexa\Contracts\Discounts\Value\DiscountInterface
Ibexa\Contracts\Discounts\Value\DiscountListInterface
Ibexa\Contracts\Discounts\Value\DiscountRuleInterface
Ibexa\Contracts\Discounts\Value\DiscountTranslationInterface
Ibexa\Contracts\Discounts\Value\DiscountType
Ibexa\Contracts\Discounts\Value\DiscountValueInterface
Ibexa\Contracts\Discounts\Value\Struct\DiscountCreateStruct
Ibexa\Contracts\Discounts\Value\Struct\DiscountStructInterface
Ibexa\Contracts\Discounts\Value\DiscountTranslationStruct
Ibexa\Contracts\Discounts\Value\DiscountUpdateStruct
Ibexa\Contracts\Discounts\Value\TranslationAwareDiscountStructInterface
Ibexa\Contracts\Discounts\Value\TranslationAwareDiscountStructTrait
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeNotFoundException
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeRateLimitExceededException
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeUnusableException
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeUserInvalidArgumentException
Ibexa\Contracts\DiscountsCodes\Value\DiscountCodeUsageInterface
Ibexa\Contracts\DiscountsCodes\Value\DiscountCodeUser
Ibexa\Contracts\DiscountsCodes\Value\Query\DiscountCodeUsageQuery
Ibexa\Contracts\DiscountsCodes\Value\Struct\DiscountCodeCreateStruct
Ibexa\Contracts\DiscountsCodes\Value\StructDiscountCodeUpdateStruct
PIM Attributes
Search Criteria¶
The following search criteria have been added in the v5.0 release:
AI Actions
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\Enabled
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\Identifier
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\LogicalAnd
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\LogicalOr
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\Name
Ibexa\Contracts\ConnectorAi\ActionConfiguration\Query\Criterion\Type
Discounts
Ibexa\Contracts\Discounts\Value\Query\Criterion\CreatedAtCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\CreatorCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\EndDateCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\IdentifierCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\IsEnabledCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\LogicalAnd
Ibexa\Contracts\Discounts\Value\Query\Criterion\LogicalOr
Ibexa\Contracts\Discounts\Value\Query\Criterion\NameCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\PriorityCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\StartDateCriterion
Ibexa\Contracts\Discounts\Value\Query\Criterion\TypeCriterion
PIM Attributes
Sort Clauses¶
The following sort clauses have been added in the v5.0 release:
AI Actions
Discounts
Ibexa\Contracts\Discounts\Value\Query\SortClause\CreatedAt
Ibexa\Contracts\Discounts\Value\Query\SortClause\EndDate
Ibexa\Contracts\Discounts\Value\Query\SortClause\Id
Ibexa\Contracts\Discounts\Value\Query\SortClause\Identifier
Ibexa\Contracts\Discounts\Value\Query\SortClause\Priority
Ibexa\Contracts\Discounts\Value\Query\SortClause\StartDate
Ibexa\Contracts\Discounts\Value\Query\SortClause\Type
Ibexa\Contracts\Discounts\Value\Query\SortClause\UpdatedAt
Events¶
The following events have been added in the v5.0 release:
AI Actions
\Ibexa\Contracts\ConnectorAi\Action\Event\BeforeExecuteEvent
\Ibexa\Contracts\ConnectorAi\Action\Event\ExecuteEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\BeforeCreateActionConfigurationEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\CreateActionConfigurationEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\BeforeUpdateActionConfigurationEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\UpdateActionConfigurationEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\BeforeDeleteActionConfigurationEvent
\Ibexa\Contracts\ConnectorAi\ActionConfiguration\Event\DeleteActionConfigurationEvent
Ibexa\Contracts\ConnectorAi\Events\ContextEvent
Ibexa\Contracts\ConnectorAi\Events\ResolveActionConfigurationWidgetConfigEvent
Ibexa\Contracts\ConnectorAi\Events\ResolveActionHandlerEvent
Discounts
\Ibexa\Contracts\Discounts\Event\BeforeCreateDiscountEvent
\Ibexa\Contracts\Discounts\Event\CreateDiscountEvent
\Ibexa\Contracts\Discounts\Event\BeforeDeleteDiscountEvent
\Ibexa\Contracts\Discounts\Event\DeleteDiscountEvent
\Ibexa\Contracts\Discounts\Event\BeforeUpdateDiscountEvent
\Ibexa\Contracts\Discounts\Event\UpdateDiscountEvent
\Ibexa\Contracts\Discounts\Event\CreateDiscountCreateStructEvent
\Ibexa\Contracts\Discounts\Event\CreateDiscountUpdateStructEvent
\Ibexa\Contracts\Discounts\Event\CreateFormDataEvent
\Ibexa\Contracts\Discounts\Event\MapDiscountToFormDataEvent
\Ibexa\Contracts\Discounts\Event\Step\CreateFormDataEvent
\Ibexa\Contracts\Discounts\Event\Step\MapCreateDataToStructEvent
\Ibexa\Contracts\Discounts\Event\Step\MapDiscountToFormDataEvent
\Ibexa\Contracts\Discounts\Event\Step\MapUpdateDataToStructEvent
\Ibexa\Contracts\Discounts\Admin\Form\Event\PreDiscountCreateEvent
\Ibexa\Contracts\DiscountsCodes\Event\BeforeDiscountCodeApplyEvent
Twig functions¶
The following Twig functions have been added in the v5.0 release:
ibexa_ai_config
ibexa_render_discount_rule_type
ibexa_discounts_render_discount_badge
ibexa_get_original_price
ibexa_format_discount_value
ibexa_discounts_is_active
ibexa_discounts_form_themes
ibexa_discounts_can_edit
ibexa_discounts_can_enable
ibexa_discounts_can_disable
ibexa_discounts_can_delete
Other upgrades¶
This release brings other minor upgrades intended to improve the developer's experience:
- To improve code clarity, reliability, and error detection, type hint declarations that specify the expected data type have been added in multiple places throughout the product
- Developer experience has improved with capabilities offered by PHP in version 8.3. For example, the
AsTwigComponent
attribute facilitates autoconfiguration of Twig components - With protection against breaking changes and easier refactoring in mind, TypeScript can now be used to extend the Back Office
- Ibexa Rector package has been introduced that is based on Rector and comes with additional rules for working with Ibexa code. You can use it to get rid of PHP code deprecations
- New icons replace the ones found in previous versions and serve as a highlight of a future system design
Deprecations¶
Refer to Ibexa DXP v5.0 renames, deprecations and removals for a full list of changes and how they influence your project.
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.