From 182451d3c1eb6e244e8d4d0d1d11cbb61f9f6325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Tue, 23 Jun 2026 15:37:34 +0200 Subject: [PATCH] Fix PHP code samples --- .../src/Command/SegmentCommand.php | 2 + deptrac.baseline.yaml | 23 +++ .../extending_thumbnails.md | 4 +- .../formatting_date_and_time.md | 13 +- .../back_office_menus/back_office_menus.md | 6 +- .../back_office/browser/browser.md | 32 ++-- .../back_office/customize_calendar.md | 11 +- .../back_office/notifications.md | 5 +- .../configuration/configuration.md | 5 +- .../configuration/dynamic_configuration.md | 18 +-- .../configuration/repository_configuration.md | 10 +- docs/ai/ai_actions/configure_ai_actions.md | 5 +- docs/api/php_api/php_api.md | 15 +- .../creating_new_rest_resource.md | 10 +- docs/commerce/cart/cart_api.md | 26 +++- .../shopping_list/install_shopping_list.md | 5 +- .../shopping_list/shopping_list_api.md | 21 ++- .../storefront/configure_storefront.md | 16 +- docs/commerce/storefront/extend_storefront.md | 9 +- .../extend_transactional_emails.md | 19 +-- .../configure_collaborative_editing.md | 2 +- .../content_api/browsing_content.md | 41 ++++-- .../content_api/creating_content.md | 7 +- .../content_api/managing_content.md | 10 +- .../field_type_reference/addressfield.md | 6 +- .../field_type_reference/authorfield.md | 18 ++- .../field_type_reference/binaryfilefield.md | 3 +- .../field_type_reference/checkboxfield.md | 16 +- .../field_type_reference/countryfield.md | 39 ++--- .../field_type_reference/dateandtimefield.md | 16 +- .../field_type_reference/datefield.md | 10 +- .../field_type_reference/emailaddressfield.md | 14 +- .../field_type_reference/floatfield.md | 29 ++-- .../field_type_reference/imageassetfield.md | 13 +- .../field_type_reference/imagefield.md | 34 +++-- .../field_type_reference/integerfield.md | 15 +- .../field_type_reference/isbnfield.md | 9 +- .../field_type_reference/keywordfield.md | 16 +- .../field_type_reference/maplocationfield.md | 5 +- .../field_type_reference/matrixfield.md | 8 +- .../field_type_reference/measurementfield.md | 22 +-- .../field_type_reference/mediafield.md | 18 ++- .../field_type_reference/relationfield.md | 18 ++- .../field_type_reference/relationlistfield.md | 30 ++-- .../field_type_reference/richtextfield.md | 8 +- .../field_type_reference/selectionfield.md | 22 +-- .../taxonomyentryassignmentfield.md | 19 ++- .../taxonomyentryfield.md | 32 ++-- .../field_type_reference/textlinefield.md | 10 +- .../field_type_reference/timefield.md | 4 +- .../field_type_reference/urlfield.md | 18 ++- .../field_types/field_type_search.md | 10 +- .../field_types/field_type_validation.md | 8 +- .../field_types/form_and_template.md | 108 ++++++++------ .../field_types/type_and_value.md | 8 +- .../file_management/file_management.md | 8 +- .../images/configure_image_editor.md | 8 +- .../taxonomy/taxonomy_api.md | 10 +- .../url_management/url_management.md | 29 +--- .../workflow/add_custom_workflow_action.md | 6 +- .../cache/http_cache/content_aware_cache.md | 17 ++- .../cache/http_cache/context_aware_cache.md | 39 +++-- .../cache/http_cache/reverse_proxy.md | 7 +- .../cache/persistence_cache.md | 26 +++- .../languages/automated_translations.md | 2 +- .../languages/back_office_translations.md | 30 ++-- .../siteaccess/injecting_siteaccess.md | 20 +-- .../siteaccess_aware_configuration.md | 5 +- docs/permissions/custom_policies.md | 49 +++--- .../action_criterion.md | 9 +- .../logged_at_criterion.md | 4 +- .../object_criterion.md | 10 +- .../object_name_criterion.md | 4 +- .../user_criterion.md | 4 +- .../authorterm_aggregation.md | 5 +- .../basepricestats_aggregation.md | 7 +- .../checkboxterm_aggregation.md | 5 +- .../contenttypegroupterm_aggregation.md | 5 +- .../contenttypeterm_aggregation.md | 5 +- .../countryterm_aggregation.md | 5 +- .../custompricestats_aggregation.md | 9 +- .../datemetadatarange_aggregation.md | 19 ++- .../daterange_aggregation.md | 22 ++- .../datetimerange_aggregation.md | 22 ++- .../floatrange_aggregation.md | 22 ++- .../floatstats_aggregation.md | 5 +- .../integerrange_aggregation.md | 22 ++- .../integerstats_aggregation.md | 5 +- .../keywordterm_aggregation.md | 5 +- .../languageterm_aggregation.md | 5 +- .../locationchildrenterm_aggregation.md | 5 +- .../objectstateterm_aggregation.md | 7 +- .../product_attribute_aggregations.md | 21 ++- .../productavailabilityterm_aggregation.md | 5 +- .../productpricerange_aggregation.md | 10 +- .../productstockrange_aggregation.md | 12 +- .../producttypeterm_aggregation.md | 5 +- .../rawrange_aggregation.md | 10 +- .../rawstats_aggregation.md | 5 +- .../rawterm_aggregation.md | 5 +- .../sectionterm_aggregation.md | 5 +- .../selectionterm_aggregation.md | 5 +- .../subtreeterm_aggregation.md | 5 +- .../taxonomyentryid_aggregation.md | 12 +- .../timerange_aggregation.md | 25 +++- .../usermetadataterm_aggregation.md | 5 +- .../visibilityterm_aggregation.md | 5 +- .../criteria_reference/ancestor_criterion.md | 22 ++- .../criteria_reference/baseprice_criterion.md | 5 +- .../checkboxattribute_criterion.md | 5 +- .../colorattribute_criterion.md | 5 +- .../criteria_reference/contentid_criterion.md | 6 +- .../contentname_criterion.md | 6 +- .../contenttypegroupid_criterion.md | 27 ++-- .../contenttypeid_criterion.md | 6 +- .../contenttypeidentifier_criterion.md | 6 +- .../criteria_reference/createdat_criterion.md | 5 +- .../createdatrange_criterion.md | 5 +- .../currencycode_criterion.md | 8 +- .../customergroupid_criterion.md | 6 +- .../customprice_criterion.md | 9 +- .../datemetadata_criterion.md | 18 ++- .../criteria_reference/depth_criterion.md | 6 +- .../criteria_reference/field_criterion.md | 16 +- .../fieldrelation_criterion.md | 6 +- .../floatattribute_criterion.md | 5 +- .../criteria_reference/fulltext_criterion.md | 24 ++- .../criteria_reference/image_criterion.md | 7 +- .../imagedimensions_criterion.md | 8 +- .../imagefilesize_criterion.md | 8 +- .../imageheight_criterion.md | 8 +- .../imagemimetype_criterion.md | 16 +- .../imageorientation_criterion.md | 21 ++- .../imagewidth_criterion.md | 8 +- .../integerattribute_criterion.md | 5 +- .../iscontainer_criterion.md | 6 +- .../iscurrencyenabled_criterion.md | 8 +- .../isfieldempty_criterion.md | 16 +- .../ismainlocation_criterion.md | 7 +- .../isproductbased_criterion.md | 8 +- .../isuserbased_criterion.md | 6 +- .../isuserenabled_criterion.md | 6 +- .../criteria_reference/isvirtual_criterion.md | 5 +- .../languagecode_criterion.md | 29 ++-- .../locationid_criterion.md | 6 +- .../locationremoteid_criterion.md | 6 +- .../logicaland_criterion.md | 11 +- .../logicalnot_criterion.md | 10 +- .../criteria_reference/logicalor_criterion.md | 11 +- .../maplocationdistance_criterion.md | 6 +- .../objectstateid_criterion.md | 6 +- .../objectstateidentifier_criterion.md | 12 +- .../order_company_associated_criterion.md | 5 +- .../order_company_name_criterion.md | 5 +- .../order_created_criterion.md | 5 +- .../order_currency_code_criterion.md | 5 +- .../order_customer_name_criterion.md | 5 +- .../order_identifier_criterion.md | 5 +- .../order_owner_criterion.md | 25 +++- .../order_price_criterion.md | 5 +- .../order_source_criterion.md | 5 +- .../order_status_criterion.md | 5 +- .../parentlocationid_criterion.md | 16 +- .../payment_createdat_criterion.md | 5 +- .../payment_currency_criterion.md | 8 +- .../payment_id_criterion.md | 8 +- .../payment_identifier_criterion.md | 8 +- .../payment_logicaland_criterion.md | 18 ++- .../payment_logicalor_criterion.md | 18 ++- .../payment_method_createdat_criterion.md | 5 +- .../payment_method_enabled_criterion.md | 8 +- .../payment_method_id_criterion.md | 8 +- .../payment_method_identifier_criterion.md | 8 +- .../payment_method_logicaland_criterion.md | 18 ++- .../payment_method_logicalor_criterion.md | 17 ++- .../payment_method_name_criterion.md | 8 +- .../payment_method_type_criterion.md | 11 +- .../payment_method_updatedat_criterion.md | 5 +- .../payment_order_criterion.md | 11 +- .../payment_payment_method_criterion.md | 11 +- .../payment_status_criterion.md | 8 +- .../payment_updatedat_criterion.md | 5 +- .../price_currency_criterion.md | 8 +- .../price_customergroup_criterion.md | 6 +- .../price_isbaseprice_criterion.md | 5 +- .../price_iscustomprice_criterion.md | 5 +- .../price_logicaland_criterion.md | 13 +- .../price_logicalor_criterion.md | 16 +- .../price_product_criterion.md | 5 +- .../criteria_reference/priority_criterion.md | 6 +- .../productavailability_criterion.md | 5 +- .../productcategory_criterion.md | 5 +- .../productcode_criterion.md | 5 +- .../productname_criterion.md | 5 +- .../productstock_criterion.md | 10 +- .../productstockrange_criterion.md | 5 +- .../producttype_criterion.md | 5 +- ...gemeasurementattributemaximum_criterion.md | 10 +- ...gemeasurementattributeminimum_criterion.md | 10 +- .../criteria_reference/remoteid_criterion.md | 6 +- .../criteria_reference/sectionid_criterion.md | 6 +- .../sectionidentifier_criterion.md | 6 +- .../selectionattribute_criterion.md | 5 +- .../shipment_createdat_criterion.md | 5 +- .../shipment_currency_criterion.md | 7 +- .../shipment_id_criterion.md | 5 +- .../shipment_identifier_criterion.md | 5 +- .../shipment_logicaland_criterion.md | 11 +- .../shipment_logicalor_criterion.md | 11 +- .../shipment_owner_criterion.md | 22 ++- .../shipment_shipping_method_criterion.md | 6 +- .../shipment_status_criterion.md | 5 +- .../shipment_updatedat_criterion.md | 5 +- .../criteria_reference/sibling_criterion.md | 13 +- .../simplemeasurementattribute_criterion.md | 10 +- .../criteria_reference/subtree_criterion.md | 6 +- .../criteria_reference/taxonomy_entry_id.md | 12 +- .../criteria_reference/useremail_criterion.md | 12 +- .../criteria_reference/userid_criterion.md | 6 +- .../criteria_reference/userlogin_criterion.md | 12 +- .../usermetadata_criterion.md | 18 ++- .../visibility_criterion.md | 6 +- .../create_custom_aggregation.md | 10 +- .../create_custom_search_criterion.md | 6 +- .../create_custom_sort_clause.md | 6 +- .../index_custom_elasticsearch_data.md | 2 +- .../manipulate_elasticsearch_query.md | 2 +- docs/search/search_api.md | 68 +++++++-- .../shopping_list_criteria.md | 4 +- .../baseprice_sort_clause.md | 8 +- .../contentid_sort_clause.md | 5 +- .../contentname_sort_clause.md | 5 +- .../contenttranslatedname_sort_clause.md | 5 +- .../contenttypename_sort_clause.md | 5 +- .../createdat_sort_clause.md | 7 +- .../customfield_sort_clause.md | 5 +- .../customprice_sort_clause.md | 13 +- .../datemodified_sort_clause.md | 5 +- .../datepublished_sort_clause.md | 5 +- .../datetrashed_sort_clause.md | 5 +- .../depth_sort_clause.md | 7 +- .../field_sort_clause.md | 5 +- .../sort_clause_reference/id_sort_clause.md | 5 +- .../ismainlocation_sort_clause.md | 7 +- .../maplocationdistance_sort_clause.md | 5 +- .../order_created_sort_clause.md | 9 +- .../order_id_sort_clause.md | 9 +- .../order_status_sort_clause.md | 9 +- .../order_updated_sort_clause.md | 9 +- .../sort_clause_reference/path_sort_clause.md | 5 +- .../payment_createdat_sort_clause.md | 9 +- .../payment_id_sort_clause.md | 9 +- .../payment_identifier_sort_clause.md | 9 +- .../payment_method_createdat_sort_clause.md | 9 +- .../payment_method_enabled_sort_clause.md | 9 +- .../payment_method_id_sort_clause.md | 9 +- .../payment_method_identifier_sort_clause.md | 9 +- .../payment_method_updatedat_sort_clause.md | 9 +- .../payment_status_sort_clause.md | 9 +- .../payment_updatedat_sort_clause.md | 9 +- .../priority_sort_clause.md | 5 +- .../productavailability_sort_clause.md | 6 +- .../productcode_sort_clause.md | 6 +- .../productname_sort_clause.md | 6 +- .../random_sort_clause.md | 5 +- .../score_sort_clause.md | 5 +- .../sectionidentifier_sort_clause.md | 5 +- .../sectionname_sort_clause.md | 5 +- .../shipment_createdat_sort_clause.md | 8 +- .../shipment_id_sort_clause.md | 8 +- .../shipment_identifier_sort_clause.md | 8 +- .../shipment_status_sort_clause.md | 8 +- .../shipment_updatedat_sort_clause.md | 8 +- .../userlogin_sort_clause.md | 5 +- .../visibility_sort_clause.md | 5 +- .../id_url_sort_clause.md | 4 +- .../logicaland_url_criterion.md | 8 +- .../logicalnot_url_criterion.md | 8 +- .../logicalor_url_criterion.md | 8 +- .../pattern_url_criterion.md | 6 +- .../sectionid_url_criterion.md | 8 +- .../sectionidentifier_url_criterion.md | 6 +- .../url_url_sort_clause.md | 4 +- .../validity_url_criterion.md | 6 +- docs/templating/layout/add_login_form.md | 6 +- .../urls_and_routes/custom_breadcrumbs.md | 8 +- .../5_display_a_list_of_content_items.md | 12 +- .../beginner_tutorial/7_embed_content.md | 11 +- .../from_1.x_2.x/update_db_to_2.5.md | 4 +- .../update_code/4_update_signal_slots.md | 6 +- .../from_2.5/update_code/8_update_rest.md | 8 +- .../from_4.3/update_from_4.3_new_commerce.md | 6 +- .../from_4.6/update_from_4.6.md | 5 +- .../from_4.6/update_to_5.0.md | 23 ++- docs/users/oauth_server.md | 2 +- docs/users/segment_api.md | 4 +- phpstan-baseline.neon | 139 ++++++++++++++++++ phpstan.neon | 1 + 298 files changed, 2263 insertions(+), 986 deletions(-) diff --git a/code_samples/api/public_php_api/src/Command/SegmentCommand.php b/code_samples/api/public_php_api/src/Command/SegmentCommand.php index 3b3fdd5f0f..64c2c4d95c 100644 --- a/code_samples/api/public_php_api/src/Command/SegmentCommand.php +++ b/code_samples/api/public_php_api/src/Command/SegmentCommand.php @@ -64,6 +64,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int : 'The user is not assigned to the segment.' )); + $this->segmentationService->removeSegmentGroup($segmentGroup); + return self::SUCCESS; } } diff --git a/deptrac.baseline.yaml b/deptrac.baseline.yaml index 9fef31d4bc..48ae699adc 100644 --- a/deptrac.baseline.yaml +++ b/deptrac.baseline.yaml @@ -1,5 +1,7 @@ deptrac: skip_violations: + AcmeFeatureBundle: + - Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension App\AutomatedTranslation\ImageFieldEncoder: - Ibexa\Core\FieldType\Image\Value App\Block\Listener\MyBlockListener: @@ -92,6 +94,9 @@ deptrac: - Ibexa\Core\MVC\Symfony\View\View App\Controller\RelationController: - Ibexa\Core\MVC\Symfony\View\View + App\Controller\RideController: + - Ibexa\Bundle\Core\Controller + - Ibexa\Core\MVC\Symfony\View\ContentView App\Controller\SvgController: - Ibexa\Core\Helper\TranslationHelper - Ibexa\Core\IO\IOServiceInterface @@ -130,6 +135,10 @@ deptrac: - Ibexa\FormBuilder\Event\FormEvents App\EventSubscriber\HelpMenuSubscriber: - Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent + App\EventSubscriber\LoginFormViewSubscriber: + - Ibexa\Core\MVC\Symfony\Event\PreContentViewEvent + - Ibexa\Core\MVC\Symfony\MVCEvents + - Ibexa\Core\MVC\Symfony\View\LoginFormView App\EventSubscriber\MyMenuSubscriber: - Ibexa\AdminUi\Menu\Event\ConfigureMenuEvent - Ibexa\AdminUi\Menu\MainMenuBuilder @@ -137,6 +146,8 @@ deptrac: - Ibexa\IntegratedHelp\ProductTour\Block\LinkBlock - Ibexa\IntegratedHelp\ProductTour\Block\TextBlock - Ibexa\IntegratedHelp\ProductTour\ProductTourStep + App\EventSubscriber\ResolveCampaginEventSubscriber: + - Ibexa\ConnectorActito\Campaign\Campaign App\Event\RandomBlockListener: - Ibexa\FieldTypePage\FieldType\Page\Block\Renderer\BlockRenderEvents - Ibexa\FieldTypePage\FieldType\Page\Block\Renderer\Event\PreRenderEvent @@ -194,6 +205,8 @@ deptrac: - Ibexa\Migration\ValueObject\Step\StepInterface App\Migrations\Step\ReplaceNameStepNormalizer: - Ibexa\Migration\ValueObject\Step\StepInterface + App\MyService: + - Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessServiceInterface App\Notification\ListRenderer: - Ibexa\Core\Notification\Renderer\NotificationRenderer - Ibexa\Core\Notification\Renderer\TypedNotificationRendererInterface @@ -212,6 +225,8 @@ deptrac: App\QueryType\OptionsBasedLatestContentQueryType: - Ibexa\Core\QueryType\OptionsResolverBasedQueryType - Ibexa\Core\QueryType\QueryType + App\QueryType\RideQueryType: + - Ibexa\Core\QueryType\QueryType App\Search\Model\Suggestion\ProductSuggestion: - Ibexa\ProductCatalog\Local\Repository\Values\Product App\Security\FormPolicyProvider: @@ -236,6 +251,8 @@ deptrac: - Ibexa\AdminUi\Limitation\LimitationValueMapperInterface App\Security\MyPolicyProvider: - Ibexa\Bundle\Core\DependencyInjection\Security\PolicyProvider\YamlPolicyProvider + App\Service\MyService: + - Ibexa\User\UserSetting\DateTimeFormat\FormatterInterface App\Setting\Group\MyGroup: - Ibexa\User\UserSetting\Group\AbstractGroup App\Setting\Unit: @@ -254,3 +271,9 @@ deptrac: - Ibexa\Core\MVC\Symfony\View\View AttributeTypeExtension: - Ibexa\PageBuilder\Form\Type\Attribute\AttributeType + CustomRepositoryConfigParser: + - Ibexa\Bundle\Core\DependencyInjection\Configuration\RepositoryConfigParserInterface + JohnDoeCanSelectMore: + - Ibexa\AdminUi\UniversalDiscovery\Event\ConfigResolveEvent + MyMapper: + - Ibexa\ContentForms\Form\Type\FieldType\CheckboxFieldType diff --git a/docs/administration/back_office/back_office_elements/extending_thumbnails.md b/docs/administration/back_office/back_office_elements/extending_thumbnails.md index 03b0d05f40..2b6c2cdd47 100644 --- a/docs/administration/back_office/back_office_elements/extending_thumbnails.md +++ b/docs/administration/back_office/back_office_elements/extending_thumbnails.md @@ -74,16 +74,16 @@ It enables you to add a thumbnail URL in the text field. Add `FieldValueUrl.php` in `src/Thumbnails`. -``` php {skip-validation} +``` php shortDateTimeFormatter = $shortDateTimeFormatter; - - // your code } - public function foo() + public function foo(): void { // your code diff --git a/docs/administration/back_office/back_office_menus/back_office_menus.md b/docs/administration/back_office/back_office_menus/back_office_menus.md index 59ad5e858c..bb99032430 100644 --- a/docs/administration/back_office/back_office_menus/back_office_menus.md +++ b/docs/administration/back_office/back_office_menus/back_office_menus.md @@ -85,7 +85,8 @@ The following method adds a new menu section under **Content**, and under it, a You can also pass parameters to templates used to render menu items with `template_parameters`: -``` php {skip-validation} +``` php +/** @var \Knp\Menu\ItemInterface $menu */ $menu->addChild( 'all_content_list', [ @@ -105,7 +106,8 @@ You can then use the variable `custom_parameter` in `templates/themes/admin/list To have translatable labels, use `translation.key` from the `messages` domain: -``` php {skip-validation} +``` php +/** @var \Knp\Menu\ItemInterface $menu */ $menu->addChild( 'all_content_list', [ diff --git a/docs/administration/back_office/browser/browser.md b/docs/administration/back_office/browser/browser.md index e574cab7ad..a62807716f 100644 --- a/docs/administration/back_office/browser/browser.md +++ b/docs/administration/back_office/browser/browser.md @@ -146,40 +146,42 @@ If an event listener catches additional parameters passed with context, it uses In the example below, the `johndoe` parameter enables the user to choose multiple items from a **Browser window** by changing `multiple: false` from `my_custom_udw` configuration to `multiple: true`. -``` php {skip-validation} hl_lines="29 30 31" +``` php hl_lines="31-35" + The event names to listen to */ - public static function getSubscribedEvents() + public static function getSubscribedEvents(): array { return [ ConfigResolveEvent::NAME => 'onUdwConfigResolve', ]; } - /** - * @param \Ibexa\AdminUi\UniversalDiscovery\Event $event - */ - public function onUdwConfigResolve(ConfigResolveEvent $event) + public function onUdwConfigResolve(ConfigResolveEvent $event): void { if ($event->getConfigName() !== self::CONFIGURATION_NAME) { - return; - } + return; + } $config = $event->getConfig(); - $context = $event->getContext(); + $context = $event->getContext(); if (isset($context['some_contextual_parameter'])) { - if ($context['some_contextual_parameter'] === 'johndoe') { - $config['multiple'] = true; - } - } + if ($context['some_contextual_parameter'] === 'johndoe') { + $config['multiple'] = true; + } + } $event->setConfig($config); } diff --git a/docs/administration/back_office/customize_calendar.md b/docs/administration/back_office/customize_calendar.md index d1dd718694..b73e371334 100644 --- a/docs/administration/back_office/customize_calendar.md +++ b/docs/administration/back_office/customize_calendar.md @@ -80,11 +80,16 @@ To add an in-memory collection as an event source, create `src/Calendar/Holidays For example: - ``` php {skip-validation} + ``` php + use App\Calendar\Holidays\Event; + use Ibexa\Contracts\Calendar\EventCollection; + + /** @var \App\Calendar\Holidays\EventType $eventType */ $collection = new EventCollection([ - $this->createEvent("Event 1", new DateTime("2024-01-01")), - $this->createEvent("Event 2", new DateTime("2024-01-02")), + new Event('Event 1', new DateTime('2024-01-01'), $eventType), + new Event('Event 2', new DateTime('2024-01-02'), $eventType), // ... + ]); ``` Next, register the event source as a service: diff --git a/docs/administration/back_office/notifications.md b/docs/administration/back_office/notifications.md index 1e641a226e..f5d9c2b8bd 100644 --- a/docs/administration/back_office/notifications.md +++ b/docs/administration/back_office/notifications.md @@ -25,8 +25,9 @@ There are four types of notifications: `info`, `success`, `warning` and `error`. To send a notification from PHP, inject the `TranslatableNotificationHandlerInterface` into your class. -``` php {skip-validation} -$this->notificationHandler->info( +``` php +/** @var \Ibexa\Contracts\AdminUi\Notification\TranslatableNotificationHandlerInterface $notificationHandler */ +$notificationHandler->info( /** @Desc("Notification text") */ 'example.notification.text', [], diff --git a/docs/administration/configuration/configuration.md b/docs/administration/configuration/configuration.md index 1ed9d9119a..5ff421bebb 100644 --- a/docs/administration/configuration/configuration.md +++ b/docs/administration/configuration/configuration.md @@ -72,9 +72,10 @@ parameters: an_array: [apple, banana, pear] ``` -``` php {skip-validation} +``` php // Usage inside a controller -$myParameter = $this->container->getParameter( 'myapp.parameter.name' ); +/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ +$myParameter = $container->getParameter('myapp.parameter.name'); ``` ## Configuration settings diff --git a/docs/administration/configuration/dynamic_configuration.md b/docs/administration/configuration/dynamic_configuration.md index 5a0283118a..60d8516a97 100644 --- a/docs/administration/configuration/dynamic_configuration.md +++ b/docs/administration/configuration/dynamic_configuration.md @@ -27,11 +27,11 @@ parameters: myapp.default.my_param: Default value ``` -Inside a controller, in `site_group` SiteAccess, you can use the parameters in the following way (the same applies for `hasParameter()`): +Inside a controller extending the `Ibexa\Core\MVC\Symfony\Controller\Controller` class, in `site_group` SiteAccess, you can use the parameters in the following way (the same applies for `hasParameter()`): ``` php {skip-validation} $configResolver = $this->getConfigResolver(); -  + // ibexa.site_access.config is the default namespace, so no need to specify it // The following will resolve ibexa.site_access.config..content.default_ttl // In the case of site_group, it will return 3600. @@ -77,24 +77,18 @@ For more information about dependency injection, see [Service container](php_api Don't store the retrieved config value unless you know what you're doing. SiteAccess can change during code execution, which means you might work on the wrong value. -``` php {skip-validation} +``` php namespace App; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; -  + class Service { -  /** - * @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface - */ - private $configResolver; -  - public function __construct( ConfigResolverInterface $configResolver ) + public function __construct(private readonly ConfigResolverInterface $configResolver) { - $this->configResolver = $configResolver; } - public function someMethodThatNeedConfig() + public function someMethodThatNeedConfig(): void { $configValue = $this->configResolver->getParameter('my_param', 'myapp'); } diff --git a/docs/administration/configuration/repository_configuration.md b/docs/administration/configuration/repository_configuration.md index 673f7e8db1..9396455bfd 100644 --- a/docs/administration/configuration/repository_configuration.md +++ b/docs/administration/configuration/repository_configuration.md @@ -303,7 +303,7 @@ This enables you to use different settings for different repositories. To do this, create a parser that implements `Ibexa\Bundle\Core\DependencyInjection\Configuration\RepositoryConfigParserInterface`: -``` php {skip-validation} +``` php use Ibexa\Bundle\Core\DependencyInjection\Configuration\RepositoryConfigParserInterface; use Symfony\Component\Config\Definition\Builder\NodeBuilder; @@ -326,7 +326,10 @@ final class CustomRepositoryConfigParser implements RepositoryConfigParserInterf You need to register this configuration extension in the following way: -``` php {skip-validation} +``` php +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\HttpKernel\Bundle\Bundle; + final class AcmeFeatureBundle extends Bundle { public function build(ContainerBuilder $container): void @@ -342,6 +345,7 @@ final class AcmeFeatureBundle extends Bundle To access the configuration settings, use the `Ibexa\Bundle\Core\ApiLoader\RepositoryConfigurationProvider::getRepositoryConfig` method: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface $repositoryConfigProvider */ $acmeConfig = $repositoryConfigProvider->getRepositoryConfig()['acme']; ``` diff --git a/docs/ai/ai_actions/configure_ai_actions.md b/docs/ai/ai_actions/configure_ai_actions.md index c0e6804e24..3b0627b347 100644 --- a/docs/ai/ai_actions/configure_ai_actions.md +++ b/docs/ai/ai_actions/configure_ai_actions.md @@ -105,8 +105,11 @@ composer require ibexa/connector-gemini Then, if not using Symfony Flex, enable the bundle in `config/bundles.php`: -``` php {skip-validation} +``` php +return [ + // ... Ibexa\Bundle\ConnectorGemini\IbexaConnectorGeminiBundle::class => ['all' => true], +]; ``` This adds the feature code, including basic handlers that let you refine text or generate alternative text for images. diff --git a/docs/api/php_api/php_api.md b/docs/api/php_api/php_api.md index 1859117e6f..b6224b71f8 100644 --- a/docs/api/php_api/php_api.md +++ b/docs/api/php_api/php_api.md @@ -107,14 +107,15 @@ You can use this method to perform an action that the current user doesn't have For example, to [hide a Location](managing_content.md#hiding-and-revealing-locations), use: -``` php {skip-validation} +``` php use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Contracts\Core\Repository\Values\Content\Location; //... -$hiddenLocation = $repository->sudo(function (Repository $repository) use ($location) { - return $repository->getLocationService()->hideLocation($location); -}); +/** @var Repository $repository */ +/** @var Location $location */ +$hiddenLocation = $repository->sudo(static fn (Repository $repository): Location => $repository->getLocationService()->hideLocation($location)); ``` ### Setting the repository user @@ -146,12 +147,12 @@ For example if you're using a command which takes the content ID as a parameter, Both cases should be covered with error messages: -``` php {skip-validation} +``` php try { // ... -} catch (\Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException $e) { +} catch (\Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException) { $output->writeln("No content with id $contentId found"); -} catch (\Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException $e) { +} catch (\Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException) { $output->writeln("Permission denied on content with id $contentId"); } ``` diff --git a/docs/api/rest_api/extending_rest_api/creating_new_rest_resource.md b/docs/api/rest_api/extending_rest_api/creating_new_rest_resource.md index b130bec07f..e71f602206 100644 --- a/docs/api/rest_api/extending_rest_api/creating_new_rest_resource.md +++ b/docs/api/rest_api/extending_rest_api/creating_new_rest_resource.md @@ -68,10 +68,14 @@ If the returned value was depending on a location, it could have been wrapped in `CachedValue` is used in the following way: -``` php {skip-validation} +``` php +use Ibexa\Rest\Server\Values\CachedValue; + +$locationId = 12345; + return new CachedValue( - new MyValue($args…), - ['locationId'=> $locationId] + new MyValue($args), + ['locationId' => $locationId] ); ``` diff --git a/docs/commerce/cart/cart_api.md b/docs/commerce/cart/cart_api.md index df91de71c1..2cb62ea298 100644 --- a/docs/commerce/cart/cart_api.md +++ b/docs/commerce/cart/cart_api.md @@ -64,11 +64,14 @@ To update cart metadata, use the `CartServiceInterface::updateCartMetadata` meth You can also use this method to change cart ownership: -``` php {skip-validation} +``` php use Ibexa\Contracts\Cart\Value\CartMetadataUpdateStruct; // ... +/** @var \Ibexa\Contracts\Core\Repository\UserService $userService */ +/** @var \Ibexa\Contracts\Cart\CartServiceInterface $cartService */ +/** @var \Ibexa\Contracts\Cart\Value\CartInterface $cart */ $updateMetadataStruct = new CartMetadataUpdateStruct(); $updateMetadataStruct->setOwner($userService->loadUserByLogin('user')); @@ -150,8 +153,14 @@ It can include any relevant information that you want to associate with a partic To add context data to a cart, follow this example: -``` php {skip-validation} -$createStruct = new CartCreateStruct(...); +``` php +use Ibexa\Contracts\Cart\Value\CartCreateStruct; +use Ibexa\Contracts\Core\Collection\ArrayMap; +use Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface; + +/** @var \Ibexa\Contracts\Cart\CartServiceInterface $cartService */ +/** @var CurrencyInterface $currency */ +$createStruct = new CartCreateStruct('My Cart', $currency); $createStruct->setContext(new ArrayMap([ 'coupon_code' => 'X1MF7699', ])); @@ -166,8 +175,15 @@ You also add "X1MF7699" coupon code as context data to the cart. To attach context data to a cart entry, proceed as follows: -``` php {skip-validation} -$entryAddStruct = new EntryAddStruct(...); +``` php +use Ibexa\Contracts\Cart\Value\EntryAddStruct; +use Ibexa\Contracts\Core\Collection\ArrayMap; +use Ibexa\ProductCatalog\Local\Repository\Values\Product; + +/** @var \Ibexa\Contracts\Cart\CartServiceInterface $cartService */ +/** @var \Ibexa\Contracts\Cart\Value\CartInterface $cart */ +/** @var Product $product */ +$entryAddStruct = new EntryAddStruct($product); $entryAddStruct->setContext(new ArrayMap([ 'tshirt_text' => 'EqEqEqEq', ])); diff --git a/docs/commerce/shopping_list/install_shopping_list.md b/docs/commerce/shopping_list/install_shopping_list.md index 71db857bd9..1c5d0829ca 100644 --- a/docs/commerce/shopping_list/install_shopping_list.md +++ b/docs/commerce/shopping_list/install_shopping_list.md @@ -18,8 +18,11 @@ The associated Symfony Flex recipe configures the bundle and its routes. Check that the following line has been added by the recipe to `config/bundles.php` file's array: -``` php {skip-validation} +``` php +return [ + // ... Ibexa\Bundle\ShoppingList\IbexaShoppingListBundle::class => ['all' => true], +]; ``` And that you have a `config/routes/ibexa_shopping_list.yaml` file configuring the following routes: diff --git a/docs/commerce/shopping_list/shopping_list_api.md b/docs/commerce/shopping_list/shopping_list_api.md index adbe6a4366..3029d347db 100644 --- a/docs/commerce/shopping_list/shopping_list_api.md +++ b/docs/commerce/shopping_list/shopping_list_api.md @@ -40,8 +40,12 @@ and with sort clauses from the [`SortClause` namespace](/api/php_api/php_api_ref To get all shopping lists (of the current user or of the whole repository depending on the current user limitation), use the search method without criterion: -``` php {skip-validation} -$lists = $this->shoppingListService->findShoppingLists(new ShoppingListQuery()); +``` php +use Ibexa\Contracts\ShoppingList\ShoppingListServiceInterface; +use Ibexa\Contracts\ShoppingList\Value\ShoppingListQuery; + +/** @var ShoppingListServiceInterface $shoppingListService */ +$lists = $shoppingListService->findShoppingLists(new ShoppingListQuery()); ``` For more information about the shopping list search, @@ -56,12 +60,17 @@ If you forgot to retrieve this result in your variable, the local object isn't s In the following example, if some assignments (`$list =`) are removed, the dumped `$list` object doesn't contain the stored shopping list at that time. If only the middle assignment is removed, the last dumped variable contains the up-to-date shopping list. -``` php {skip-validation} -$list = $this->shoppingListService->getOrCreateDefaultShoppingList(); +``` php +use Ibexa\Contracts\ShoppingList\ShoppingListServiceInterface; +use Ibexa\Contracts\ShoppingList\Value\EntryAddStruct; + +/** @var ShoppingListServiceInterface $shoppingListService */ +/** @var string $productCode */ +$list = $shoppingListService->getOrCreateDefaultShoppingList(); dump($list); -$list = $this->shoppingListService->clearShoppingList($list); +$list = $shoppingListService->clearShoppingList($list); dump($list); -$list = $this->shoppingListService->addEntries($list, [new EntryAddStruct($productCode)]); +$list = $shoppingListService->addEntries($list, [new EntryAddStruct($productCode)]); dump($list); ``` diff --git a/docs/commerce/storefront/configure_storefront.md b/docs/commerce/storefront/configure_storefront.md index 2a3f578a90..a542100349 100644 --- a/docs/commerce/storefront/configure_storefront.md +++ b/docs/commerce/storefront/configure_storefront.md @@ -63,21 +63,9 @@ The basic configuration of the Storefront can look as follows: ## Retrieve catalog assigned to user -The `\Ibexa\Contracts\Storefront\Repository\CatalogResolverInterface` interface allows retrieving the product catalog available for a specific user. +The [`\Ibexa\Contracts\Storefront\Repository\CatalogResolverInterface`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Storefront-Repository-CatalogResolverInterface.html) interface allows retrieving the product catalog available for a specific user. -``` php {skip-validation} -namespace Ibexa\Contracts\Storefront\Repository; - -use Ibexa\Contracts\Core\Repository\Values\User\User; -use Ibexa\Contracts\ProductCatalog\Values\CatalogInterface; - -interface CatalogResolverInterface -{ - public function resolveCatalog(?User $user = null): ?CatalogInterface; -} -``` - -`null` stands for the current user. +To retrieve catalog assigned for the current user, pass `null`. ### Configure user account diff --git a/docs/commerce/storefront/extend_storefront.md b/docs/commerce/storefront/extend_storefront.md index 93a94d6ce5..89d6d5c307 100644 --- a/docs/commerce/storefront/extend_storefront.md +++ b/docs/commerce/storefront/extend_storefront.md @@ -99,7 +99,13 @@ After you modify the controller, it can also pass the following parameters: Define your own logic in a custom controller. Refer to the code snippet below and create your own file, for example, `CustomProductRenderController.php`: -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\ProductInterface; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Response; + +class CustomProductRenderController extends AbstractController +{ public function renderAction(ProductInterface $product): Response { return $this->render('@ibexadesign/storefront/product_card.html.twig', [ @@ -109,4 +115,5 @@ Refer to the code snippet below and create your own file, for example, `CustomPr 'is_relative' => true, ]); } +} ``` diff --git a/docs/commerce/transactional_emails/extend_transactional_emails.md b/docs/commerce/transactional_emails/extend_transactional_emails.md index cc65257606..679f25621b 100644 --- a/docs/commerce/transactional_emails/extend_transactional_emails.md +++ b/docs/commerce/transactional_emails/extend_transactional_emails.md @@ -30,16 +30,13 @@ framework: [[= product_name =]] comes with a predefined [set of variables](transactional_emails_parameters.md) that you can use when building a template for your transactional email campaign at Actito. If this list isn't sufficient, you can use Events to include additional variables: -``` php {skip-validation} +``` php getRecipient(); $profile = $event->getProfile(); - $user = $recipient->getUser(); - - // Provide additional data if your profile has more attributes: + $user = $recipient->getUser(); + + // Provide additional data if your profile has more attributes: $attributes = $profile->getAttributes(); $attributes[] = new Attribute('name', $user->getName()); $profile->setAttributes($attributes); @@ -120,8 +117,8 @@ final class TransactionalMailFactoryEventSubscriber implements EventSubscriberIn $profile->setSegmentations($segmentations); // Use the same mechanism to pass other profile data - $profile->setSubscriptions(...); - $profile->setDataCollection(...); + // $profile->setSubscriptions($subscriptions); + // $profile->setDataCollection($dataCollection); } } ``` @@ -134,7 +131,7 @@ You could do it by adding a language suffix to a campaign name. On [[= product_name =]] side, to support this scenario, you must use an Event Subscriber on `Ibexa\Contracts\ConnectorActito\Event\ResolveCampaignEvent`: -``` php {skip-validation} +``` php contentService->loadVersionInfo($contentInfo, 2); +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +$versionInfo = $contentService->loadVersionInfo($contentInfo, 2); ``` `loadRelationList` provides an iterable [`RelationList`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Values-Content-RelationList.html) object @@ -169,13 +171,19 @@ The repository is SiteAccess-aware, so languages defined by the SiteAccess are a To load a specific language, provide its language code when loading the content item: -``` php {skip-validation} -$content = $this->contentService->loadContent($contentId, ['ger-DE']); +``` php +/** @var int $contentId */ +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +$content = $contentService->loadContent($contentId, ['ger-DE']); ``` To load all languages as a prioritized list, use `Language::ALL`: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Language; + +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ $contentService->loadContent($content->id, Language::ALL); ``` @@ -202,9 +210,13 @@ You can do it through the `getMainLocation` method of the ContentInfo object. Next, use the `getParentLocation` method of the location object to access the parent location: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ $mainLocation = $contentInfo->getMainLocation(); -$output->writeln("Parent Location: " . $mainLocation->getParentLocation()->pathString); +$parentLocation = $mainLocation?->getParentLocation(); +if ($parentLocation !== null) { + $message = 'Parent Location: ' . $parentLocation->pathString; +} ``` ## Getting content from a location @@ -222,11 +234,16 @@ The versions must have the same language. For example, to get the comparison between the `name` field of two versions: -``` php {skip-validation} -$versionFrom = $this->contentService->loadVersionInfo($contentInfo, $versionFromId); -$versionTo = $this->contentService->loadVersionInfo($contentInfo, $versionToId); - -$nameComparison = $this->comparisonService->compare($versionFrom, $versionTo)->getFieldValueDiffByIdentifier('name')->getComparisonResult(); +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ +/** @var int $versionFromId */ +/** @var int $versionToId */ +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +/** @var \Ibexa\Contracts\VersionComparison\Service\VersionComparisonServiceInterface $comparisonService */ +$versionFrom = $contentService->loadVersionInfo($contentInfo, $versionFromId); +$versionTo = $contentService->loadVersionInfo($contentInfo, $versionToId); + +$nameComparison = $comparisonService->compare($versionFrom, $versionTo)->getFieldValueDiffByIdentifier('name')->getComparisonResult(); ``` `getComparisonResult` returns a `ComparisonResult` object, which depends on the field type being compared. diff --git a/docs/content_management/content_api/creating_content.md b/docs/content_management/content_api/creating_content.md index 93c678d8cb..55c3ee89c1 100644 --- a/docs/content_management/content_api/creating_content.md +++ b/docs/content_management/content_api/creating_content.md @@ -103,6 +103,9 @@ Only one language can still be set as a version's initial language: You can delete a single translation from a content item's version using [`ContentService::deleteTranslationFromDraft`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-ContentService.html#method_deleteTranslationFromDraft). The method must be provided with a `VersionInfo` object and the code of the language to delete: -``` php {skip-validation} -$this->contentService->deleteTranslationFromDraft($versionInfo, $language); +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ +$languageCode = 'ger-DE'; +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +$contentService->deleteTranslationFromDraft($versionInfo, $languageCode); ``` diff --git a/docs/content_management/content_api/managing_content.md b/docs/content_management/content_api/managing_content.md index 6c9eef745b..bce7f49f60 100644 --- a/docs/content_management/content_api/managing_content.md +++ b/docs/content_management/content_api/managing_content.md @@ -116,9 +116,13 @@ Trash location is identical to the origin location of the object. The content item is restored under its previous location. You can also provide a different location to restore in as a second argument: -``` php {skip-validation} -$newParent = $this->locationService->loadLocation($location); -$this->trashService->recover($trashItem, $newParent); +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\TrashItem $trashItem */ +/** @var \Ibexa\Contracts\Core\Repository\LocationService $locationService */ +/** @var \Ibexa\Contracts\Core\Repository\TrashService $trashService */ +$locationId = 12345; +$newParent = $locationService->loadLocation($locationId); +$trashService->recover($trashItem, $newParent); ``` You can also search through Trash items and sort the results using several public PHP API Search Criteria and Sort Clauses that have been exposed for `TrashService` queries. diff --git a/docs/content_management/field_types/field_type_reference/addressfield.md b/docs/content_management/field_types/field_type_reference/addressfield.md index 56dd76466e..d4f01ae0c5 100644 --- a/docs/content_management/field_types/field_type_reference/addressfield.md +++ b/docs/content_management/field_types/field_type_reference/addressfield.md @@ -27,7 +27,9 @@ provided by the `ibexa/fieldtype-address` package. ### Example input -``` php {skip-validation} +``` php +use Ibexa\FieldTypeAddress\FieldType; + new FieldType\Value( 'My home address', 'PL', @@ -112,7 +114,7 @@ ibexa.address.field.tax_number.billing_address.DE An event listener can also provide validation by using either one of [constraints provided by Symfony]([[= symfony_doc =]]/validation.html#supported-constraints), or a custom constraint. -``` php {skip-validation} +``` php use Ibexa\Contracts\FieldTypeAddress\Event\MapFieldEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Form\Extension\Core\Type\IntegerType; diff --git a/docs/content_management/field_types/field_type_reference/authorfield.md b/docs/content_management/field_types/field_type_reference/authorfield.md index bccec3a3e2..5b19602895 100644 --- a/docs/content_management/field_types/field_type_reference/authorfield.md +++ b/docs/content_management/field_types/field_type_reference/authorfield.md @@ -18,17 +18,19 @@ This field type allows the storage and retrieval of one or more authors. For eac Example: -``` php {skip-validation} -$authorList = Author\Value([ +``` php +use Ibexa\Core\FieldType\Author; + +$authorList = new Author\Value([ new Author\Author([ 'id' => 1, 'name' => 'Boba Fett', - 'email' => 'boba.fett@example.com' + 'email' => 'boba.fett@example.com', ]), new Author\Author([ 'id' => 2, 'name' => 'Darth Vader', - 'email' => 'darth.vader@example.com' + 'email' => 'darth.vader@example.com', ]), ]); ``` @@ -50,8 +52,8 @@ Example 'id' => 2, 'name' => 'Darth Vader', 'email' => 'darth.vader@example.com' - ] -] + ], +]; ``` #### String representation @@ -79,12 +81,12 @@ Following `defaultAuthor` default value options are available as constants in | `DEFAULT_VALUE_EMPTY` | Default value is empty. | | `DEFAULT_CURRENT_USER` | Default value uses currently logged user. | -``` php {skip-validation} +``` php // Author field type example settings use Ibexa\Core\FieldType\Author\Type; $settings = [ - "defaultAuthor" => Type::DEFAULT_VALUE_EMPTY + 'defaultAuthor' => Type::DEFAULT_VALUE_EMPTY, ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/binaryfilefield.md b/docs/content_management/field_types/field_type_reference/binaryfilefield.md index 7d730017af..0d3d48903a 100644 --- a/docs/content_management/field_types/field_type_reference/binaryfilefield.md +++ b/docs/content_management/field_types/field_type_reference/binaryfilefield.md @@ -46,7 +46,8 @@ The hash format mostly matches the value object. It has the following keys: Example: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct $fileContentCreateStruct */ $fileContentCreateStruct->setField('file', new Ibexa\Core\FieldType\BinaryFile\Value([ 'fileName' => 'example.pdf', 'inputUri' => '/tmp/example_for_website.pdf', diff --git a/docs/content_management/field_types/field_type_reference/checkboxfield.md b/docs/content_management/field_types/field_type_reference/checkboxfield.md index dad0f01535..31bf3760b9 100644 --- a/docs/content_management/field_types/field_type_reference/checkboxfield.md +++ b/docs/content_management/field_types/field_type_reference/checkboxfield.md @@ -18,30 +18,30 @@ The Value class of this field type contains the following properties: |----------|-----------|---------------|--------------------------------------------------------------------------------| | `$bool` | `boolean` | `false` | This property is used for the checkbox status, represented by a boolean value. | -``` php {skip-validation} +``` php //Value object content examples -use Ibexa\Core\FieldType\Checkbox\Type; +use Ibexa\Core\FieldType\Checkbox\Value; // Instantiates a checkbox value with a default state (false) -$checkboxValue = new Checkbox\Value(); +$checkboxValue = new Value(); // Checked -$value->bool = true; +$checkboxValue->bool = true; // Unchecked -$value->bool = false; +$checkboxValue->bool = false; ``` ##### Constructor The `Checkbox\Value` constructor accepts a boolean value: -``` php {skip-validation} +``` php // Constructor example -use Ibexa\Core\FieldType\Checkbox\Type; +use Ibexa\Core\FieldType\Checkbox\Value; // Instantiates a checkbox value with a checked state -$checkboxValue = new Checkbox\Value( true ); +$checkboxValue = new Value(true); ``` ##### String representation diff --git a/docs/content_management/field_types/field_type_reference/countryfield.md b/docs/content_management/field_types/field_type_reference/countryfield.md index 8a1edfbc36..10f49cfe9d 100644 --- a/docs/content_management/field_types/field_type_reference/countryfield.md +++ b/docs/content_management/field_types/field_type_reference/countryfield.md @@ -37,10 +37,10 @@ The field definition of this field type can be configured with one option: |--------------|-----------|---------------|--------------------------------------------------------------------------------------------| | `isMultiple` | `boolean` | `false` | This setting allows (if true) or prohibits (if false) the selection of multiple countries. | -``` php {skip-validation} +``` php // Country FieldType example settings $settings = [ - "isMultiple" => true + 'isMultiple' => true, ]; ``` @@ -49,9 +49,10 @@ $settings = [ The format used for serialization is simpler than the full format. It's also available when setting value on the content field, by setting the value to an array instead of the value object. Example of that shown below: -``` php {skip-validation} +``` php // Value object content example -$content->fields["countries"] = [ "JP", "NO" ]; +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ +$content->fields['countries'] = ['JP', 'NO']; ``` The format used by the toHash method is the Alpha2 value, however the input is capable of accepting either Name, Alpha2, or Alpha3 value as shown below in the value object section. @@ -66,15 +67,16 @@ The Value class of this field type contains the following properties: |--------------|-----------|---------------------------------------------------------------------------------------| | `$countries` | `array[]` | This property is used for the country selection provided as input, as its attributes. | -``` php {skip-validation} +``` php // Value object content example +/** @var \Ibexa\Core\FieldType\Country\Value $value */ $value->countries = [ - "JP" => [ - "Name" => "Japan", - "Alpha2" => "JP", - "Alpha3" => "JPN", - "IDC" => 81 - ] + 'JP' => [ + 'Name' => 'Japan', + 'Alpha2' => 'JP', + 'Alpha3' => 'JPN', + 'IDC' => 81, + ], ]; ``` @@ -83,18 +85,19 @@ $value->countries = [ The `Country\Value` constructor initializes a new value object with the value provided. It expects an array as input. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\Country as Country; // Instantiates a Country Value object $countryValue = new Country\Value( [ - "JP" => [ - "Name" => "Japan", - "Alpha2" => "JP", - "Alpha3" => "JPN", - "IDC" => 81 - ] + 'JP' => [ + 'Name' => 'Japan', + 'Alpha2' => 'JP', + 'Alpha3' => 'JPN', + 'IDC' => 81, + ], ] ); ``` diff --git a/docs/content_management/field_types/field_type_reference/dateandtimefield.md b/docs/content_management/field_types/field_type_reference/dateandtimefield.md index 51da5773d3..32592df213 100644 --- a/docs/content_management/field_types/field_type_reference/dateandtimefield.md +++ b/docs/content_management/field_types/field_type_reference/dateandtimefield.md @@ -59,10 +59,10 @@ Hash value of this field type is an array with two keys: | `timestamp` | `integer` | Time information in [Unix format timestamp](https://en.wikipedia.org/wiki/Unix_time). | `1400856992` | | `rfc850` | `string` | Time information as a string in [RFC 850 date format](https://datatracker.ietf.org/doc/html/rfc850). As input, this has precedence over the timestamp value. | `"Friday, 23-May-14 14:56:14 GMT+0000"` | -``` php {skip-validation} +``` php $hash = [ - "timestamp" => 1400856992, - "rfc850" => "Friday, 23-May-14 14:56:14 GMT+0000" + 'timestamp' => 1400856992, + 'rfc850' => 'Friday, 23-May-14 14:56:14 GMT+0000', ]; ``` @@ -88,15 +88,15 @@ Following `defaultType` default value options are available as constants in the | `DEFAULT_CURRENT_DATE` | Default value uses current date. | | `DEFAULT_CURRENT_DATE_ADJUSTED` | Default value uses current date, adjusted by the interval defined in `dateInterval` setting. | -``` php {skip-validation} +``` php // DateAndTime FieldType example settings use Ibexa\Core\FieldType\DateAndTime\Type; $settings = [ - "useSeconds" => false, - "defaultType" => Type::DEFAULT_EMPTY, - "dateInterval" => null + 'useSeconds' => false, + 'defaultType' => Type::DEFAULT_EMPTY, + 'dateInterval' => null, ]; ``` @@ -110,6 +110,6 @@ The template called by the [`ibexa_render_field()` Twig function](field_twig_fun Example: -``` php {skip-validation} +``` html+twig {{ ibexa_render_field(content, 'datetime') }} ``` diff --git a/docs/content_management/field_types/field_type_reference/datefield.md b/docs/content_management/field_types/field_type_reference/datefield.md index 3176af3f13..18633d89be 100644 --- a/docs/content_management/field_types/field_type_reference/datefield.md +++ b/docs/content_management/field_types/field_type_reference/datefield.md @@ -61,11 +61,11 @@ Hash value of this field type is an array with two keys: | `timestamp` | `integer` | Time information in [Unix format timestamp](https://en.wikipedia.org/wiki/Unix_time). | `1400856992` | | `rfc850` | `string` | Time information as a string in [RFC 850 date format](https://datatracker.ietf.org/doc/html/rfc850). As input, this has higher precedence over the timestamp value. | `"Friday, 23-May-14 14:56:14 GMT+0000"` | -``` php {skip-validation} +``` php // Example of the hash value in PHP $hash = [ - "timestamp" => 1400856992, - "rfc850" => "Friday, 23-May-14 14:56:14 GMT+0000" + 'timestamp' => 1400856992, + 'rfc850' => 'Friday, 23-May-14 14:56:14 GMT+0000', ]; ``` @@ -88,13 +88,13 @@ Following `defaultType` default value options are available as constants in the | `DEFAULT_EMPTY` | Default value is empty. | | `DEFAULT_CURRENT_DATE` | Default value uses current date. | -``` php {skip-validation} +``` php // Date field type example settings use Ibexa\Core\FieldType\Date\Type; $settings = [ - "defaultType" => Type::DEFAULT_EMPTY + 'defaultType' => Type::DEFAULT_EMPTY, ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/emailaddressfield.md b/docs/content_management/field_types/field_type_reference/emailaddressfield.md index 1ea8a41710..06294cf899 100644 --- a/docs/content_management/field_types/field_type_reference/emailaddressfield.md +++ b/docs/content_management/field_types/field_type_reference/emailaddressfield.md @@ -18,16 +18,16 @@ The `Value` class of this field type contains the following properties: |----------|----------|-----------------------------------------------------------------------| | `$email` | `string` | This property is used for the input string provided as email address. | -``` php {skip-validation} +``` php // Value object content example -use Ibexa\Core\FieldType\EmailAddress\Type; +use Ibexa\Core\FieldType\EmailAddress\Value; // Instantiates an EmailAddress Value object with default value (empty string) -$emailaddressValue = new Type\Value(); +$emailaddressValue = new Value(); // Email definition -$emailaddressValue->email = "someuser@example.com"; +$emailaddressValue->email = 'someuser@example.com'; ``` ##### Constructor @@ -35,13 +35,13 @@ $emailaddressValue->email = "someuser@example.com"; The `EmailAddress\Value` constructor initializes a new value object with the value provided. It accepts a string as input. -``` php {skip-validation} +``` php // Constructor example -use Ibexa\Core\FieldType\EmailAddress\Type; +use Ibexa\Core\FieldType\EmailAddress\Value; // Instantiates an EmailAddress Value object -$emailaddressValue = new Type\Value( "someuser@example.com" ); +$emailaddressValue = new Value('someuser@example.com'); ``` ##### String representation diff --git a/docs/content_management/field_types/field_type_reference/floatfield.md b/docs/content_management/field_types/field_type_reference/floatfield.md index 560c669905..b8f36d8faa 100644 --- a/docs/content_management/field_types/field_type_reference/floatfield.md +++ b/docs/content_management/field_types/field_type_reference/floatfield.md @@ -27,15 +27,15 @@ The Value class of this field type contains the following properties: |----------|---------|---------------------------------------------------------------| | `$value` | `float` | This property is used to store the value provided as a float. | -``` php {skip-validation} +``` php // Value object content example -use Ibexa\Core\FieldType\Float\Type; +use Ibexa\Core\FieldType\Float\Value as FloatValue; // Instantiates a Float Value object -$floatValue = new Type\Value(); +$floatValue = new FloatValue(); -$float->value = 284.773 +$floatValue->value = 284.773; ``` ##### Constructor @@ -43,13 +43,13 @@ $float->value = 284.773 The `Float\Value` constructor initializes a new value object with the value provided. It expects a numeric value with or without decimals. -``` php {skip-validation} +``` php // Constructor example -use Ibexa\Core\FieldType\Float\Type; +use Ibexa\Core\FieldType\Float\Value as FloatValue; // Instantiates a Float Value object -$floatValue = new Type\Value( 284.773 ); +$floatValue = new FloatValue(284.773); ``` ### Validation @@ -61,20 +61,19 @@ This field type supports `FloatValueValidator`, defining maximum and minimum flo | `minFloatValue` | `float` | `null | This setting defines the minimum value this field type which is allowed as input. | | `maxFloatValue` | `float` | `null | This setting defines the maximum value this field type which is allowed as input. | -``` php {skip-validation} +``` php // Validator configuration example in PHP -use Ibexa\Core\FieldType\Float\Type; - +/** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ $contentTypeService = $repository->getContentTypeService(); -$floatFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct( "float", "ibexa_float" ); +$floatFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct('float', 'ibexa_float'); // Accept only numbers between 0.1 and 203.99 $floatFieldCreateStruct->validatorConfiguration = [ - "FileSizeValidator" => [ - "minFloatValue" => 0.1, - "maxFloatValue" => 203.99 - ] + 'FileSizeValidator' => [ + 'minFloatValue' => 0.1, + 'maxFloatValue' => 203.99, + ], ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/imageassetfield.md b/docs/content_management/field_types/field_type_reference/imageassetfield.md index d3eb4a70bf..ec86c3808c 100644 --- a/docs/content_management/field_types/field_type_reference/imageassetfield.md +++ b/docs/content_management/field_types/field_type_reference/imageassetfield.md @@ -29,11 +29,13 @@ Value object of `ibexa_image_asset` contains the following properties: | `destinationContentId` | `int` | Related content ID. | | `alternativeText` | `string` | The alternative image text (for example "Picture of an apple."). | -``` php {skip-validation} +``` php // Value object content example +/** @var \Ibexa\Core\FieldType\ImageAsset\Value $imageAssetValue */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ $imageAssetValue->destinationContentId = $contentInfo->id; -$imageAssetValue->alternativeText = "Picture of an apple."; +$imageAssetValue->alternativeText = 'Picture of an apple.'; ``` #### Constructor @@ -41,11 +43,14 @@ $imageAssetValue->alternativeText = "Picture of an apple."; The `ImageAsset\Value` constructor initializes a new value object with the value provided. It expects an ID of a content item representing asset and the alternative text. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\ImageAsset as ImageAsset; + +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ // Instantiates a ImageAsset Value object -$imageAssetValue = new ImageAsset\Value($contentInfo->id, "Picture of an apple."); +$imageAssetValue = new ImageAsset\Value($contentInfo->id, 'Picture of an apple.'); ``` ### Validation diff --git a/docs/content_management/field_types/field_type_reference/imagefield.md b/docs/content_management/field_types/field_type_reference/imagefield.md index 602630b7e7..f94c8ae396 100644 --- a/docs/content_management/field_types/field_type_reference/imagefield.md +++ b/docs/content_management/field_types/field_type_reference/imagefield.md @@ -149,9 +149,14 @@ Requested through REST, this resource generates the variation if it doesn't exis The variation service, `ibexa.field_type.ibexa_image.variation_service`, can be used to generate/get variations for a field. It expects a VersionInfo, the Image field, and the variation name as a string (`large`, `medium`, and more.): -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Variation\VariationHandler $imageVariationHandler */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Field $imageField */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ $variation = $imageVariationHandler->getVariation( - $imageField, $versionInfo, 'large' + $imageField, + $versionInfo, + 'large' ); echo $variation->uri; @@ -164,42 +169,47 @@ echo $variation->uri; As for any field type, there are several ways to input content to a field. For an Image, the quickest is to call `setField()` on the ContentStruct: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +/** @var \Ibexa\Contracts\Core\Repository\ContentTypeService $contentTypeService */ $createStruct = $contentService->newContentCreateStruct( - $contentTypeService->loadContentType( 'image' ), + $contentTypeService->loadContentTypeByIdentifier('image'), 'eng-GB' ); -$createStruct->setField( 'image', '/tmp/image.png' ); +$createStruct->setField('image', '/tmp/image.png'); ``` To customize the Image's alternative texts, you must first get an `Image\Value` object, and set this property. For that, you can use the `Image\Value::fromString()` method that accepts the path to a local file: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +/** @var \Ibexa\Contracts\Core\Repository\ContentTypeService $contentTypeService */ $createStruct = $contentService->newContentCreateStruct( - $contentTypeService->loadContentType( 'image' ), + $contentTypeService->loadContentTypeByIdentifier('image'), 'eng-GB' ); -$imageField = \Ibexa\Core\FieldType\Image\Value::fromString( '/tmp/image.png' ); +$imageField = \Ibexa\Core\FieldType\Image\Value::fromString('/tmp/image.png'); $imageField->alternativeText = 'My alternative text'; -$createStruct->setField( 'image', $imageField ); +$createStruct->setField('image', $imageField); ``` You can also provide a hash of `Image\Value` properties, either to `setField()`, or to the constructor: -``` php {skip-validation} +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct $createStruct */ $imageValue = new \Ibexa\Core\FieldType\Image\Value( [ 'id' => '/tmp/image.png', 'fileSize' => 37931, 'fileName' => 'image.png', - 'alternativeText' => 'My alternative text' + 'alternativeText' => 'My alternative text', ] ); -$createStruct->setField( 'image', $imageValue ); +$createStruct->setField('image', $imageValue); ``` ### From REST diff --git a/docs/content_management/field_types/field_type_reference/integerfield.md b/docs/content_management/field_types/field_type_reference/integerfield.md index 8aeb15b0d4..1315514313 100644 --- a/docs/content_management/field_types/field_type_reference/integerfield.md +++ b/docs/content_management/field_types/field_type_reference/integerfield.md @@ -24,9 +24,10 @@ The Value class of this field type contains the following properties: |----------|-------|------------| | `$value` | `int` | This property is used to store the value provided as an integer. | -``` php {skip-validation} +``` php // Value object content example -$integer->value = 8 +/** @var \Ibexa\Core\FieldType\Integer\Value $integer */ +$integer->value = 8; ``` #### Constructor @@ -34,12 +35,12 @@ $integer->value = 8 The `Integer\Value` constructor initializes a new value object with the value provided. It expects a numeric, integer value. -``` php {skip-validation} +``` php // Constructor example use Ibexa\Core\FieldType\Integer; // Instantiates a Integer Value object -$integerValue = new Integer\Value( 8 ); +$integerValue = new Integer\Value(8); ``` #### Hash format @@ -63,11 +64,11 @@ This field type supports `IntegerValueValidator`, defining maximum and minimum f |`minIntegerValue`|`int`|`0`|This setting defines the minimum value this field type which is allowed as input.| |`maxIntegerValue`|`int`|`null`|This setting defines the maximum value this field type which is allowed as input.| -``` php {skip-validation} +``` php // Example of validator configuration in PHP $validatorConfiguration = [ - "minIntegerValue" => 1, - "maxIntegerValue" => 24 + 'minIntegerValue' => 1, + 'maxIntegerValue' => 24, ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/isbnfield.md b/docs/content_management/field_types/field_type_reference/isbnfield.md index 8f5e8092a3..57cd27dd50 100644 --- a/docs/content_management/field_types/field_type_reference/isbnfield.md +++ b/docs/content_management/field_types/field_type_reference/isbnfield.md @@ -32,9 +32,8 @@ It accepts a string as argument and sets it to the `isbn` attribute. The input passed into this field type is subject of ISBN validation depending on the field settings in its FieldDefinition stored in the content type. An example of this field setting is shown below and controls if input is validated as ISBN-13 or ISBN-10: -``` php {skip-validation} -Array -( - [isISBN13] => true -) +``` php +[ + 'isISBN13' => true, +]; ``` diff --git a/docs/content_management/field_types/field_type_reference/keywordfield.md b/docs/content_management/field_types/field_type_reference/keywordfield.md index 60bcc33841..18109a8d44 100644 --- a/docs/content_management/field_types/field_type_reference/keywordfield.md +++ b/docs/content_management/field_types/field_type_reference/keywordfield.md @@ -22,11 +22,11 @@ This field type stores one or several comma-separated keywords as a string or ar The Value class of this field type contains the following properties: -| Property | Type | Description | -|----------|------------|----------------------------------------| -| `$value` | `string[]` | Holds an array of keywords as strings. | +| Property | Type | Description | +|-----------|------------|----------------------------------------| +| `$values` | `string[]` | Holds an array of keywords as strings. | -``` php {skip-validation} +``` php // Value object content example use Ibexa\Core\FieldType\Keyword\Value; @@ -34,7 +34,7 @@ use Ibexa\Core\FieldType\Keyword\Value; $keywordValue = new Value(); // Sets an array of keywords as a value -$keyword->value = [ "php", "css3", "html5", "Ibexa Platform" ]; +$keywordValue->values = ['php', 'css3', 'html5', 'Ibexa Platform']; ``` #### Constructor @@ -43,14 +43,14 @@ The `Keyword\Value` constructor initializes a new value object with the value pr It expects a list of keywords, either comma-separated in a string or as an array of strings. -``` php {skip-validation} +``` php // Constructor example use Ibexa\Core\FieldType\Keyword\Value; // Instantiates a Value object with an array of keywords -$keywordValue = new Value( [ "php5", "css3", "html5" ] ); +$keywordValue = new Value(['php5', 'css3', 'html5']); // Instantiates a Value object with a list of keywords in a string // This is equivalent to the example above -$keywordValue = new Value( "php5,css3,html5" ); +$keywordValue = new Value('php5,css3,html5'); ``` diff --git a/docs/content_management/field_types/field_type_reference/maplocationfield.md b/docs/content_management/field_types/field_type_reference/maplocationfield.md index aaff90c0e7..7ffebdd103 100644 --- a/docs/content_management/field_types/field_type_reference/maplocationfield.md +++ b/docs/content_management/field_types/field_type_reference/maplocationfield.md @@ -36,15 +36,16 @@ The Value class of this field type contains the following properties: The `MapLocation\Value` constructor initializes a new value object with values provided as hash. Accepted keys are `latitude` (`float`), `longitude` (`float`), `address` (`string`). -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\MapLocation as MapLocation; // Instantiates a MapLocation Value object $MapLocationValue = new MapLocation\Value( [ 'latitude' => 59.928732, 'longitude' => 10.777888, - 'address' => "Ibexa Nordics" + 'address' => 'Ibexa Nordics', ] ); ``` diff --git a/docs/content_management/field_types/field_type_reference/matrixfield.md b/docs/content_management/field_types/field_type_reference/matrixfield.md index f5134f5562..276ffb5684 100644 --- a/docs/content_management/field_types/field_type_reference/matrixfield.md +++ b/docs/content_management/field_types/field_type_reference/matrixfield.md @@ -18,7 +18,9 @@ The Matrix field type is available via the Matrix Bundle provided by the [ibexa/ Example of input: -``` php {skip-validation} +``` php +use Ibexa\FieldTypeMatrix\FieldType; + new FieldType\Value([ new FieldType\Value\Row(['col1' => 'Row 1, Col 1', 'col2' => 'Row 1, Col 2']), new FieldType\Value\Row(['col1' => 'Row 2, Col 1', 'col2' => 'Row 2, Col 2']), @@ -46,7 +48,9 @@ If, after removing empty rows, the number of rows doesn't fulfill the configured For example, the following input doesn't validate if `Minimum number of rows` is set to 3, because the second row is empty: -``` php {skip-validation} +``` php +use Ibexa\FieldTypeMatrix\FieldType; + new FieldType\Value([ new FieldType\Value\Row(['col1' => 'Row 1, Col 1', 'col2' => 'Row 1, Col 2']), new FieldType\Value\Row(['col1' => '', 'col2' => '']), diff --git a/docs/content_management/field_types/field_type_reference/measurementfield.md b/docs/content_management/field_types/field_type_reference/measurementfield.md index 91387fe191..5a16c7dabd 100644 --- a/docs/content_management/field_types/field_type_reference/measurementfield.md +++ b/docs/content_management/field_types/field_type_reference/measurementfield.md @@ -42,28 +42,32 @@ As its first argument it accepts an object of `Ibexa\Contracts\Measurement\Value Depending on the selected input type, the object resembles the following examples: -``` php {skip-validation} +``` php // Simple input (single value) example -// @var MeasurementServiceInterface $measurementService +use Ibexa\Measurement\FieldType\MeasurementValue; + +/** @var \Ibexa\Contracts\Measurement\MeasurementServiceInterface $measurementService */ // Instantiates a Measurement Value object -$measurementValue = new Measurement\Value( +$measurementValue = new MeasurementValue( $measurementService->buildSimpleValue( - 'length', - 13.5, - 'centimeter' + 'length', + 13.5, + 'centimeter' ) ); ``` -``` php {skip-validation} +``` php // Range input value example -// @var MeasurementServiceInterface $measurementService +use Ibexa\Measurement\FieldType\MeasurementValue; + +/** @var \Ibexa\Contracts\Measurement\MeasurementServiceInterface $measurementService */ // Instantiates a Measurement Value object -$measurementValue = new Measurement\Value( +$measurementValue = new MeasurementValue( $measurementService->buildRangeValue( 'volume', 0.5, diff --git a/docs/content_management/field_types/field_type_reference/mediafield.md b/docs/content_management/field_types/field_type_reference/mediafield.md index 228d732cfa..d29074113e 100644 --- a/docs/content_management/field_types/field_type_reference/mediafield.md +++ b/docs/content_management/field_types/field_type_reference/mediafield.md @@ -71,19 +71,20 @@ The field type supports `FileSizeValidator`, defining maximum size of media file |------|------|------|------| |`maxFileSize`|`int`|`false`|Maximum size of the file in bytes.| -``` php {skip-validation} +``` php // Example of using Media field type validator in PHP use Ibexa\Core\FieldType\Media\Type; +/** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ $contentTypeService = $repository->getContentTypeService(); -$mediaFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct( "media", "ibexa_media" ); +$mediaFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct('media', 'ibexa_media'); // Setting maximum file size to 5 megabytes $mediaFieldCreateStruct->validatorConfiguration = [ - "FileSizeValidator" => [ - "maxFileSize" => 5 * 1024 * 1024 - ] + 'FileSizeValidator' => [ + 'maxFileSize' => 5 * 1024 * 1024, + ], ]; ``` @@ -107,16 +108,17 @@ List of all available `mediaType` constants is defined in the `Ibexa\Core\FieldT | `TYPE_HTML5_VIDEO` | HTML5 Video | | `TYPE_HTML5_AUDIO` | HTML5 Audio | -``` php {skip-validation} +``` php // Example of using Media field type settings in PHP use Ibexa\Core\FieldType\Media\Type; +/** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ $contentTypeService = $repository->getContentTypeService(); -$mediaFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct( "media", "ibexa_media" ); +$mediaFieldCreateStruct = $contentTypeService->newFieldDefinitionCreateStruct('media', 'ibexa_media'); // Setting Adobe Flash as the media type $mediaFieldCreateStruct->fieldSettings = [ - "mediaType" => Type::TYPE_FLASH, + 'mediaType' => Type::TYPE_FLASH, ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/relationfield.md b/docs/content_management/field_types/field_type_reference/relationfield.md index 0ac392ac9f..915ca272f7 100644 --- a/docs/content_management/field_types/field_type_reference/relationfield.md +++ b/docs/content_management/field_types/field_type_reference/relationfield.md @@ -25,9 +25,11 @@ The Value class of this field type contains the following properties: |------------------------|-------------------|-------------------------------------------------------------------------------------------| | `$destinationContentId` | `string|int|null` | This property is used to store the value provided, which represents the related content. | -``` php {skip-validation} +``` php // Value object content example +/** @var \Ibexa\Core\FieldType\Relation\Value $relation */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ $relation->destinationContentId = $contentInfo->id; ``` @@ -35,11 +37,13 @@ $relation->destinationContentId = $contentInfo->id; The `Relation\Value` constructor initializes a new value object with the value provided. It expects a mixed value. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\Relation as Relation; +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ // Instantiates a Relation Value object -$relationValue = new Relation\Value( $contentInfo->id ); +$relationValue = new Relation\Value($contentInfo->id); ``` ### Validation @@ -56,14 +60,14 @@ The field definition of this field type can be configured with three options: | `selectionRoot` | `string` | `null` | This setting defines the selection root. | | `selectionContentTypes` | `array` | `[]` | An array of content type IDs that are allowed for related Content. | -``` php {skip-validation} +``` php // Relation FieldType example settings use Ibexa\Core\FieldType\Relation\Type; $settings = [ - "selectionMethod" => 1, - "selectionRoot" => null, - "selectionContentTypes" => [] + 'selectionMethod' => 1, + 'selectionRoot' => null, + 'selectionContentTypes' => [], ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/relationlistfield.md b/docs/content_management/field_types/field_type_reference/relationlistfield.md index 2db1f27721..c4b81999d9 100644 --- a/docs/content_management/field_types/field_type_reference/relationlistfield.md +++ b/docs/content_management/field_types/field_type_reference/relationlistfield.md @@ -27,12 +27,15 @@ This field type makes it possible to store and retrieve values of a relation to |------|------|------|------| |`destinationContentIds`|`array`|An array of related Content IDs|`[ 24, 42 ]`| -``` php {skip-validation} +``` php // Value object content example -$relationList->destinationContentId = [ +/** @var \Ibexa\Core\FieldType\RelationList\Value $relationList */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo1 */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo2 */ +$relationList->destinationContentIds = [ $contentInfo1->id, $contentInfo2->id, - 170 + 170, ]; ``` @@ -41,15 +44,18 @@ $relationList->destinationContentId = [ The `RelationList\Value` constructor initializes a new value object with the value provided. It expects a mixed array as value. -``` php {skip-validation} +``` php //Constructor example +use Ibexa\Core\FieldType\RelationList as RelationList; +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo1 */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo2 */ // Instantiates a RelationList Value object $relationListValue = new RelationList\Value( [ $contentInfo1->id, $contentInfo2->id, - 170 + 170, ] ); ``` @@ -90,21 +96,21 @@ Following selection methods are available: |------|------|------|------| |`RelationListValueValidator[selectionLimit]`|`integer`|`0`|The number of content items that can be selected in the field. When set to 0, any number can be selected.| -``` php {skip-validation} +``` php // Example of using settings and validators configuration in PHP use Ibexa\Core\FieldType\RelationList\Type; $fieldSettings = [ - "selectionMethod" => Type::SELECTION_BROWSE, - "selectionDefaultLocation" => null, - "selectionContentTypes" => [] + 'selectionMethod' => Type::SELECTION_BROWSE, + 'selectionDefaultLocation' => null, + 'selectionContentTypes' => [], ]; $validators = [ - "RelationListValueValidator" => [ - "selectionLimit" => 0, - ] + 'RelationListValueValidator' => [ + 'selectionLimit' => 0, + ], ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/richtextfield.md b/docs/content_management/field_types/field_type_reference/richtextfield.md index 1894943af0..a6d46e0eef 100644 --- a/docs/content_management/field_types/field_type_reference/richtextfield.md +++ b/docs/content_management/field_types/field_type_reference/richtextfield.md @@ -70,8 +70,10 @@ You can use the [[= product_name_base =]] flavor of the DocBook format in PHP AP The following example shows how to pass DocBook content to a [create struct](creating_content.md#creating-content-item-draft): -``` php {skip-validation} -$contentCreateStruct = $contentService->newContentCreateStruct( $contentType, "eng-GB" ); +``` php +/** @var \Ibexa\Contracts\Core\Repository\ContentService $contentService */ +/** @var \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType $contentType */ +$contentCreateStruct = $contentService->newContentCreateStruct($contentType, 'eng-GB'); $inputString = << @@ -85,7 +87,7 @@ $inputString = << DOCBOOK; -$contentCreateStruct->setField( "description", $inputString ); +$contentCreateStruct->setField('description', $inputString); ``` When creating RichText content with the REST API, use the `xml` key of the `fieldValue` tag: diff --git a/docs/content_management/field_types/field_type_reference/selectionfield.md b/docs/content_management/field_types/field_type_reference/selectionfield.md index a1b784b051..8d76e61b6e 100644 --- a/docs/content_management/field_types/field_type_reference/selectionfield.md +++ b/docs/content_management/field_types/field_type_reference/selectionfield.md @@ -24,25 +24,27 @@ The Value class of this field type contains the following properties: |--------------|---------|-------------------------------------------------------------------------------------------------------------------| | `$selection` | `int[]` | This property is used for the list of selections, which is a list of integer values, or one single integer value. | -``` php {skip-validation} +``` php // Value object content examples +/** @var \Ibexa\Core\FieldType\Selection\Value $value */ // Single selection -$value->selection = 1; +$value->selection = [1]; // Multiple selection -$value->selection = [ 1, 4, 5 ]; +$value->selection = [1, 4, 5]; ``` #### Constructor The `Selection\Value` constructor accepts an array of selected element identifiers. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\Selection as Selection; // Instanciates a selection value with items #1 and #2 selected -$selectionValue = new Selection\Value( [ 1, 2 ] ); +$selectionValue = new Selection\Value([1, 2]); ``` #### String representation @@ -55,10 +57,10 @@ Example: `"1,2,24,42"` Hash format of this field type is the same as value object's `selection` property. -``` php {skip-validation} +``` php // Example of value in hash format -$hash = [ 1, 2 ]; +$hash = [1, 2]; ``` ### Validation @@ -74,13 +76,13 @@ When option validation fails, a list with the invalid options is also presented. | `isMultiple` | `boolean` | `false` | Used to allow or prohibit multiple selection from the option list. | | `options` | `hash` | `[]` | Stores the list of options defined in the field definition. | -``` php {skip-validation} +``` php // Selection field type example settings use Ibexa\Core\FieldType\Selection\Type; $settings = [ - "isMultiple" => true, - "options" => [1 => 'One', 2 => 'Two', 3 => 'Three'] + 'isMultiple' => true, + 'options' => [1 => 'One', 2 => 'Two', 3 => 'Three'], ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/taxonomyentryassignmentfield.md b/docs/content_management/field_types/field_type_reference/taxonomyentryassignmentfield.md index 3a4f0208a1..517d465d45 100644 --- a/docs/content_management/field_types/field_type_reference/taxonomyentryassignmentfield.md +++ b/docs/content_management/field_types/field_type_reference/taxonomyentryassignmentfield.md @@ -24,9 +24,12 @@ To be able to assign tags to the content, first, you need to add a `TaxonomyEntr Example using an `Ibexa\Taxonomy\FieldType\TaxonomyEntryAssignment\Value` object: -``` php {skip-validation} -$taxonomyEntry1 = $this->taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); -$taxonomyEntry2 = $this->taxonomyService->loadEntryByIdentifier('example_entry_2', 'tags'); +``` php +use Ibexa\Contracts\Taxonomy\Service\TaxonomyServiceInterface; + +/** @var TaxonomyServiceInterface $taxonomyService */ +$taxonomyEntry1 = $taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); +$taxonomyEntry2 = $taxonomyService->loadEntryByIdentifier('example_entry_2', 'tags'); new \Ibexa\Taxonomy\FieldType\TaxonomyEntryAssignment\Value( [ $taxonomyEntry1, @@ -39,11 +42,15 @@ new \Ibexa\Taxonomy\FieldType\TaxonomyEntryAssignment\Value( Example using array: -``` php {skip-validation} -[ +``` php +use Ibexa\Contracts\Taxonomy\Value\TaxonomyEntry; + +/** @var TaxonomyEntry $taxonomyEntry */ +/** @var TaxonomyEntry $taxonomyEntry2 */ +return [ 'taxonomy_entries' => [$taxonomyEntry, $taxonomyEntry2], // load entries using TaxonomyService 'taxonomy' => 'tags', -] +]; ``` ### Value object diff --git a/docs/content_management/field_types/field_type_reference/taxonomyentryfield.md b/docs/content_management/field_types/field_type_reference/taxonomyentryfield.md index 21b02bc4f2..046989d5c8 100644 --- a/docs/content_management/field_types/field_type_reference/taxonomyentryfield.md +++ b/docs/content_management/field_types/field_type_reference/taxonomyentryfield.md @@ -18,21 +18,23 @@ A `TaxonomyEntry` field accepts an array with an `Ibexa\Contracts\Taxonomy\Value Example using an `Ibexa\Taxonomy\FieldType\TaxonomyEntry\Value` object: -``` php {skip-validation} -$taxonomyEntry = $this->taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); -new \Ibexa\Taxonomy\FieldType\TaxonomyEntry\Value( - new \Ibexa\Contracts\Taxonomy\Value\TaxonomyEntry( - $taxonomyEntry - ) -); +``` php +use Ibexa\Contracts\Taxonomy\Service\TaxonomyServiceInterface; + +/** @var TaxonomyServiceInterface $taxonomyService */ +$taxonomyEntry = $taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); +$taxonomyEntryField = new \Ibexa\Taxonomy\FieldType\TaxonomyEntry\Value($taxonomyEntry); ``` Example using array: -``` php {skip-validation} -[ +``` php +use Ibexa\Contracts\Taxonomy\Value\TaxonomyEntry; + +/** @var TaxonomyEntry $taxonomyEntry */ +return [ 'taxonomy_entry' => $taxonomyEntry, // load Entry using TaxonomyService -] +]; ``` ### Value object @@ -47,14 +49,16 @@ Example using array: The constructor accepts an `Ibexa\Contracts\Taxonomy\Value\TaxonomyEntry` object. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Contracts\Taxonomy\Service\TaxonomyServiceInterface; use Ibexa\Taxonomy\FieldType\TaxonomyEntry; // Fetches TaxonomyEntry from TaxonomyService -$taxonomyEntry = $this->taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); -  -// Instantiates a checkbox value with a checked state +/** @var TaxonomyServiceInterface $taxonomyService */ +$taxonomyEntry = $taxonomyService->loadEntryByIdentifier('example_entry', 'tags'); + +// Instantiates a taxonomy entry value $taxonomyEntryFieldTypeValue = new TaxonomyEntry\Value($taxonomyEntry); ``` diff --git a/docs/content_management/field_types/field_type_reference/textlinefield.md b/docs/content_management/field_types/field_type_reference/textlinefield.md index c2341aa522..abb5912f8c 100644 --- a/docs/content_management/field_types/field_type_reference/textlinefield.md +++ b/docs/content_management/field_types/field_type_reference/textlinefield.md @@ -35,11 +35,11 @@ The length of the string provided must be between the minimum length defined in The default value for both properties is 0, which means that the validation is disabled by default. To set the validation properties, the `validateValidatorConfiguration()` method needs to be inspected, which receives an array with `minStringLength` and `maxStringLength` like in the following representation: -``` php {skip-validation} +``` php [ 'StringLengthValidator' => [ - 'maxStringLength' => 60 - 'minStringLength' => 1 - ] -] + 'maxStringLength' => 60, + 'minStringLength' => 1, + ], +]; ``` diff --git a/docs/content_management/field_types/field_type_reference/timefield.md b/docs/content_management/field_types/field_type_reference/timefield.md index 6af0712e1e..a7a6b36ed5 100644 --- a/docs/content_management/field_types/field_type_reference/timefield.md +++ b/docs/content_management/field_types/field_type_reference/timefield.md @@ -70,12 +70,12 @@ The Field definition of this field type can be configured with several options: | `useSeconds` | `boolean` | `false` | Used to control displaying of seconds in the output. | | `defaultType` | `Type::DEFAULT_EMPTY Type::DEFAULT_CURRENT_TIME` | `Type::DEFAULT_EMPTY` | The constant used here defines default input value when using back-end interface. | -``` php {skip-validation} +``` php // Time field type example settings use Ibexa\Core\FieldType\Time\Type; $settings = [ - "defaultType" => DateAndTime::DEFAULT_EMPTY + 'defaultType' => Type::DEFAULT_EMPTY, ]; ``` diff --git a/docs/content_management/field_types/field_type_reference/urlfield.md b/docs/content_management/field_types/field_type_reference/urlfield.md index f7d31bad9c..b9da287a75 100644 --- a/docs/content_management/field_types/field_type_reference/urlfield.md +++ b/docs/content_management/field_types/field_type_reference/urlfield.md @@ -27,11 +27,12 @@ The Value class of this field type contains the following properties: | `$link` | `string` | This property stores the link provided to the value of this field type. | | `$text` | `string` | This property stores the text to represent the stored link provided to the value of this field type. | -``` php {skip-validation} +``` php // Value object content example -$url->link = "https://www.ibexa.co"; -$url->text = "Ibexa"; +/** @var \Ibexa\Core\FieldType\Url\Value $url */ +$url->link = 'https://www.ibexa.co'; +$url->text = 'Ibexa'; ``` #### Constructor @@ -39,11 +40,12 @@ $url->text = "Ibexa"; The `Url\Value` constructor initializes a new value object with the provided value. It expects two comma-separated strings, corresponding to the link and text. -``` php {skip-validation} +``` php // Constructor example +use Ibexa\Core\FieldType\Url as Url; // Instantiates an Url Value object -$UrlValue = new Url\Value( "https://www.ibexa.co/", "Ibexa" ); +$UrlValue = new Url\Value('https://www.ibexa.co/', 'Ibexa'); ``` ### Hash format @@ -53,11 +55,11 @@ $UrlValue = new Url\Value( "https://www.ibexa.co/", "Ibexa" ); | `link` | `string` | Link content. | "https://www.ibexa.co/" | | `text` | `string` | Text content. | "Ibexa" | -``` php {skip-validation} +``` php // Example of the hash value in PHP $hash = [ - "link" => "https://www.ibexa.co/", - "text" => "Ibexa" + 'link' => 'https://www.ibexa.co/', + 'text' => 'Ibexa', ]; ``` diff --git a/docs/content_management/field_types/field_type_search.md b/docs/content_management/field_types/field_type_search.md index 8b732d4ba7..4a5bcb9702 100644 --- a/docs/content_management/field_types/field_type_search.md +++ b/docs/content_management/field_types/field_type_search.md @@ -21,11 +21,13 @@ They're described below in further detail. To be able to query data properly an indexable field type also is required to return search specification. You must return an associative array of `Ibexa\Contracts\Core\Search\FieldType` instances from this method, which could look like: -``` php {skip-validation} -[ - 'url' => new Search\FieldType\StringField(), +``` php +use Ibexa\Contracts\Core\Search; + +return [ + 'url' => new Search\FieldType\StringField(), 'text' => new Search\FieldType\StringField(), -] +]; ``` This example from the `Url` field type shows that the field type always returns two indexable values, both strings. diff --git a/docs/content_management/field_types/field_type_validation.md b/docs/content_management/field_types/field_type_validation.md index 3d7707c1ad..35229d2e11 100644 --- a/docs/content_management/field_types/field_type_validation.md +++ b/docs/content_management/field_types/field_type_validation.md @@ -17,17 +17,17 @@ except it has an additional level, to group settings for a certain validation me For example, for the `ibexa_string` type, the validator schema could be: -``` php {skip-validation} +``` php [ 'stringLength' => [ 'minStringLength' => [ - 'type' => 'int', + 'type' => 'int', 'default' => 0, ], 'maxStringLength' => [ - 'type' => 'int' + 'type' => 'int', 'default' => null, - ] + ], ], ]; ``` diff --git a/docs/content_management/field_types/form_and_template.md b/docs/content_management/field_types/form_and_template.md index b86a31cbed..5c4913a80b 100644 --- a/docs/content_management/field_types/form_and_template.md +++ b/docs/content_management/field_types/form_and_template.md @@ -23,32 +23,37 @@ The `FieldValueFormMapperInterface::mapFieldValueForm` method accepts two argume You have to add your form type to the content editing form. The example shows how `ibexa_boolean` injects the form: -``` php {skip-validation} -use Ibexa\Contracts\ContentForms\Data\Content\FieldData; +``` php use Ibexa\ContentForms\Form\Type\FieldType\CheckboxFieldType; +use Ibexa\Contracts\ContentForms\Data\Content\FieldData; +use Ibexa\Contracts\ContentForms\FieldType\FieldValueFormMapperInterface; use Symfony\Component\Form\FormInterface; -public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data) +class MyMapper implements FieldValueFormMapperInterface { - $fieldDefinition = $data->fieldDefinition; - $formConfig = $fieldForm->getConfig(); - - $fieldForm - ->add( - $formConfig->getFormFactory()->createBuilder() - ->create( - 'value', - CheckboxFieldType::class, - [ - 'required' => $fieldDefinition->isRequired, - 'label' => $fieldDefinition->getName( - $formConfig->getOption('languageCode') - ), - ] - ) - ->setAutoInitialize(false) - ->getForm() - ); + /** @param FormInterface $fieldForm */ + public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data): void + { + $fieldDefinition = $data->getFieldDefinition(); + $formConfig = $fieldForm->getConfig(); + + $fieldForm + ->add( + $formConfig->getFormFactory()->createBuilder() + ->create( + 'value', + CheckboxFieldType::class, + [ + 'required' => $fieldDefinition->isRequired, + 'label' => $fieldDefinition->getName( + $formConfig->getOption('languageCode') + ), + ] + ) + ->setAutoInitialize(false) + ->getForm() + ); + } } ``` @@ -63,38 +68,45 @@ You can use a [`DataTransformer`]([[= symfony_doc =]]/form/data_transformers.htm Providing definition editing support is almost identical to creating content editing support. The only difference are field names: -``` php {skip-validation} +``` php +use Ibexa\AdminUi\FieldType\FieldDefinitionFormMapperInterface; use Ibexa\AdminUi\Form\Data\FieldDefinitionData; use Ibexa\ContentForms\Form\Type\FieldType\CountryFieldType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\FormInterface; -public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $data) +class MyMapper implements FieldDefinitionFormMapperInterface { - $fieldDefinitionForm - ->add( - 'isMultiple', - CheckboxType::class, [ - 'required' => false, - 'property_path' => 'fieldSettings[isMultiple]', - 'label' => 'field_definition.ibexa_country.is_multiple', - ] - ) - ->add( - $fieldDefinitionForm->getConfig()->getFormFactory()->createBuilder() - ->create( - 'defaultValue', - CountryFieldType::class, [ - 'choices_as_values' => true, - 'multiple' => true, - 'expanded' => false, - 'required' => false, - 'label' => 'field_definition.ibexa_country.default_value', - ] - ) - // Deactivate auto-initialize as you're not on the root form. - ->setAutoInitialize(false)->getForm() - ); + /** @param FormInterface $fieldDefinitionForm */ + public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $data): void + { + $fieldDefinitionForm + ->add( + 'isMultiple', + CheckboxType::class, + [ + 'required' => false, + 'property_path' => 'fieldSettings[isMultiple]', + 'label' => 'field_definition.ibexa_country.is_multiple', + ] + ) + ->add( + $fieldDefinitionForm->getConfig()->getFormFactory()->createBuilder() + ->create( + 'defaultValue', + CountryFieldType::class, + [ + 'choices_as_values' => true, + 'multiple' => true, + 'expanded' => false, + 'required' => false, + 'label' => 'field_definition.ibexa_country.default_value', + ] + ) + // Deactivate auto-initialize as you're not on the root form. + ->setAutoInitialize(false)->getForm() + ); + } } ``` diff --git a/docs/content_management/field_types/type_and_value.md b/docs/content_management/field_types/type_and_value.md index 039843b582..085755f52b 100644 --- a/docs/content_management/field_types/type_and_value.md +++ b/docs/content_management/field_types/type_and_value.md @@ -168,16 +168,16 @@ It's recommended to use a simple associative array format for the settings schem An example schema could look like this: -``` php {skip-validation} +``` php [ 'backupData' => [ 'type' => 'bool', - 'default' => false + 'default' => false, ], 'defaultValue' => [ 'type' => 'string', - 'default' => 'Default Value' - ] + 'default' => 'Default Value', + ], ]; ``` diff --git a/docs/content_management/file_management/file_management.md b/docs/content_management/file_management/file_management.md index fc0fa540f1..c9dcc863da 100644 --- a/docs/content_management/file_management/file_management.md +++ b/docs/content_management/file_management/file_management.md @@ -8,9 +8,11 @@ description: Configurations and management of binary files. To access binary files from the PHP API, use the `Ibexa\Core\IO\IOServiceInterface::loadBinaryFile()` method: -``` php {skip-validation} -$file = $this->ioService->loadBinaryFile($field->value->id); -$fileContent = $this->ioService->getFileContents($file); +``` php +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Field $field */ +/** @var \Ibexa\Core\IO\IOServiceInterface $ioService */ +$file = $ioService->loadBinaryFile($field->value->id); +$fileContent = $ioService->getFileContents($file); ``` ## Handling binary files diff --git a/docs/content_management/images/configure_image_editor.md b/docs/content_management/images/configure_image_editor.md index f1834761b4..ebbca8eed9 100644 --- a/docs/content_management/images/configure_image_editor.md +++ b/docs/content_management/images/configure_image_editor.md @@ -67,8 +67,10 @@ By default, additional information stores the coordinates of the [focal point]([ To modify the value of additional information programmatically, you can set a value of the `Image` field by using the PHP API, for example: -``` php {skip-validation} -new FieldValue([ +``` php +use Ibexa\Core\FieldType\Image\Value as FieldValue; + +$value = new FieldValue([ 'data' => [ 'width' => '100', 'height' => '200', @@ -82,5 +84,5 @@ new FieldValue([ 'author' => 'John Smith', ], ], - ]), + ]); ``` diff --git a/docs/content_management/taxonomy/taxonomy_api.md b/docs/content_management/taxonomy/taxonomy_api.md index 1ad0e0060b..40498a80ec 100644 --- a/docs/content_management/taxonomy/taxonomy_api.md +++ b/docs/content_management/taxonomy/taxonomy_api.md @@ -20,10 +20,12 @@ and use `TaxonomyServiceInterface::loadEntryByIdentifier()`: !!! note A taxonomy entry identifier is unique per taxonomy. If you have [several taxonomies](taxonomy.md#customize-taxonomy-structure), you can increase code readability by always passing the taxonomy identifier even when it's the default one. The default taxonomy is `tags` if it exists, else the first configured taxonomy (see `\Ibexa\Taxonomy\Service\TaxonomyConfiguration::getDefaultTaxonomyName` for details). - ``` php {skip-validation} - $springs[] = $this->taxonomyService->loadEntryByIdentifier('spring', 'tags'); - $springs[] = $this->taxonomyService->loadEntryByIdentifier('spring', 'events'); - $springs[] = $this->taxonomyService->loadEntryByIdentifier('spring', 'devices'); + ``` php + /** @var array $springs */ + /** @var \Ibexa\Contracts\Taxonomy\Service\TaxonomyServiceInterface $taxonomyService */ + $springs[] = $taxonomyService->loadEntryByIdentifier('spring', 'tags'); + $springs[] = $taxonomyService->loadEntryByIdentifier('spring', 'events'); + $springs[] = $taxonomyService->loadEntryByIdentifier('spring', 'devices'); ``` You can also get a taxonomy entry from the ID of its underlying content item, by using `TaxonomyServiceInterface::loadEntryByContentId()`. diff --git a/docs/content_management/url_management/url_management.md b/docs/content_management/url_management/url_management.md index e7864f270a..d1ff21d755 100644 --- a/docs/content_management/url_management/url_management.md +++ b/docs/content_management/url_management/url_management.md @@ -99,29 +99,7 @@ For more information about [[= product_name_base =]] configuration, see [Configu ### Custom protocol support You can extend the external URL address validation with a custom protocol. -To do this, you must provide a service that implements the `Ibexa\Bundle\Core\URLChecker\URLHandlerInterface` interface: -s - -``` php {skip-validation} -getURLWildcardService(); -$repository->sudo(function ($repository) use ($urlWildcardService, $source, $destination, $redirect) { +$repository->sudo(static function ($repository) use ($urlWildcardService, $source, $destination, $redirect): void { $urlWildcardService->create($source, $destination, $redirect); }); ``` diff --git a/docs/content_management/workflow/add_custom_workflow_action.md b/docs/content_management/workflow/add_custom_workflow_action.md index 68ed9ff486..8f70416006 100644 --- a/docs/content_management/workflow/add_custom_workflow_action.md +++ b/docs/content_management/workflow/add_custom_workflow_action.md @@ -80,8 +80,10 @@ The context contains: You can also modify the context using the `setContext()` method. For example, you can override the message typed by the user: -``` php {skip-validation} +``` php +/** @var array $context */ +/** @var \Symfony\Component\Workflow\Event\TransitionEvent $event */ $new_context = $context; -$new_context['message'] = "This article went through proofreading"; +$new_context['message'] = 'This article went through proofreading'; $event->setContext($new_context); ``` diff --git a/docs/infrastructure_and_maintenance/cache/http_cache/content_aware_cache.md b/docs/infrastructure_and_maintenance/cache/http_cache/content_aware_cache.md index dc8992aaec..f7954f83a1 100644 --- a/docs/infrastructure_and_maintenance/cache/http_cache/content_aware_cache.md +++ b/docs/infrastructure_and_maintenance/cache/http_cache/content_aware_cache.md @@ -171,8 +171,10 @@ Examples for tagging everything needed for content using the autowireable [`Resp Examples for adding specific content tags using the autowireable `ContentTagInterface`: -``` php {skip-validation} +``` php /** @var \Ibexa\Contracts\HttpCache\Handler\ContentTagInterface $tagHandler */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Location $location */ // Example for tagging everything needed for Content: $tagHandler->addContentTags([$content->id]); @@ -191,7 +193,9 @@ In PHP, FOSHttpCache exposes the `fos_http_cache.http.symfony_response_tagger` s The following example adds minimal tags when ID 33 and 34 are rendered in ESI, but parent response needs these tags to get refreshed if they're deleted: -``` php {skip-validation} +``` php +use Ibexa\Contracts\HttpCache\Handler\ContentTagInterface; + /** @var \FOS\HttpCacheBundle\Http\SymfonyResponseTagger $responseTagger */ $responseTagger->addTags([ContentTagInterface::RELATION_PREFIX . '33', ContentTagInterface::RELATION_PREFIX . '34']); ``` @@ -203,9 +207,9 @@ See [Tagging from code](https://foshttpcachebundle.readthedocs.io/en/latest/feat For custom or built-in controllers (for example, REST) that still use `X-Location-Id`, `XLocationIdResponseSubscriber` handles translating this header to tags. It supports singular and comma-separated location ID value(s): -``` php {skip-validation} +``` php /** @var \Symfony\Component\HttpFoundation\Response $response */ -$response->headers->set('X-Location-Id', 123); +$response->headers->set('X-Location-Id', '123'); // Alternatively using several Location ID values $response->headers->set('X-Location-Id', '123,212,42'); @@ -322,8 +326,11 @@ In other words, HTTP Cache for `[Parent1]`, children of `[Parent1]` ( if any ), While the system purges tags whenever API is used to change data, you may need to purge directly from code. For that you can use the built-in purge client: -``` php {skip-validation} +``` php +use Ibexa\Contracts\HttpCache\Handler\ContentTagInterface; + /** @var \Ibexa\Contracts\HttpCache\PurgeClient\PurgeClientInterface $purgeClient */ +/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Location $location */ // Example for purging by Location ID: $purgeClient->purge([ContentTagInterface::LOCATION_PREFIX . $location->id]); diff --git a/docs/infrastructure_and_maintenance/cache/http_cache/context_aware_cache.md b/docs/infrastructure_and_maintenance/cache/http_cache/context_aware_cache.md index e681283084..471a46fd4e 100644 --- a/docs/infrastructure_and_maintenance/cache/http_cache/context_aware_cache.md +++ b/docs/infrastructure_and_maintenance/cache/http_cache/context_aware_cache.md @@ -91,9 +91,12 @@ This a low effort solution, and can be enough for one fragment that is reused ac Example: -``` php {skip-validation} - // Inside a custom controller action, or even a Content View controller - $response->setVary('Cookie'); +``` php +use Symfony\Component\HttpFoundation\Response; + +// Inside a custom controller action, or even a Content View controller +/** @var Response $response */ +$response->setVary('Cookie'); ``` 2\. Ajax/JS lookup to "uncached" custom Symfony controllers: @@ -139,15 +142,28 @@ To avoid overloading any application code, take advantage of Symfony's event sys 1\. Add a [Response event (`kernel.response`)]([[= symfony_doc =]]/reference/events.html#kernel-response) [listener or subscriber]([[= symfony_doc =]]/event_dispatcher.html) to add your own hash to `/_fos_user_context_hash`: -``` php {skip-validation} -public function addPreferenceHash(FilterResponseEvent $event) +``` php +use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\HttpKernel\Event\ResponseEvent; + +final class MyEventSubscriber implements EventSubscriberInterface { - $response = $event->getResponse(); - if ($response->headers->get('Content-Type') !== 'application/vnd.fos.user-context-hash') { - return; + public static function getSubscribedEvents(): array + { + return [ + ResponseEvent::class => 'addPreferenceHash', + ]; } - $response->headers->set('X-User-Preference-Hash', ''); + public function addPreferenceHash(ResponseEvent $event): void + { + $response = $event->getResponse(); + if ($response->headers->get('Content-Type') !== 'application/vnd.fos.user-context-hash') { + return; + } + + $response->headers->set('X-User-Preference-Hash', ''); + } } ``` @@ -186,7 +202,10 @@ public function addPreferenceHash(FilterResponseEvent $event) 3\. Add `Vary` in your custom controller or content view controller: -``` php {skip-validation} +``` php +use Symfony\Component\HttpFoundation\Response; + +/** @var Response $response */ $response->setVary('X-User-Preference-Hash'); // If you _also_ need to vary on [[= product_name =]] permissions, instead use: diff --git a/docs/infrastructure_and_maintenance/cache/http_cache/reverse_proxy.md b/docs/infrastructure_and_maintenance/cache/http_cache/reverse_proxy.md index e078d3e540..26a19a121d 100644 --- a/docs/infrastructure_and_maintenance/cache/http_cache/reverse_proxy.md +++ b/docs/infrastructure_and_maintenance/cache/http_cache/reverse_proxy.md @@ -90,8 +90,11 @@ framework: On Upsun, Varnish doesn't have a static IP, like with [AWS LB]([[= symfony_doc =]]/deployment/proxies.html#but-what-if-the-ip-of-my-reverse-proxy-changes-constantly). For this reason, the `TRUSTED_PROXIES` env variable supports being set to value `REMOTE_ADDR`, which is equal to: - ``` php {skip-validation} - Request::setTrustedProxies([$request->server->get('REMOTE_ADDR')], Request::HEADER_X_FORWARDED_ALL); + ``` php + use Symfony\Component\HttpFoundation\Request; + + /** @var \Symfony\Component\HttpFoundation\Request $request */ + Request::setTrustedProxies([$request->server->get('REMOTE_ADDR')], Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_PORT); ``` When trusting remote IP like this, make sure your application is only accessible through Varnish. diff --git a/docs/infrastructure_and_maintenance/cache/persistence_cache.md b/docs/infrastructure_and_maintenance/cache/persistence_cache.md index 5b1bb263ff..d7cd92c27e 100644 --- a/docs/infrastructure_and_maintenance/cache/persistence_cache.md +++ b/docs/infrastructure_and_maintenance/cache/persistence_cache.md @@ -248,25 +248,35 @@ This service is an instance of `Symfony\Component\Cache\Adapter\TagAwareAdapterI Like any other service, you can also get the cache service with the [service container](php_api.md#service-container) like so: -``` php {skip-validation} +``` php +use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + // Getting the cache service in PHP -/** @var \Symfony\Component\Cache\Adapter\TagAwareAdapterInterface */ +/** @var ContainerInterface $container */ $pool = $container->get('ibexa.cache_pool'); +/** @var TagAwareAdapterInterface $pool */ ``` ### Using the cache service Example usage of the cache service: -``` php {skip-validation} +``` php +use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + // Example -$cacheItem = $pool->getItem("myApp-object-${id}"); +/** @var TagAwareAdapterInterface $pool */ +/** @var ContainerInterface $container */ +/** @var int $id */ +$cacheItem = $pool->getItem("myApp-object-{$id}"); if ($cacheItem->isHit()) { return $cacheItem->get(); } -$myObject = $container->get('my_app.backend_service')->loadObject($id) +$myObject = $container->get('my_app.backend_service')->loadObject($id); $cacheItem->set($myObject); $cacheItem->tag(['myApp-category-' . $myObject->categoryId]); $pool->save($cacheItem); @@ -294,7 +304,11 @@ For more info on usage, see [Symfony Cache's documentation]([[= symfony_doc =]]/ Persistence cache prefixes it's cache using "ibx-". Clearing persistence cache can thus be done in the following ways: -``` php {skip-validation} +``` php +use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; + +/** @var TagAwareAdapterInterface $pool */ +/** @var int $contentId */ // To clear all cache (not recommended without a good reason) $pool->clear(); diff --git a/docs/multisite/languages/automated_translations.md b/docs/multisite/languages/automated_translations.md index 00dc64ad84..7e17dec7fa 100644 --- a/docs/multisite/languages/automated_translations.md +++ b/docs/multisite/languages/automated_translations.md @@ -34,7 +34,7 @@ composer require ibexa/automated-translation Symfony Flex installs and activates the package. However, you must modify the `config/bundles.php` file to change the bundle loading order so that `IbexaAutomatedTranslationBundle` is loaded before `IbexaAdminUiBundle`: - ``` php {skip-validation} + ``` php translator = $translator; -} - -private function getTranslatedDescription(): string +final readonly class MyService { - return $this->translator->trans( - 'custom.extension.description', - [], - 'custom_extension' - ); + public function __construct(private TranslatorInterface $translator) + { + } + + public function getTranslatedDescription(): string + { + return $this->translator->trans( + 'custom.extension.description', + [], + 'custom_extension' + ); + } } ``` diff --git a/docs/multisite/siteaccess/injecting_siteaccess.md b/docs/multisite/siteaccess/injecting_siteaccess.md index 63311f3dec..5ba5aef588 100644 --- a/docs/multisite/siteaccess/injecting_siteaccess.md +++ b/docs/multisite/siteaccess/injecting_siteaccess.md @@ -16,9 +16,11 @@ services: arguments: ['@Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessService'] ``` -``` php {skip-validation} +``` php +siteAccessService = $siteAccessService; - $this->contentService = $contentService; + public function __construct(private readonly SiteAccessServiceInterface $siteAccessService, private readonly ContentService $contentService) + { } } ``` diff --git a/docs/multisite/siteaccess/siteaccess_aware_configuration.md b/docs/multisite/siteaccess/siteaccess_aware_configuration.md index 39e6e76b13..24cc5f136b 100644 --- a/docs/multisite/siteaccess/siteaccess_aware_configuration.md +++ b/docs/multisite/siteaccess/siteaccess_aware_configuration.md @@ -28,7 +28,10 @@ The example below assumes you're using an `Acme\ExampleBundle`. Remember to register the bundle by adding it to `config/bundles.php`: ``` php {skip-validation} -Acme\ExampleBundle\AcmeExampleBundle::class => ['all' => true], +return [ + // ... + Acme\ExampleBundle\AcmeExampleBundle::class => ['all' => true], +]; ``` ## Parsing semantic configuration diff --git a/docs/permissions/custom_policies.md b/docs/permissions/custom_policies.md index 78ef7e51ea..67e209f1ed 100644 --- a/docs/permissions/custom_policies.md +++ b/docs/permissions/custom_policies.md @@ -20,17 +20,17 @@ First level key is the module name which is limited to characters within the set Function value is an array of available limitations, identified by the alias declared in `LimitationType` service tag. If no limitation is provided, value can be `null` or an empty array. -``` php {skip-validation} -[ - "content" => [ - "read" => ["Class", "ParentClass", "Node", "Language"], - "edit" => ["Class", "ParentClass", "Language"] +``` php +$config = [ + 'content' => [ + 'read' => ['Class', 'ParentClass', 'Node', 'Language'], + 'edit' => ['Class', 'ParentClass', 'Language'], ], - "custom_module" => [ - "custom_function_1" => null, - "custom_function_2" => ["CustomLimitation"] + 'custom_module' => [ + 'custom_function_1' => null, + 'custom_function_2' => ['CustomLimitation'], ], -] +]; ``` Limitations need to be implemented as *Limitation types* and declared as services identified with `ibexa.permissions.limitation_type` tag. @@ -38,8 +38,10 @@ Name provided in the hash for each limitation is the same value set in the `alia For example: -``` php {skip-validation} -addConfig([ - "custom_module" => [ - "custom_function_1" => null, - "custom_function_2" => ["CustomLimitation"], + 'custom_module' => [ + 'custom_function_1' => null, + 'custom_function_2' => ['CustomLimitation'], ], ]); } @@ -95,26 +97,31 @@ For example, `translations/forms.en.yaml`: You can also implement `TranslationContainerInterface` to provide those translations in your policy provider class: -``` php {skip-validation} -addConfig([ - "custom_module" => [ - "custom_function_1" => null, - "custom_function_2" => ["CustomLimitation"], + 'custom_module' => [ + 'custom_function_1' => null, + 'custom_function_2' => ['CustomLimitation'], ], ]); } + /** @return array<\JMS\TranslationBundle\Model\Message> */ public static function getTranslationMessages(): array { return [ diff --git a/docs/search/activity_log_search_reference/action_criterion.md b/docs/search/activity_log_search_reference/action_criterion.md index 18552f733c..71b9c14cd5 100644 --- a/docs/search/activity_log_search_reference/action_criterion.md +++ b/docs/search/activity_log_search_reference/action_criterion.md @@ -10,11 +10,14 @@ A set of built-in names is available as `ActivityLogServiceInterface`'s `ACTION_ ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\ActivityLogServiceInterface; +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ new ActivityLog\Criterion\ActionCriterion([ - ActivityLog\ActivityLogServiceInterface::ACTION_DELETE, - ActivityLog\ActivityLogServiceInterface::ACTION_TRASH, + ActivityLogServiceInterface::ACTION_DELETE, + ActivityLogServiceInterface::ACTION_TRASH, ]), ]); ``` diff --git a/docs/search/activity_log_search_reference/logged_at_criterion.md b/docs/search/activity_log_search_reference/logged_at_criterion.md index a99d6544bf..c39b486fa3 100644 --- a/docs/search/activity_log_search_reference/logged_at_criterion.md +++ b/docs/search/activity_log_search_reference/logged_at_criterion.md @@ -20,7 +20,9 @@ The `LoggedAtCriterion` Activity Log Criterion matches activity log group that h The following example is to match all activity log groups that aren't older than a day: -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ new ActivityLog\Criterion\LoggedAtCriterion(new \DateTime('- 1 day'), ActivityLog\Criterion\LoggedAtCriterion::GTE), ]); diff --git a/docs/search/activity_log_search_reference/object_criterion.md b/docs/search/activity_log_search_reference/object_criterion.md index 613b436e6c..55e7b06931 100644 --- a/docs/search/activity_log_search_reference/object_criterion.md +++ b/docs/search/activity_log_search_reference/object_criterion.md @@ -9,14 +9,18 @@ The `ObjectCriterion` Activity Log Criterion matches log group with a log entry ## Examples -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ new ActivityLog\Criterion\ObjectCriterion(Ibexa\Contracts\Core\Repository\Values\Content\Content::class), ]); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ - new ActivityLog\Criterion\ObjectCriterion(Ibexa\Contracts\ProductCatalog\Values\ProductVariantInterface::class, [123, 234, 345]), + new ActivityLog\Criterion\ObjectCriterion(Ibexa\Contracts\ProductCatalog\Values\ProductVariantInterface::class, ['123', '234', '345']), ]); ``` diff --git a/docs/search/activity_log_search_reference/object_name_criterion.md b/docs/search/activity_log_search_reference/object_name_criterion.md index 4af461295f..1eea5139c3 100644 --- a/docs/search/activity_log_search_reference/object_name_criterion.md +++ b/docs/search/activity_log_search_reference/object_name_criterion.md @@ -13,7 +13,9 @@ The `ObjectNameCriterion` Activity Log Criterion matches log groups that have a ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ new ActivityLog\Criterion\ObjectNameCriterion('Ibexa', ActivityLog\Criterion\ObjectNameCriterion::OPERATOR_CONTAINS), ]); diff --git a/docs/search/activity_log_search_reference/user_criterion.md b/docs/search/activity_log_search_reference/user_criterion.md index 28c7f8f1da..871f6e6113 100644 --- a/docs/search/activity_log_search_reference/user_criterion.md +++ b/docs/search/activity_log_search_reference/user_criterion.md @@ -8,7 +8,9 @@ The `UserCriterion` Activity Log Criterion matches log groups that have an activ ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ActivityLog\Values\ActivityLog as ActivityLog; + $query = new ActivityLog\Query([ new ActivityLog\Criterion\UserCriterion([10, 14]), ]); diff --git a/docs/search/aggregation_reference/authorterm_aggregation.md b/docs/search/aggregation_reference/authorterm_aggregation.md index 1138222c8a..d170997b61 100644 --- a/docs/search/aggregation_reference/authorterm_aggregation.md +++ b/docs/search/aggregation_reference/authorterm_aggregation.md @@ -12,7 +12,10 @@ The field-based [AuthorTermAggregation](/api/php_api/php_api_reference/classes/I ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\AuthorTermAggregation('author', 'article', 'authors'); ``` diff --git a/docs/search/aggregation_reference/basepricestats_aggregation.md b/docs/search/aggregation_reference/basepricestats_aggregation.md index dad3c7b041..492aad61f0 100644 --- a/docs/search/aggregation_reference/basepricestats_aggregation.md +++ b/docs/search/aggregation_reference/basepricestats_aggregation.md @@ -20,7 +20,12 @@ You can use the provided getters to access the values: ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\BasePriceStatsAggregation; + +/** @var CurrencyInterface $currency */ $query = new ProductQuery(); $query->setAggregations([ new BasePriceStatsAggregation('base_price_stats_aggregation', $currency), diff --git a/docs/search/aggregation_reference/checkboxterm_aggregation.md b/docs/search/aggregation_reference/checkboxterm_aggregation.md index 60cb472320..7f503ff832 100644 --- a/docs/search/aggregation_reference/checkboxterm_aggregation.md +++ b/docs/search/aggregation_reference/checkboxterm_aggregation.md @@ -12,7 +12,10 @@ The field-based [CheckboxTermAggregation](/api/php_api/php_api_reference/classes ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\CheckboxTermAggregation('checkbox', 'article', 'enable_comments'); ``` diff --git a/docs/search/aggregation_reference/contenttypegroupterm_aggregation.md b/docs/search/aggregation_reference/contenttypegroupterm_aggregation.md index 1b1b1f7fa7..0a77afbe98 100644 --- a/docs/search/aggregation_reference/contenttypegroupterm_aggregation.md +++ b/docs/search/aggregation_reference/contenttypegroupterm_aggregation.md @@ -12,7 +12,10 @@ The [ContentTypeGroupTermAggregation](/api/php_api/php_api_reference/classes/Ibe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\ContentTypeGroupTermAggregation('content_type_group'); ``` diff --git a/docs/search/aggregation_reference/contenttypeterm_aggregation.md b/docs/search/aggregation_reference/contenttypeterm_aggregation.md index fb5ec8f136..62d729603c 100644 --- a/docs/search/aggregation_reference/contenttypeterm_aggregation.md +++ b/docs/search/aggregation_reference/contenttypeterm_aggregation.md @@ -12,7 +12,10 @@ The [ContentTypeTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Co ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\ContentTypeTermAggregation('content_type'); ``` diff --git a/docs/search/aggregation_reference/countryterm_aggregation.md b/docs/search/aggregation_reference/countryterm_aggregation.md index 7de2d0d4dd..81e34ddde9 100644 --- a/docs/search/aggregation_reference/countryterm_aggregation.md +++ b/docs/search/aggregation_reference/countryterm_aggregation.md @@ -12,7 +12,10 @@ The field-based [CountryTermAggregation](/api/php_api/php_api_reference/classes/ ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\CountryTermAggregation('country', 'article', 'country'); ``` diff --git a/docs/search/aggregation_reference/custompricestats_aggregation.md b/docs/search/aggregation_reference/custompricestats_aggregation.md index e7f105fdc8..b3b0087702 100644 --- a/docs/search/aggregation_reference/custompricestats_aggregation.md +++ b/docs/search/aggregation_reference/custompricestats_aggregation.md @@ -20,7 +20,14 @@ The CustomPriceStatsAggregation aggregates search results by the value of the cu ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface; +use Ibexa\Contracts\ProductCatalog\Values\CustomerGroupInterface; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\CustomPriceStatsAggregation; + +/** @var CurrencyInterface $currency */ +/** @var CustomerGroupInterface $customerGroup */ $query = new ProductQuery(); $query->setAggregations([ new CustomPriceStatsAggregation('custom_price_stats_aggregation', $currency, $customerGroup), diff --git a/docs/search/aggregation_reference/datemetadatarange_aggregation.md b/docs/search/aggregation_reference/datemetadatarange_aggregation.md index bdf6cbc372..5b766dc53f 100644 --- a/docs/search/aggregation_reference/datemetadatarange_aggregation.md +++ b/docs/search/aggregation_reference/datemetadatarange_aggregation.md @@ -14,12 +14,19 @@ The [DateMetadataRangeAggregation](/api/php_api/php_api_reference/classes/Ibexa- ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new Query(); -$query->aggregations[] = new Aggregation\DateMetadataRangeAggregation('date_metadata', Aggregation\DateMetadataRangeAggregation::PUBLISHED, +$query->aggregations[] = new Aggregation\DateMetadataRangeAggregation( + 'date_metadata', + Aggregation\DateMetadataRangeAggregation::PUBLISHED, [ - new Query\Aggregation\Range(null, new DateTime('2020-06-01')), - new Query\Aggregation\Range(new DateTime('2020-06-01'), new DateTime('2020-12-31')), - new Query\Aggregation\Range(new DateTime('2020-12-31'), null), - ]); + Range::ofDateTime(null, new DateTime('2020-06-01')), + Range::ofDateTime(new DateTime('2020-06-01'), new DateTime('2020-12-31')), + Range::ofDateTime(new DateTime('2020-12-31'), null), + ] +); ``` diff --git a/docs/search/aggregation_reference/daterange_aggregation.md b/docs/search/aggregation_reference/daterange_aggregation.md index 31496bca80..5a4a9b9edd 100644 --- a/docs/search/aggregation_reference/daterange_aggregation.md +++ b/docs/search/aggregation_reference/daterange_aggregation.md @@ -14,12 +14,20 @@ The field-based [DateRangeAggregation](/api/php_api/php_api_reference/classes/Ib ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new Query(); -$query->aggregations[] = new Aggregation\Field\DateRangeAggregation('date', 'event', 'event_date', -[ - new Query\Aggregation\Range(null, new DateTime('2020-06-01')), - new Query\Aggregation\Range(new DateTime('2020-06-01'), new DateTime('2020-12-31')), - new Query\Aggregation\Range(new DateTime('2020-12-31'), null), -]); +$query->aggregations[] = new Aggregation\Field\DateRangeAggregation( + 'date', + 'event', + 'event_date', + [ + Range::ofDateTime(null, new DateTime('2020-06-01')), + Range::ofDateTime(new DateTime('2020-06-01'), new DateTime('2020-12-31')), + Range::ofDateTime(new DateTime('2020-12-31'), null), +] +); ``` diff --git a/docs/search/aggregation_reference/datetimerange_aggregation.md b/docs/search/aggregation_reference/datetimerange_aggregation.md index 726f1d236d..8e4cab9f28 100644 --- a/docs/search/aggregation_reference/datetimerange_aggregation.md +++ b/docs/search/aggregation_reference/datetimerange_aggregation.md @@ -14,12 +14,20 @@ The field-based [DateTimeRangeAggregation](/api/php_api/php_api_reference/classe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new Query(); -$query->aggregations[] = new Aggregation\Field\DateTimeRangeAggregation('date', 'event', 'event_date', -[ - new Query\Aggregation\Range(null, new DateTime('2020-06-01')), - new Query\Aggregation\Range(new DateTime('2020-06-01'), new DateTime('2020-12-31')), - new Query\Aggregation\Range(new DateTime('2020-12-31'), null), -]); +$query->aggregations[] = new Aggregation\Field\DateTimeRangeAggregation( + 'date', + 'event', + 'event_date', + [ + Range::ofDateTime(null, new DateTime('2020-06-01')), + Range::ofDateTime(new DateTime('2020-06-01'), new DateTime('2020-12-31')), + Range::ofDateTime(new DateTime('2020-12-31'), null), +] +); ``` diff --git a/docs/search/aggregation_reference/floatrange_aggregation.md b/docs/search/aggregation_reference/floatrange_aggregation.md index e7e8b3cf68..e5451c4979 100644 --- a/docs/search/aggregation_reference/floatrange_aggregation.md +++ b/docs/search/aggregation_reference/floatrange_aggregation.md @@ -14,12 +14,20 @@ The field-based [FloatRangeAggregation](/api/php_api/php_api_reference/classes/I ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new Query(); -$query->aggregations[] = new Aggregation\Field\FloatRangeAggregation('float', 'product', 'weight', -[ - new Query\Aggregation\Range(null, 0.25), - new Query\Aggregation\Range(0.25, 0.75), - new Query\Aggregation\Range(0.75, null), -]); +$query->aggregations[] = new Aggregation\Field\FloatRangeAggregation( + 'float', + 'product', + 'weight', + [ + Range::ofFloat(null, 0.25), + Range::ofFloat(0.25, 0.75), + Range::ofFloat(0.75, null), +] +); ``` diff --git a/docs/search/aggregation_reference/floatstats_aggregation.md b/docs/search/aggregation_reference/floatstats_aggregation.md index 5758e3e1e0..5fc9445378 100644 --- a/docs/search/aggregation_reference/floatstats_aggregation.md +++ b/docs/search/aggregation_reference/floatstats_aggregation.md @@ -19,7 +19,10 @@ You can use the provided getters to access the values: ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\FloatStatsAggregation('float', 'product', 'weight'); ``` diff --git a/docs/search/aggregation_reference/integerrange_aggregation.md b/docs/search/aggregation_reference/integerrange_aggregation.md index 6ea15c44c3..4080d20521 100644 --- a/docs/search/aggregation_reference/integerrange_aggregation.md +++ b/docs/search/aggregation_reference/integerrange_aggregation.md @@ -14,12 +14,20 @@ The field-based [IntegerRangeAggregation](/api/php_api/php_api_reference/classes ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new Query(); -$query->aggregations[] = new Aggregation\Field\IntegerRangeAggregation('integer', 'product', 'amount', -[ - new Query\Aggregation\Range(null, 12), - new Query\Aggregation\Range(12, 24), - new Query\Aggregation\Range(24, null), -]); +$query->aggregations[] = new Aggregation\Field\IntegerRangeAggregation( + 'integer', + 'product', + 'amount', + [ + Range::ofInt(null, 12), + Range::ofInt(12, 24), + Range::ofInt(24, null), +] +); ``` diff --git a/docs/search/aggregation_reference/integerstats_aggregation.md b/docs/search/aggregation_reference/integerstats_aggregation.md index 26b74564c3..ff31603d22 100644 --- a/docs/search/aggregation_reference/integerstats_aggregation.md +++ b/docs/search/aggregation_reference/integerstats_aggregation.md @@ -18,7 +18,10 @@ The field-based [IntegerStatsAggregation](/api/php_api/php_api_reference/classes ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\IntegerStatsAggregation('integer', 'product', 'amount'); ``` diff --git a/docs/search/aggregation_reference/keywordterm_aggregation.md b/docs/search/aggregation_reference/keywordterm_aggregation.md index c234473a5b..4457069e31 100644 --- a/docs/search/aggregation_reference/keywordterm_aggregation.md +++ b/docs/search/aggregation_reference/keywordterm_aggregation.md @@ -12,7 +12,10 @@ The field-based [KeywordTermAggregation](/api/php_api/php_api_reference/classes/ ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\KeywordTermAggregation('keyword', 'article', 'tags'); ``` diff --git a/docs/search/aggregation_reference/languageterm_aggregation.md b/docs/search/aggregation_reference/languageterm_aggregation.md index 3b2d179c75..41a7f88dbb 100644 --- a/docs/search/aggregation_reference/languageterm_aggregation.md +++ b/docs/search/aggregation_reference/languageterm_aggregation.md @@ -12,7 +12,10 @@ The [LanguageTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Contr ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\LanguageTermAggregation('language'); ``` diff --git a/docs/search/aggregation_reference/locationchildrenterm_aggregation.md b/docs/search/aggregation_reference/locationchildrenterm_aggregation.md index 30fd2b0d30..077bdaca94 100644 --- a/docs/search/aggregation_reference/locationchildrenterm_aggregation.md +++ b/docs/search/aggregation_reference/locationchildrenterm_aggregation.md @@ -12,7 +12,10 @@ The [LocationChildrenTermAggregation](/api/php_api/php_api_reference/classes/Ibe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new LocationQuery(); $query->aggregations[] = new Aggregation\Location\LocationChildrenTermAggregation('location_children'); ``` diff --git a/docs/search/aggregation_reference/objectstateterm_aggregation.md b/docs/search/aggregation_reference/objectstateterm_aggregation.md index 704a836fa2..cd5b1ffa13 100644 --- a/docs/search/aggregation_reference/objectstateterm_aggregation.md +++ b/docs/search/aggregation_reference/objectstateterm_aggregation.md @@ -13,9 +13,12 @@ The [ObjectStateTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Co ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); -$query->aggregations[] = new Aggregation\Location\ObjectStateTermAggregation('object_state', 'ibexa_lock'); +$query->aggregations[] = new Aggregation\ObjectStateTermAggregation('object_state', 'ibexa_lock'); ``` [[= include_file('docs/snippets/search_term_aggregation_settings.md') =]] diff --git a/docs/search/aggregation_reference/product_attribute_aggregations.md b/docs/search/aggregation_reference/product_attribute_aggregations.md index 3f74ae0164..845092669d 100644 --- a/docs/search/aggregation_reference/product_attribute_aggregations.md +++ b/docs/search/aggregation_reference/product_attribute_aggregations.md @@ -27,20 +27,27 @@ Range aggregations (`ProductAttributeFloatRangeAggregation` and `ProductAttribut ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\AttributeSelectionTermAggregation; + $query = new ProductQuery(); $query->setAggregations([ - new ProductAttributeSelectionAggregation('skin', 'skin_type'), + new AttributeSelectionTermAggregation('skin', 'skin_type'), ]); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\AttributeIntegerRangeAggregation; + $query = new ProductQuery(); $query->setAggregations([ - new ProductAttributeIntegerRangeAggregation('buttons', 'number_of_buttons', [ - new \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range(null, 5), - new \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range(5, 10), - new \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range(10, null), + new AttributeIntegerRangeAggregation('buttons', 'number_of_buttons', [ + Range::ofInt(null, 5), + Range::ofInt(5, 10), + Range::ofInt(10, null), ]), ]); ``` diff --git a/docs/search/aggregation_reference/productavailabilityterm_aggregation.md b/docs/search/aggregation_reference/productavailabilityterm_aggregation.md index ed5dd88e75..946fb1d611 100644 --- a/docs/search/aggregation_reference/productavailabilityterm_aggregation.md +++ b/docs/search/aggregation_reference/productavailabilityterm_aggregation.md @@ -12,7 +12,10 @@ The ProductAvailabilityTermAggregation aggregates search results by product avai ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\ProductAvailabilityTermAggregation; + $query = new ProductQuery(); $query->setAggregations([ new ProductAvailabilityTermAggregation('product_availability'), diff --git a/docs/search/aggregation_reference/productpricerange_aggregation.md b/docs/search/aggregation_reference/productpricerange_aggregation.md index a4485df168..ea1455dbc9 100644 --- a/docs/search/aggregation_reference/productpricerange_aggregation.md +++ b/docs/search/aggregation_reference/productpricerange_aggregation.md @@ -14,12 +14,16 @@ The ProductPriceRangeAggregation aggregates search results by the value of the p ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\ProductPriceRangeAggregation; + $query = new ProductQuery(); $query->setAggregations([ new ProductPriceRangeAggregation('price', 'PLN', [ - new \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range(0, 10000), - new \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range(10000, null), + Range::ofInt(0, 10000), + Range::ofInt(10000, null), ]), ]); ``` diff --git a/docs/search/aggregation_reference/productstockrange_aggregation.md b/docs/search/aggregation_reference/productstockrange_aggregation.md index 3c69e053a9..d098fe6bca 100644 --- a/docs/search/aggregation_reference/productstockrange_aggregation.md +++ b/docs/search/aggregation_reference/productstockrange_aggregation.md @@ -13,13 +13,17 @@ The ProductStockRangeAggregation aggregates search results by products' numerica ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\ProductStockRangeAggregation; + $productQuery = new ProductQuery(); $productQuery->setAggregations([ new ProductStockRangeAggregation('stock', [ - new Range(null, 10), - new Range(10, 100), - new Range(100, null), + Range::ofInt(null, 10), + Range::ofInt(10, 100), + Range::ofInt(100, null), ]), ]); ``` diff --git a/docs/search/aggregation_reference/producttypeterm_aggregation.md b/docs/search/aggregation_reference/producttypeterm_aggregation.md index 9b76fd95e6..d5f5c10c26 100644 --- a/docs/search/aggregation_reference/producttypeterm_aggregation.md +++ b/docs/search/aggregation_reference/producttypeterm_aggregation.md @@ -12,7 +12,10 @@ The ProductTypeTermAggregation aggregates search results by the product type. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Aggregation\ProductTypeTermAggregation; + $query = new ProductQuery(); $query->setAggregations([ new ProductTypeTermAggregation('product_type'), diff --git a/docs/search/aggregation_reference/rawrange_aggregation.md b/docs/search/aggregation_reference/rawrange_aggregation.md index 6098725266..1e0d36e81a 100644 --- a/docs/search/aggregation_reference/rawrange_aggregation.md +++ b/docs/search/aggregation_reference/rawrange_aggregation.md @@ -21,10 +21,14 @@ The [RawRangeAggregation](/api/php_api/php_api_reference/classes/Ibexa-Contracts ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + $query = new LocationQuery(); $query->aggregations[] = new Aggregation\RawRangeAggregation('priority', 'priority_id', [ - new Query\Aggregation\Range(1, 10), - new Query\Aggregation\Range(10, 100) + Range::ofInt(1, 10), + Range::ofInt(10, 100), ]); ``` diff --git a/docs/search/aggregation_reference/rawstats_aggregation.md b/docs/search/aggregation_reference/rawstats_aggregation.md index 6114073421..67315492d6 100644 --- a/docs/search/aggregation_reference/rawstats_aggregation.md +++ b/docs/search/aggregation_reference/rawstats_aggregation.md @@ -27,7 +27,10 @@ You can use the provided getters to access the values: ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\RawStatsAggregation('location_depth', 'depth_i'); ``` diff --git a/docs/search/aggregation_reference/rawterm_aggregation.md b/docs/search/aggregation_reference/rawterm_aggregation.md index 96116e09f8..a1b4aee7eb 100644 --- a/docs/search/aggregation_reference/rawterm_aggregation.md +++ b/docs/search/aggregation_reference/rawterm_aggregation.md @@ -20,7 +20,10 @@ The [RawTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Contracts- ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\RawTermAggregation('content_per_content_type', 'content_type_id_id'); ``` diff --git a/docs/search/aggregation_reference/sectionterm_aggregation.md b/docs/search/aggregation_reference/sectionterm_aggregation.md index f8b7d0b42d..0dc3a5ae99 100644 --- a/docs/search/aggregation_reference/sectionterm_aggregation.md +++ b/docs/search/aggregation_reference/sectionterm_aggregation.md @@ -12,7 +12,10 @@ The [SectionTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Contra ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\SectionTermAggregation('section'); ``` diff --git a/docs/search/aggregation_reference/selectionterm_aggregation.md b/docs/search/aggregation_reference/selectionterm_aggregation.md index 0cc1eb4bed..17164582ba 100644 --- a/docs/search/aggregation_reference/selectionterm_aggregation.md +++ b/docs/search/aggregation_reference/selectionterm_aggregation.md @@ -12,7 +12,10 @@ The field-based [SelectionTermAggregation](/api/php_api/php_api_reference/classe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Field\SelectionTermAggregation('selection', 'article', 'select'); ``` diff --git a/docs/search/aggregation_reference/subtreeterm_aggregation.md b/docs/search/aggregation_reference/subtreeterm_aggregation.md index 883fe95aa5..902a59f5bd 100644 --- a/docs/search/aggregation_reference/subtreeterm_aggregation.md +++ b/docs/search/aggregation_reference/subtreeterm_aggregation.md @@ -13,7 +13,10 @@ The [SubtreeTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Contra ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\Location\SubtreeTermAggregation('pathstring', '/1/2/'); ``` diff --git a/docs/search/aggregation_reference/taxonomyentryid_aggregation.md b/docs/search/aggregation_reference/taxonomyentryid_aggregation.md index 4f15846e06..ce35d66f94 100644 --- a/docs/search/aggregation_reference/taxonomyentryid_aggregation.md +++ b/docs/search/aggregation_reference/taxonomyentryid_aggregation.md @@ -13,12 +13,18 @@ The `TaxonomyEntryIdAggregation` aggregates search results by the content item's ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Taxonomy\Search\Query\Aggregation as Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\TaxonomyEntryIdAggregation('taxonomy', 'tags'); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\Taxonomy\Search\Query\Aggregation\TaxonomyEntryIdAggregation; + $query = new ProductQuery(); -$query->aggregations[] = new Aggregation\TaxonomyEntryIdAggregation('categories', 'product_categories'); +$query->setAggregations([new TaxonomyEntryIdAggregation('categories', 'product_categories')]); ``` diff --git a/docs/search/aggregation_reference/timerange_aggregation.md b/docs/search/aggregation_reference/timerange_aggregation.md index 0c3a39f740..bd1fc9a1e8 100644 --- a/docs/search/aggregation_reference/timerange_aggregation.md +++ b/docs/search/aggregation_reference/timerange_aggregation.md @@ -14,11 +14,24 @@ The field-based [TimeRangeAggregation](/api/php_api/php_api_reference/classes/Ib ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + +$timestamp = mktime(14, 0, 0); +if ($timestamp === false) { + throw new RuntimeException('Failed to create timestamp with mktime.'); +} + $query = new Query(); -$query->aggregations[] = new Aggregation\Field\TimeRangeAggregation('date', 'event', 'event_time', -[ - new Query\Aggregation\Range(null, new DateTime('T14:00')), - new Query\Aggregation\Range(new DateTime('T14:003'), null), -]); +$query->aggregations[] = new Aggregation\Field\TimeRangeAggregation( + 'date', + 'event', + 'event_time', + [ + Range::ofInt(null, $timestamp), + Range::ofInt($timestamp, null), +] +); ``` diff --git a/docs/search/aggregation_reference/usermetadataterm_aggregation.md b/docs/search/aggregation_reference/usermetadataterm_aggregation.md index 6d53d8c5ee..b61f72f109 100644 --- a/docs/search/aggregation_reference/usermetadataterm_aggregation.md +++ b/docs/search/aggregation_reference/usermetadataterm_aggregation.md @@ -12,7 +12,10 @@ The [UserMetadataTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-C ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\UserMetadataTermAggregation('user_metadata'); ``` diff --git a/docs/search/aggregation_reference/visibilityterm_aggregation.md b/docs/search/aggregation_reference/visibilityterm_aggregation.md index 4581031227..843cb5a36c 100644 --- a/docs/search/aggregation_reference/visibilityterm_aggregation.md +++ b/docs/search/aggregation_reference/visibilityterm_aggregation.md @@ -12,7 +12,10 @@ The [VisibilityTermAggregation](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation; + $query = new Query(); $query->aggregations[] = new Aggregation\VisibilityTermAggregation('visibility'); ``` diff --git a/docs/search/criteria_reference/ancestor_criterion.md b/docs/search/criteria_reference/ancestor_criterion.md index d8d6854443..024d8c3c9c 100644 --- a/docs/search/criteria_reference/ancestor_criterion.md +++ b/docs/search/criteria_reference/ancestor_criterion.md @@ -14,8 +14,13 @@ The [`Ancestor` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa-C ### PHP -``` php {skip-validation} -$query->query = new Criterion\Ancestor([$this->locationService->loadLocation(62)->pathString]); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +/** @var \Ibexa\Contracts\Core\Repository\LocationService $locationService */ +$query->query = new Criterion\Ancestor([$locationService->loadLocation(62)->pathString]); ``` ### REST API @@ -44,11 +49,18 @@ $query->query = new Criterion\Ancestor([$this->locationService->loadLocation(62) You can use the Ancestor Search Criterion to create a list of breadcrumbs leading to the Location: -``` php {skip-validation} hl_lines="2" +``` php hl_lines="8" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$locationId = 12345; + $query = new LocationQuery(); -$query->query = new Criterion\Ancestor([$this->locationService->loadLocation($locationId)->pathString]); +/** @var \Ibexa\Contracts\Core\Repository\LocationService $locationService */ +$query->query = new Criterion\Ancestor([$locationService->loadLocation($locationId)->pathString]); -$results = $this->searchService->findLocations($query); +/** @var \Ibexa\Contracts\Core\Repository\SearchService $searchService */ +$results = $searchService->findLocations($query); $breadcrumbs = []; foreach ($results->searchHits as $searchHit) { $breadcrumbs[] = $searchHit; diff --git a/docs/search/criteria_reference/baseprice_criterion.md b/docs/search/criteria_reference/baseprice_criterion.md index 61fb0ad678..c834d0b416 100644 --- a/docs/search/criteria_reference/baseprice_criterion.md +++ b/docs/search/criteria_reference/baseprice_criterion.md @@ -19,7 +19,10 @@ The `BasePrice` Criterion isn't available in the Legacy Search engine. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\BasePrice( diff --git a/docs/search/criteria_reference/checkboxattribute_criterion.md b/docs/search/criteria_reference/checkboxattribute_criterion.md index 17b2bfdb13..64fefc9895 100644 --- a/docs/search/criteria_reference/checkboxattribute_criterion.md +++ b/docs/search/criteria_reference/checkboxattribute_criterion.md @@ -15,7 +15,10 @@ The `CheckboxAttribute` Search Criterion searches for products by the value of t ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\CheckboxAttribute('automatic', true) diff --git a/docs/search/criteria_reference/colorattribute_criterion.md b/docs/search/criteria_reference/colorattribute_criterion.md index 2975c015d1..2de0571bbb 100644 --- a/docs/search/criteria_reference/colorattribute_criterion.md +++ b/docs/search/criteria_reference/colorattribute_criterion.md @@ -15,7 +15,10 @@ The `ColorAttribute` Search Criterion searches for products by the value of thei ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ColorAttribute('color', ['#FF0000']) diff --git a/docs/search/criteria_reference/contentid_criterion.md b/docs/search/criteria_reference/contentid_criterion.md index 10fba74e46..0a547c22ae 100644 --- a/docs/search/criteria_reference/contentid_criterion.md +++ b/docs/search/criteria_reference/contentid_criterion.md @@ -14,7 +14,11 @@ The [`ContentId` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa- ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ContentId([62, 64]); ``` diff --git a/docs/search/criteria_reference/contentname_criterion.md b/docs/search/criteria_reference/contentname_criterion.md index 1a733444f8..81f6557267 100644 --- a/docs/search/criteria_reference/contentname_criterion.md +++ b/docs/search/criteria_reference/contentname_criterion.md @@ -14,7 +14,11 @@ The [`ContentName` Search Criterion](https://github.com/ibexa/core/blob/5.0/src/ ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ContentName('*phone'); ``` diff --git a/docs/search/criteria_reference/contenttypegroupid_criterion.md b/docs/search/criteria_reference/contenttypegroupid_criterion.md index 62534ef5bc..d901be3cf6 100644 --- a/docs/search/criteria_reference/contenttypegroupid_criterion.md +++ b/docs/search/criteria_reference/contenttypegroupid_criterion.md @@ -14,7 +14,11 @@ The [`ContentTypeGroupId` Search Criterion](/api/php_api/php_api_reference/class ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ContentTypeGroupId([1, 2]); ``` @@ -45,13 +49,18 @@ $query->query = new Criterion\ContentTypeGroupId([1, 2]); You can use the `ContentTypeGroupId` Criterion to query all Media content items (the default ID for the Media content type group is 3): -``` php {skip-validation} hl_lines="1" - $query->query = new Criterion\ContentTypeGroupId([3]); +``` php hl_lines="6" +use Ibexa\Contracts\Core\Repository\SearchService; +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; - $results = $this->searchService->findContent($query); - $media = []; - foreach ($results->searchHits as $searchHit) { - $media[] = $searchHit; - } - } +$query = new Query(); +$query->query = new Criterion\ContentTypeGroupId([3]); + +/** @var SearchService $searchService */ +$results = $searchService->findContent($query); +$media = []; +foreach ($results->searchHits as $searchHit) { + $media[] = $searchHit; +} ``` diff --git a/docs/search/criteria_reference/contenttypeid_criterion.md b/docs/search/criteria_reference/contenttypeid_criterion.md index 5b1ce1775e..853ba1b908 100644 --- a/docs/search/criteria_reference/contenttypeid_criterion.md +++ b/docs/search/criteria_reference/contenttypeid_criterion.md @@ -14,7 +14,11 @@ The [`ContentTypeId` Search Criterion](/api/php_api/php_api_reference/classes/Ib ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ContentTypeId([44]); ``` diff --git a/docs/search/criteria_reference/contenttypeidentifier_criterion.md b/docs/search/criteria_reference/contenttypeidentifier_criterion.md index 1fdbb2021b..1d980812ff 100644 --- a/docs/search/criteria_reference/contenttypeidentifier_criterion.md +++ b/docs/search/criteria_reference/contenttypeidentifier_criterion.md @@ -14,7 +14,11 @@ The [`ContentTypeIdentifier` Search Criterion](/api/php_api/php_api_reference/cl ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ContentTypeIdentifier(['article', 'blog_post']); ``` diff --git a/docs/search/criteria_reference/createdat_criterion.md b/docs/search/criteria_reference/createdat_criterion.md index 1de26d3916..1c146535aa 100644 --- a/docs/search/criteria_reference/createdat_criterion.md +++ b/docs/search/criteria_reference/createdat_criterion.md @@ -15,7 +15,10 @@ The `CreatedAt` Search Criterion searches for products based on the date when th ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $criteria = new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\CreatedAt( new DateTime('2023-03-01'), \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\Operator::GTE, diff --git a/docs/search/criteria_reference/createdatrange_criterion.md b/docs/search/criteria_reference/createdatrange_criterion.md index b1bc9f2e4c..04a1265c20 100644 --- a/docs/search/criteria_reference/createdatrange_criterion.md +++ b/docs/search/criteria_reference/createdatrange_criterion.md @@ -15,7 +15,10 @@ The `CreatedAtRange` Search Criterion searches for products based on the date ra ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $criteria = new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\CreatedAtRange( new \DateTimeImmutable('2020-07-10T00:00:00+00:00'), new \DateTimeImmutable('2023-07-12T00:00:00+00:00') diff --git a/docs/search/criteria_reference/currencycode_criterion.md b/docs/search/criteria_reference/currencycode_criterion.md index 5603f3421e..7c6b98cbe5 100644 --- a/docs/search/criteria_reference/currencycode_criterion.md +++ b/docs/search/criteria_reference/currencycode_criterion.md @@ -18,6 +18,10 @@ The `CurrencyCodeCriterion` Criterion isn't available in Solr or Elasticsearch e ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\ProductCatalog\Values\Currency\Query\Criterion\CurrencyCodeCriterion('EUR'); +``` php +use Ibexa\Contracts\ProductCatalog\Values\Currency\CurrencyQuery; + +$query = new CurrencyQuery( + new \Ibexa\Contracts\ProductCatalog\Values\Currency\Query\Criterion\CurrencyCodeCriterion('EUR') +); ``` diff --git a/docs/search/criteria_reference/customergroupid_criterion.md b/docs/search/criteria_reference/customergroupid_criterion.md index 691e11f906..44c7b31977 100644 --- a/docs/search/criteria_reference/customergroupid_criterion.md +++ b/docs/search/criteria_reference/customergroupid_criterion.md @@ -14,6 +14,10 @@ The `CustomerGroupId` Search Criterion searches for content based on the ID of i ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\ProductCatalog\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\CustomerGroupId(1); ``` diff --git a/docs/search/criteria_reference/customprice_criterion.md b/docs/search/criteria_reference/customprice_criterion.md index 598edb614e..0855e9e596 100644 --- a/docs/search/criteria_reference/customprice_criterion.md +++ b/docs/search/criteria_reference/customprice_criterion.md @@ -21,12 +21,17 @@ The `CustomPrice` Criterion isn't available in the Legacy Search engine. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + +/** @var \Ibexa\Contracts\ProductCatalog\Values\CustomerGroupInterface $customerGroup */ $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\CustomPrice( \Money\Money::EUR(13800), \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\Operator::GTE, - $customerGroup) + $customerGroup + ) ); ``` diff --git a/docs/search/criteria_reference/datemetadata_criterion.md b/docs/search/criteria_reference/datemetadata_criterion.md index 587ab4342b..200a02d3e2 100644 --- a/docs/search/criteria_reference/datemetadata_criterion.md +++ b/docs/search/criteria_reference/datemetadata_criterion.md @@ -16,7 +16,11 @@ The [`DateMetadata` Search Criterion](/api/php_api/php_api_reference/classes/Ibe ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\DateMetadata( Criterion\DateMetadata::CREATED, Criterion\Operator::BETWEEN, @@ -58,10 +62,14 @@ $query->query = new Criterion\DateMetadata( You can use the `DateMetadata` Criterion to search for blog posts that have been created within the last week: -``` php {skip-validation} hl_lines="5" -$query = new LocationQuery; -$date = strtotime("-1 week"); -$query->query = new Criterion\LogicalAnd([ +``` php hl_lines="9" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new LocationQuery(); +$date = strtotime('-1 week'); +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('blog_post'), new Criterion\DateMetadata(Criterion\DateMetadata::CREATED, Criterion\Operator::GTE, $date), ] diff --git a/docs/search/criteria_reference/depth_criterion.md b/docs/search/criteria_reference/depth_criterion.md index b27eed048e..984ccb6435 100644 --- a/docs/search/criteria_reference/depth_criterion.md +++ b/docs/search/criteria_reference/depth_criterion.md @@ -23,6 +23,10 @@ The `value` argument requires: ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Location\Depth(Criterion\Operator::LT, 3); ``` diff --git a/docs/search/criteria_reference/field_criterion.md b/docs/search/criteria_reference/field_criterion.md index 6e4d7ff79f..c873d73305 100644 --- a/docs/search/criteria_reference/field_criterion.md +++ b/docs/search/criteria_reference/field_criterion.md @@ -25,7 +25,11 @@ The `Field` Criterion isn't available in [Repository filtering](search_api.md#re ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Field('name', Criterion\Operator::CONTAINS, 'Platform'); ``` @@ -65,11 +69,15 @@ $query->query = new Criterion\Field('name', Criterion\Operator::CONTAINS, 'Platf You can use the `Field` Criterion to search for articles that contain the word "featured": -``` php {skip-validation} hl_lines="4" +``` php hl_lines="8" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + $query = new LocationQuery(); -$query->query = new Criterion\LogicalAnd([ +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('article'), - new Criterion\Field('name', Criterion\Operator::CONTAINS, 'Featured') + new Criterion\Field('name', Criterion\Operator::CONTAINS, 'Featured'), ] ); ``` diff --git a/docs/search/criteria_reference/fieldrelation_criterion.md b/docs/search/criteria_reference/fieldrelation_criterion.md index 6baeeac174..9640f43c2c 100644 --- a/docs/search/criteria_reference/fieldrelation_criterion.md +++ b/docs/search/criteria_reference/fieldrelation_criterion.md @@ -22,6 +22,10 @@ The `FieldRelation` Criterion isn't available in [Repository filtering](search_a ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\FieldRelation('relations', Criterion\Operator::CONTAINS, [55, 63]); ``` diff --git a/docs/search/criteria_reference/floatattribute_criterion.md b/docs/search/criteria_reference/floatattribute_criterion.md index 7183c5e32d..928f495b7a 100644 --- a/docs/search/criteria_reference/floatattribute_criterion.md +++ b/docs/search/criteria_reference/floatattribute_criterion.md @@ -15,7 +15,10 @@ The `FloatAttribute` Search Criterion searches for products by the value of thei ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\FloatAttribute( diff --git a/docs/search/criteria_reference/fulltext_criterion.md b/docs/search/criteria_reference/fulltext_criterion.md index 8ea75b14c5..a9ac61cfbe 100644 --- a/docs/search/criteria_reference/fulltext_criterion.md +++ b/docs/search/criteria_reference/fulltext_criterion.md @@ -39,19 +39,31 @@ The `FullText` Criterion isn't available in [Repository filtering](search_api.md ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\FullText('victory'); ``` Using double quotes to indicate a phrase: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\FullText('"world cup"'); ``` Using the AND operator and parenthesis to search for both words at the same time: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\FullText('baseball AND cup'); ``` @@ -81,7 +93,11 @@ $query->query = new Criterion\FullText('baseball AND cup'); Assume the following search query: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\FullText('(cup AND ba*ball) "breaking news"'); ``` diff --git a/docs/search/criteria_reference/image_criterion.md b/docs/search/criteria_reference/image_criterion.md index 53f6827f03..43ad087a37 100644 --- a/docs/search/criteria_reference/image_criterion.md +++ b/docs/search/criteria_reference/image_criterion.md @@ -15,7 +15,10 @@ The `Image` Search Criterion searches for image by specified image attributes. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + $imageCriteriaData = [ 'mimeTypes' => [ 'image/png', @@ -36,6 +39,8 @@ $imageCriteriaData = [ 'max' => 2, // (default: null, optional) ], ]; + +$query = new Query(); $query->query = new Criterion\Image('image', $imageCriteriaData); ``` diff --git a/docs/search/criteria_reference/imagedimensions_criterion.md b/docs/search/criteria_reference/imagedimensions_criterion.md index 62974e5ac5..85bad978be 100644 --- a/docs/search/criteria_reference/imagedimensions_criterion.md +++ b/docs/search/criteria_reference/imagedimensions_criterion.md @@ -15,7 +15,11 @@ The `Dimensions` Search Criterion searches for image with specified dimensions. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $imageCriteriaData = [ 'width' => [ 'min' => 100, // (default: 0, optional) @@ -27,7 +31,7 @@ $imageCriteriaData = [ ], ]; -$query->query = new Criterion\Dimensions('image', $imageCriteriaData); +$query->query = new Criterion\Image\Dimensions('image', $imageCriteriaData); ``` ### REST API diff --git a/docs/search/criteria_reference/imagefilesize_criterion.md b/docs/search/criteria_reference/imagefilesize_criterion.md index 81181e8b28..284d4507d2 100644 --- a/docs/search/criteria_reference/imagefilesize_criterion.md +++ b/docs/search/criteria_reference/imagefilesize_criterion.md @@ -16,8 +16,12 @@ The `FileSize` Search Criterion searches for image with specified size. ### PHP -``` php {skip-validation} -$query->query = new Criterion\FileSize('image', 0, 1.5); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new Criterion\Image\FileSize('image', 0, 1.5); ``` ### REST API diff --git a/docs/search/criteria_reference/imageheight_criterion.md b/docs/search/criteria_reference/imageheight_criterion.md index 4fa68b755d..ff8402b4ae 100644 --- a/docs/search/criteria_reference/imageheight_criterion.md +++ b/docs/search/criteria_reference/imageheight_criterion.md @@ -16,6 +16,10 @@ The `Height` Search Criterion searches for image with specified height. ### PHP -``` php {skip-validation} -$query->query = new Criterion\Height('image', 0, 1500); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new Criterion\Image\Height('image', 0, 1500); ``` diff --git a/docs/search/criteria_reference/imagemimetype_criterion.md b/docs/search/criteria_reference/imagemimetype_criterion.md index 489455e7bf..0564efd8da 100644 --- a/docs/search/criteria_reference/imagemimetype_criterion.md +++ b/docs/search/criteria_reference/imagemimetype_criterion.md @@ -15,19 +15,27 @@ The `MimeType` Search Criterion searches for image with specified mime type(s). ### PHP -``` php {skip-validation} -$query->query = new Criterion\MimeType('image', 'image/jpeg'); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new Criterion\Image\MimeType('image', 'image/jpeg'); ``` or -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $mimeTypes = [ 'image/jpeg', 'image/png', ]; -$query->query = new Criterion\MimeType('image', $mimeTypes); +$query->query = new Criterion\Image\MimeType('image', $mimeTypes); ``` ### REST API diff --git a/docs/search/criteria_reference/imageorientation_criterion.md b/docs/search/criteria_reference/imageorientation_criterion.md index 21b7b629e2..73d54f75b0 100644 --- a/docs/search/criteria_reference/imageorientation_criterion.md +++ b/docs/search/criteria_reference/imageorientation_criterion.md @@ -16,17 +16,30 @@ Supported orientation values: landscape, portrait and square. ### PHP -``` php {skip-validation} -$query->query = new Criterion\Orientation('image', 'landscape'); +#### Single orientation value -OR +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Orientation; +$query = new Query(); +$query->query = new Orientation('image', 'landscape'); +``` + +#### Multiple orientation values + +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Orientation; + +$query = new Query(); $orientations = [ 'landscape', 'portrait', ]; -$query->query = new Criterion\Orientation('image', $orientations); +$query->query = new Orientation('image', $orientations); ``` ### REST API diff --git a/docs/search/criteria_reference/imagewidth_criterion.md b/docs/search/criteria_reference/imagewidth_criterion.md index 370ba04f23..63aa770802 100644 --- a/docs/search/criteria_reference/imagewidth_criterion.md +++ b/docs/search/criteria_reference/imagewidth_criterion.md @@ -16,6 +16,10 @@ The `Width` Search Criterion searches for image with specified width. ### PHP -``` php {skip-validation} -$query->query = new Criterion\Width('image', 150, 1000); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new Criterion\Image\Width('image', 150, 1000); ``` diff --git a/docs/search/criteria_reference/integerattribute_criterion.md b/docs/search/criteria_reference/integerattribute_criterion.md index f09007a5e1..9981cabd3c 100644 --- a/docs/search/criteria_reference/integerattribute_criterion.md +++ b/docs/search/criteria_reference/integerattribute_criterion.md @@ -15,7 +15,10 @@ The `IntegerAttribute` Search Criterion searches for products by the value of th ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\IntegerAttribute( diff --git a/docs/search/criteria_reference/iscontainer_criterion.md b/docs/search/criteria_reference/iscontainer_criterion.md index b5ff2cb7b5..1edc2ba3a4 100644 --- a/docs/search/criteria_reference/iscontainer_criterion.md +++ b/docs/search/criteria_reference/iscontainer_criterion.md @@ -15,7 +15,11 @@ The [`IsContainer` Search Criterion](/api/php_api/php_api_reference/classes/Ibex ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\IsContainer(); // Finds containers $query->query = new Criterion\IsContainer(false); // Finds non-containers ``` diff --git a/docs/search/criteria_reference/iscurrencyenabled_criterion.md b/docs/search/criteria_reference/iscurrencyenabled_criterion.md index 2c719d78b2..d470584211 100644 --- a/docs/search/criteria_reference/iscurrencyenabled_criterion.md +++ b/docs/search/criteria_reference/iscurrencyenabled_criterion.md @@ -19,6 +19,10 @@ The `IsCurrencyEnabledCriterion` Criterion isn't available in Solr or Elasticsea ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\ProductCatalog\Values\Currency\Query\Criterion\IsCurrencyEnabledCriterion(); +``` php +use Ibexa\Contracts\ProductCatalog\Values\Currency\CurrencyQuery; + +$query = new CurrencyQuery( + new \Ibexa\Contracts\ProductCatalog\Values\Currency\Query\Criterion\IsCurrencyEnabledCriterion() +); ``` diff --git a/docs/search/criteria_reference/isfieldempty_criterion.md b/docs/search/criteria_reference/isfieldempty_criterion.md index 17203ebc4a..c4ca0506f2 100644 --- a/docs/search/criteria_reference/isfieldempty_criterion.md +++ b/docs/search/criteria_reference/isfieldempty_criterion.md @@ -25,7 +25,11 @@ For this use case, use [`TaxonomyNoEntries`](taxonomy_no_entries.md) instead. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\IsFieldEmpty('title'); ``` @@ -33,9 +37,13 @@ $query->query = new Criterion\IsFieldEmpty('title'); You can use the `IsFieldEmpty` Criterion to search for articles that don't have an image: -``` php {skip-validation} hl_lines="4" -$query = new LocationQuery; -$query->query = new Criterion\LogicalAnd([ +``` php hl_lines="8" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new LocationQuery(); +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('article'), new Criterion\IsFieldEmpty('image'), ] diff --git a/docs/search/criteria_reference/ismainlocation_criterion.md b/docs/search/criteria_reference/ismainlocation_criterion.md index 44720017d9..d3790a5045 100644 --- a/docs/search/criteria_reference/ismainlocation_criterion.md +++ b/docs/search/criteria_reference/ismainlocation_criterion.md @@ -17,6 +17,11 @@ representing whether to search for a main or not main location ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Location\IsMainLocation; + +$query = new Query(); $query->query = new Criterion\Location\IsMainLocation(IsMainLocation::MAIN); ``` diff --git a/docs/search/criteria_reference/isproductbased_criterion.md b/docs/search/criteria_reference/isproductbased_criterion.md index 4b473009f1..507450e3e3 100644 --- a/docs/search/criteria_reference/isproductbased_criterion.md +++ b/docs/search/criteria_reference/isproductbased_criterion.md @@ -10,6 +10,10 @@ The `IsProductBased` Search Criterion searches for content that plays the role o ### PHP -``` php {skip-validation} -$query->query = new Ibexa\Contracts\ProductCatalog\Values\Content\Query\Criterion\IsProductBased(); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new \Ibexa\Contracts\ProductCatalog\Values\Content\Query\Criterion\IsProductBased(); ``` diff --git a/docs/search/criteria_reference/isuserbased_criterion.md b/docs/search/criteria_reference/isuserbased_criterion.md index ef98a9722a..b07c5cd58d 100644 --- a/docs/search/criteria_reference/isuserbased_criterion.md +++ b/docs/search/criteria_reference/isuserbased_criterion.md @@ -24,7 +24,11 @@ The `IsUserBased` Criterion isn't available in Solr or Elasticsearch engines. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\IsUserBased(); ``` diff --git a/docs/search/criteria_reference/isuserenabled_criterion.md b/docs/search/criteria_reference/isuserenabled_criterion.md index d3e47d448e..bd61b058f5 100644 --- a/docs/search/criteria_reference/isuserenabled_criterion.md +++ b/docs/search/criteria_reference/isuserenabled_criterion.md @@ -15,7 +15,11 @@ The [`IsUserEnabled` Search Criterion](/api/php_api/php_api_reference/classes/Ib ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\IsUserEnabled(); ``` diff --git a/docs/search/criteria_reference/isvirtual_criterion.md b/docs/search/criteria_reference/isvirtual_criterion.md index d4196c8359..5f2bb3aa02 100644 --- a/docs/search/criteria_reference/isvirtual_criterion.md +++ b/docs/search/criteria_reference/isvirtual_criterion.md @@ -14,7 +14,10 @@ The `IsVirtual` Search Criterion searches for virtual or physical products. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\IsVirtual(true) diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md index fd44222e9d..7b74156f66 100644 --- a/docs/search/criteria_reference/languagecode_criterion.md +++ b/docs/search/criteria_reference/languagecode_criterion.md @@ -15,7 +15,11 @@ The [`LanguageCode` Search Criterion](/api/php_api/php_api_reference/classes/Ibe ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\LanguageCode('ger-DE', false); ``` @@ -46,23 +50,26 @@ $query->query = new Criterion\LanguageCode('ger-DE', false); You can use the `LanguageCode` Criterion to search for articles that are lacking a translation into a specific language: -``` php {skip-validation} hl_lines="5" -$query = new LocationQuery; -$query->query = new Criterion\LogicalAnd([ +``` php hl_lines="9" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new LocationQuery(); +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('article'), new Criterion\LogicalNot( new Criterion\LanguageCode('ger-DE', false) - ) + ), ] ); -$results = $this->searchService->findContent($query); -$articles = []; +/** @var \Ibexa\Contracts\Core\Repository\SearchService $searchService */ +$results = $searchService->findContent($query); +$articlesToTranslate = []; foreach ($results->searchHits as $searchHit) { - $articles[] = $searchHit; + $articlesToTranslate[] = $searchHit; } -return $this->render('list/articles_to_translate.html.twig', [ - 'articles' => $articles, -]); +return $articlesToTranslate; ``` diff --git a/docs/search/criteria_reference/locationid_criterion.md b/docs/search/criteria_reference/locationid_criterion.md index 560000ca2e..7fba54c3f7 100644 --- a/docs/search/criteria_reference/locationid_criterion.md +++ b/docs/search/criteria_reference/locationid_criterion.md @@ -14,7 +14,11 @@ The [`LocationId` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\LocationId(62); ``` diff --git a/docs/search/criteria_reference/locationremoteid_criterion.md b/docs/search/criteria_reference/locationremoteid_criterion.md index ae90f2d70e..e51cadb8c1 100644 --- a/docs/search/criteria_reference/locationremoteid_criterion.md +++ b/docs/search/criteria_reference/locationremoteid_criterion.md @@ -14,7 +14,11 @@ The [`LocationRemoteId` Search Criterion](/api/php_api/php_api_reference/classes ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\LocationRemoteId(['4d1e5f216c0a7aaab7f005ffd4b6a8a8', 'b81ef3e62b514188bfddd2a80d447d34']); ``` diff --git a/docs/search/criteria_reference/logicaland_criterion.md b/docs/search/criteria_reference/logicaland_criterion.md index f7daa124cc..b5eac8a4b3 100644 --- a/docs/search/criteria_reference/logicaland_criterion.md +++ b/docs/search/criteria_reference/logicaland_criterion.md @@ -16,10 +16,15 @@ When querying for [products](product_api.md), use [LogicalAnd](/api/php_api/php_ ### PHP -``` php {skip-validation} -$query->query = new Criterion\LogicalAnd([ +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('article'), - new Criterion\SectionIdentifier(['sports', 'news']); + new Criterion\SectionIdentifier(['sports', 'news']), ] ); ``` diff --git a/docs/search/criteria_reference/logicalnot_criterion.md b/docs/search/criteria_reference/logicalnot_criterion.md index c4994fc9a8..b1796be8d8 100644 --- a/docs/search/criteria_reference/logicalnot_criterion.md +++ b/docs/search/criteria_reference/logicalnot_criterion.md @@ -14,9 +14,15 @@ It takes only one Criterion in the array parameter. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$contentTypeIdentifier = 'article'; + +$query = new Query(); $query->filter = new Criterion\LogicalNot( - new Criterion\ContentTypeIdentifier($contentTypeId) + new Criterion\ContentTypeIdentifier($contentTypeIdentifier) ); ``` diff --git a/docs/search/criteria_reference/logicalor_criterion.md b/docs/search/criteria_reference/logicalor_criterion.md index bf5b6f1618..0bbc57cd92 100644 --- a/docs/search/criteria_reference/logicalor_criterion.md +++ b/docs/search/criteria_reference/logicalor_criterion.md @@ -16,10 +16,15 @@ When querying for [products](product_api.md), use [LogicalOr](/api/php_api/php_a ### PHP -``` php {skip-validation} -$query->filter = new Criterion\LogicalOr([ +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +$query->filter = new Criterion\LogicalOr( + [ new Criterion\ContentTypeIdentifier('article'), - new Criterion\SectionIdentifier(['sports', 'news']); + new Criterion\SectionIdentifier(['sports', 'news']), ] ); ``` diff --git a/docs/search/criteria_reference/maplocationdistance_criterion.md b/docs/search/criteria_reference/maplocationdistance_criterion.md index 02fa95d74b..c70c375524 100644 --- a/docs/search/criteria_reference/maplocationdistance_criterion.md +++ b/docs/search/criteria_reference/maplocationdistance_criterion.md @@ -27,6 +27,10 @@ The `MapLocationDistance` Criterion isn't available in [Repository filtering](se ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\MapLocationDistance('location', Criterion\Operator::LTE, 5, 51.395973, 22.531696); ``` diff --git a/docs/search/criteria_reference/objectstateid_criterion.md b/docs/search/criteria_reference/objectstateid_criterion.md index 3c92bdfbfb..d4de1e801b 100644 --- a/docs/search/criteria_reference/objectstateid_criterion.md +++ b/docs/search/criteria_reference/objectstateid_criterion.md @@ -14,7 +14,11 @@ The [`ObjectStateId` Search Criterion](/api/php_api/php_api_reference/classes/Ib ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ObjectStateId([4, 5]); ``` diff --git a/docs/search/criteria_reference/objectstateidentifier_criterion.md b/docs/search/criteria_reference/objectstateidentifier_criterion.md index 6ebc1ca222..90cdbc36d4 100644 --- a/docs/search/criteria_reference/objectstateidentifier_criterion.md +++ b/docs/search/criteria_reference/objectstateidentifier_criterion.md @@ -15,11 +15,19 @@ The [`ObjectStateIdentifier` Search Criterion](/api/php_api/php_api_reference/cl ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ObjectStateIdentifier(['ready']); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ObjectStateIdentifier(['not_locked'], 'ibexa_lock'); ``` diff --git a/docs/search/criteria_reference/order_company_associated_criterion.md b/docs/search/criteria_reference/order_company_associated_criterion.md index 627899956e..84e9529614 100644 --- a/docs/search/criteria_reference/order_company_associated_criterion.md +++ b/docs/search/criteria_reference/order_company_associated_criterion.md @@ -15,7 +15,10 @@ The `IsCompanyAssociatedCriterion` Search Criterion searches for orders based on ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\IsCompanyAssociatedCriterion(true) ); diff --git a/docs/search/criteria_reference/order_company_name_criterion.md b/docs/search/criteria_reference/order_company_name_criterion.md index bbfa413877..170fd0eaaa 100644 --- a/docs/search/criteria_reference/order_company_name_criterion.md +++ b/docs/search/criteria_reference/order_company_name_criterion.md @@ -15,7 +15,10 @@ The `CompanyNameCriterion` Search Criterion searches for orders based on the nam ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\CompanyNameCriterion('IBM') ); diff --git a/docs/search/criteria_reference/order_created_criterion.md b/docs/search/criteria_reference/order_created_criterion.md index 16527e9af6..ac566ca2e6 100644 --- a/docs/search/criteria_reference/order_created_criterion.md +++ b/docs/search/criteria_reference/order_created_criterion.md @@ -16,7 +16,10 @@ The `CreatedAtCriterion` Search Criterion searches for orders based on the date ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $criteria = new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\CreatedAtCriterion( new DateTime('2023-03-01'), 'GTE' diff --git a/docs/search/criteria_reference/order_currency_code_criterion.md b/docs/search/criteria_reference/order_currency_code_criterion.md index 975391d2c0..9f0b5f639c 100644 --- a/docs/search/criteria_reference/order_currency_code_criterion.md +++ b/docs/search/criteria_reference/order_currency_code_criterion.md @@ -15,7 +15,10 @@ The `CurrencyCodeCriterion` Search Criterion searches for orders based on the cu ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\CurrencyCodeCriterion('USD') ); diff --git a/docs/search/criteria_reference/order_customer_name_criterion.md b/docs/search/criteria_reference/order_customer_name_criterion.md index a41df8b6a3..6f72425cc1 100644 --- a/docs/search/criteria_reference/order_customer_name_criterion.md +++ b/docs/search/criteria_reference/order_customer_name_criterion.md @@ -15,7 +15,10 @@ The `CustomerNameCriterion` Search Criterion searches for orders based on the na ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\CustomerNameCriterion('john') ); diff --git a/docs/search/criteria_reference/order_identifier_criterion.md b/docs/search/criteria_reference/order_identifier_criterion.md index 6cfabd4c19..107c4fa62d 100644 --- a/docs/search/criteria_reference/order_identifier_criterion.md +++ b/docs/search/criteria_reference/order_identifier_criterion.md @@ -15,7 +15,10 @@ The `IdentifierCriterion` Search Criterion searches for orders based on the orde ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\IdentifierCriterion('f7578972-e7f4-4cae-85dc-a7c74610204e') ); diff --git a/docs/search/criteria_reference/order_owner_criterion.md b/docs/search/criteria_reference/order_owner_criterion.md index 6564175354..4b977a1e09 100644 --- a/docs/search/criteria_reference/order_owner_criterion.md +++ b/docs/search/criteria_reference/order_owner_criterion.md @@ -9,26 +9,39 @@ The `OwnerCriterion` Criterion searches for orders based on the user reference. ## Arguments -- `UserReference` object - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(int $userId) +- `UserReference` object - new \Ibexa\Core\Repository\Values\User\UserReference(int $userId) ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +/** @var \Ibexa\Contracts\Core\Repository\UserService $userService */ +$user = $userService->loadUserByLogin('user'); + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\OwnerCriterion( - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(14) + $user ) ); ``` `OwnerCriterion` Criterion accepts also multiple values: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +/** @var \Ibexa\Contracts\Core\Repository\UserService $userService */ +$user1 = $userService->loadUser(12345); +$user2 = $userService->loadUserByLogin('user'); + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\OwnerCriterion( [ - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(14), - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(123), + $user1, + $user2, ] ) ); diff --git a/docs/search/criteria_reference/order_price_criterion.md b/docs/search/criteria_reference/order_price_criterion.md index 04ce900d0f..e72f32c77b 100644 --- a/docs/search/criteria_reference/order_price_criterion.md +++ b/docs/search/criteria_reference/order_price_criterion.md @@ -16,7 +16,10 @@ The `PriceCriterion` searches for orders by their total net value. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $criteria = new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\PriceCriterion( 12900, 'GTE' diff --git a/docs/search/criteria_reference/order_source_criterion.md b/docs/search/criteria_reference/order_source_criterion.md index c89668b86a..956fae1ec3 100644 --- a/docs/search/criteria_reference/order_source_criterion.md +++ b/docs/search/criteria_reference/order_source_criterion.md @@ -15,7 +15,10 @@ The `SourceCriterion` Search Criterion searches for orders based on the source o ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\SourceCriterion('local_shop') ); diff --git a/docs/search/criteria_reference/order_status_criterion.md b/docs/search/criteria_reference/order_status_criterion.md index 599714ea2b..237b202694 100644 --- a/docs/search/criteria_reference/order_status_criterion.md +++ b/docs/search/criteria_reference/order_status_criterion.md @@ -15,7 +15,10 @@ The `StatusCriterion` Search Criterion searches for orders based on order status ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + $query = new OrderQuery( new \Ibexa\Contracts\OrderManagement\Value\Order\Query\Criterion\StatusCriterion('pending') ); diff --git a/docs/search/criteria_reference/parentlocationid_criterion.md b/docs/search/criteria_reference/parentlocationid_criterion.md index ebc087a61f..eb1514964b 100644 --- a/docs/search/criteria_reference/parentlocationid_criterion.md +++ b/docs/search/criteria_reference/parentlocationid_criterion.md @@ -15,7 +15,11 @@ searches for content based on the Location ID of its parent. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\ParentLocationId([54, 58]); ``` @@ -45,14 +49,20 @@ $query->query = new Criterion\ParentLocationId([54, 58]); You can use the `ParentLocationId` Search Criterion to list blog posts contained in a blog: -``` php {skip-validation} hl_lines="4" +``` php hl_lines="9" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$locationId = 12345; + $query = new LocationQuery(); $query->query = new Criterion\LogicalAnd([ new Criterion\Visibility(Criterion\Visibility::VISIBLE), new Criterion\ParentLocationId($locationId), ]); -$results = $this->searchService->findLocations($query); +/** @var \Ibexa\Contracts\Core\Repository\SearchService $searchService */ +$results = $searchService->findLocations($query); $posts = []; foreach ($results->searchHits as $searchHit) { $posts[] = $searchHit; diff --git a/docs/search/criteria_reference/payment_createdat_criterion.md b/docs/search/criteria_reference/payment_createdat_criterion.md index 471fa53f19..66c1130db3 100644 --- a/docs/search/criteria_reference/payment_createdat_criterion.md +++ b/docs/search/criteria_reference/payment_createdat_criterion.md @@ -16,7 +16,10 @@ The `CreatedAt` Search Criterion searches for payments based on the date when th ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $criteria = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\CreatedAt( new DateTime('2023-03-01') ); diff --git a/docs/search/criteria_reference/payment_currency_criterion.md b/docs/search/criteria_reference/payment_currency_criterion.md index 660d75a820..59829269d6 100644 --- a/docs/search/criteria_reference/payment_currency_criterion.md +++ b/docs/search/criteria_reference/payment_currency_criterion.md @@ -15,6 +15,10 @@ The `Currency` Search Criterion searches for payments based on the currency code ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency('EUR'); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency('EUR') +); ``` diff --git a/docs/search/criteria_reference/payment_id_criterion.md b/docs/search/criteria_reference/payment_id_criterion.md index 3a20865a5f..6c1a9bfeb3 100644 --- a/docs/search/criteria_reference/payment_id_criterion.md +++ b/docs/search/criteria_reference/payment_id_criterion.md @@ -15,6 +15,10 @@ The `Id` Search Criterion searches for payments based on the payment ID. ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Id(2); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Id(2) +); ``` diff --git a/docs/search/criteria_reference/payment_identifier_criterion.md b/docs/search/criteria_reference/payment_identifier_criterion.md index c6ab868bbe..7de17744f0 100644 --- a/docs/search/criteria_reference/payment_identifier_criterion.md +++ b/docs/search/criteria_reference/payment_identifier_criterion.md @@ -15,6 +15,10 @@ The `Identifier` Search Criterion searches for payments based on the payment ide ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Identifier('f7578972-e7f4-4cae-85dc-a7c74610204e'); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Identifier('f7578972-e7f4-4cae-85dc-a7c74610204e') +); ``` diff --git a/docs/search/criteria_reference/payment_logicaland_criterion.md b/docs/search/criteria_reference/payment_logicaland_criterion.md index 4837471673..1d947d8c0c 100644 --- a/docs/search/criteria_reference/payment_logicaland_criterion.md +++ b/docs/search/criteria_reference/payment_logicaland_criterion.md @@ -15,11 +15,15 @@ The `LogicalAnd` Search Criterion matches payments if all provided Criteria matc ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\LogicalAnd( - [ - new \Ibexa\Contracts\Payment\Payment\Query\Criterion\CreatedAt(new DateTime('2023-03-01')); - new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency('USD'); - ] -); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\CreatedAt; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\LogicalAnd; + +$query = new PaymentQuery(); +$query->setQuery(new LogicalAnd( + new CreatedAt(new DateTime('2023-03-01')), + new Currency('USD'), +)); ``` diff --git a/docs/search/criteria_reference/payment_logicalor_criterion.md b/docs/search/criteria_reference/payment_logicalor_criterion.md index d6741d59e9..e20bc93559 100644 --- a/docs/search/criteria_reference/payment_logicalor_criterion.md +++ b/docs/search/criteria_reference/payment_logicalor_criterion.md @@ -15,11 +15,15 @@ The `LogicalOr` Search Criterion matches payments if at least one of the provide ### PHP -``` php {skip-validation} -$query->query = new Criterion\LogicalOr( - [ - new \Ibexa\Contracts\Payment\Payment\Query\Criterion\CreatedAt(new DateTime('2023-03-01')); - new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency('USD'); - ] -); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\CreatedAt; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\Currency; +use Ibexa\Contracts\Payment\Payment\Query\Criterion\LogicalOr; + +$query = new PaymentQuery(); +$query->setQuery(new LogicalOr( + new CreatedAt(new DateTime('2023-03-01')), + new Currency('USD'), +)); ``` diff --git a/docs/search/criteria_reference/payment_method_createdat_criterion.md b/docs/search/criteria_reference/payment_method_createdat_criterion.md index 962fd80a69..fd2280a011 100644 --- a/docs/search/criteria_reference/payment_method_createdat_criterion.md +++ b/docs/search/criteria_reference/payment_method_createdat_criterion.md @@ -16,7 +16,10 @@ The `CreatedAt` Search Criterion searches for payment methods based on the date ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $criteria = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt( new DateTime('2023-03-01') ); diff --git a/docs/search/criteria_reference/payment_method_enabled_criterion.md b/docs/search/criteria_reference/payment_method_enabled_criterion.md index 13fd819be0..2447da755f 100644 --- a/docs/search/criteria_reference/payment_method_enabled_criterion.md +++ b/docs/search/criteria_reference/payment_method_enabled_criterion.md @@ -15,6 +15,10 @@ The `Enabled` Search Criterion searches for payment methods based on whether the ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Enabled(true); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$query = new PaymentMethodQuery( + new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Enabled(true) +); ``` diff --git a/docs/search/criteria_reference/payment_method_id_criterion.md b/docs/search/criteria_reference/payment_method_id_criterion.md index 125fff9e84..2a2a7fb661 100644 --- a/docs/search/criteria_reference/payment_method_id_criterion.md +++ b/docs/search/criteria_reference/payment_method_id_criterion.md @@ -15,6 +15,10 @@ The `Id` Search Criterion searches for payment methods based on the payment meth ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Id(2); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$query = new PaymentMethodQuery( + new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Id(2) +); ``` diff --git a/docs/search/criteria_reference/payment_method_identifier_criterion.md b/docs/search/criteria_reference/payment_method_identifier_criterion.md index d7ca430038..809cf68adc 100644 --- a/docs/search/criteria_reference/payment_method_identifier_criterion.md +++ b/docs/search/criteria_reference/payment_method_identifier_criterion.md @@ -15,6 +15,10 @@ The `Identifier` Search Criterion searches for payment methods based on the paym ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Identifier('f7578972-e7f4-4cae-85dc-a7c74610204e'); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$query = new PaymentMethodQuery( + new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Identifier('f7578972-e7f4-4cae-85dc-a7c74610204e') +); ``` diff --git a/docs/search/criteria_reference/payment_method_logicaland_criterion.md b/docs/search/criteria_reference/payment_method_logicaland_criterion.md index 21cefb09c7..2ebc5e2ef5 100644 --- a/docs/search/criteria_reference/payment_method_logicaland_criterion.md +++ b/docs/search/criteria_reference/payment_method_logicaland_criterion.md @@ -15,11 +15,15 @@ The `LogicalAnd` Search Criterion matches payment methods if all provided Criter ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\LogicalAnd( - [ - new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt(new DateTime('2023-03-01')); - new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Enabled(true); - ] -); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; +use Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt; +use Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Enabled; +use Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\LogicalAnd; + +$query = new PaymentMethodQuery(); +$query->setQuery(new LogicalAnd( + new CreatedAt(new DateTime('2023-03-01')), + new Enabled(true), +)); ``` diff --git a/docs/search/criteria_reference/payment_method_logicalor_criterion.md b/docs/search/criteria_reference/payment_method_logicalor_criterion.md index fd0b552617..3798f92745 100644 --- a/docs/search/criteria_reference/payment_method_logicalor_criterion.md +++ b/docs/search/criteria_reference/payment_method_logicalor_criterion.md @@ -15,11 +15,14 @@ The `LogicalOr` Search Criterion matches payment methods if at least one of the ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\LogicalOr( - [ - new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt(new DateTime('2023-03-01')); - new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt(new DateTime('2023-05-01')); - ] -); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; +use Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\CreatedAt; +use Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\LogicalOr; + +$query = new PaymentMethodQuery(); +$query->setQuery(new LogicalOr( + new CreatedAt(new DateTime('2023-03-01')), + new CreatedAt(new DateTime('2023-05-01')), +)); ``` diff --git a/docs/search/criteria_reference/payment_method_name_criterion.md b/docs/search/criteria_reference/payment_method_name_criterion.md index b33841160d..95499b72c6 100644 --- a/docs/search/criteria_reference/payment_method_name_criterion.md +++ b/docs/search/criteria_reference/payment_method_name_criterion.md @@ -15,6 +15,10 @@ The `Name` Search Criterion searches for payment methods based on the existing p ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Name('Credit Card'); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$query = new PaymentMethodQuery( + new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Name('Credit Card') +); ``` diff --git a/docs/search/criteria_reference/payment_method_type_criterion.md b/docs/search/criteria_reference/payment_method_type_criterion.md index 5ee8b3a213..72524ab962 100644 --- a/docs/search/criteria_reference/payment_method_type_criterion.md +++ b/docs/search/criteria_reference/payment_method_type_criterion.md @@ -15,6 +15,13 @@ The `Type` Search Criterion searches for payment methods based on payment method ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Type('offline'); +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +/** @var \Ibexa\Contracts\Payment\PaymentMethod\Type\TypeRegistryInterface $paymentMethodTypeRegistry */ +$paymentMethodType = $paymentMethodTypeRegistry->getPaymentMethodType('offline'); + +$query = new PaymentMethodQuery( + new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\Type($paymentMethodType) +); ``` diff --git a/docs/search/criteria_reference/payment_method_updatedat_criterion.md b/docs/search/criteria_reference/payment_method_updatedat_criterion.md index 81ef435f76..13a04438f6 100644 --- a/docs/search/criteria_reference/payment_method_updatedat_criterion.md +++ b/docs/search/criteria_reference/payment_method_updatedat_criterion.md @@ -16,7 +16,10 @@ The `UpdatedAt` Search Criterion searches for payment methods based on the date ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + $criteria = new \Ibexa\Contracts\Payment\PaymentMethod\Query\Criterion\UpdatedAt( new DateTime('2023-03-01') ); diff --git a/docs/search/criteria_reference/payment_order_criterion.md b/docs/search/criteria_reference/payment_order_criterion.md index aefa9c57d6..3eaf004566 100644 --- a/docs/search/criteria_reference/payment_order_criterion.md +++ b/docs/search/criteria_reference/payment_order_criterion.md @@ -15,6 +15,13 @@ The `Order` Search Criterion searches for payments based on an ID of an associat ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Order(4); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +/** @var \Ibexa\Contracts\OrderManagement\OrderServiceInterface $orderService */ +$order = $orderService->getOrder(4); + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Order($order) +); ``` diff --git a/docs/search/criteria_reference/payment_payment_method_criterion.md b/docs/search/criteria_reference/payment_payment_method_criterion.md index 1fad034912..98d7d033c3 100644 --- a/docs/search/criteria_reference/payment_payment_method_criterion.md +++ b/docs/search/criteria_reference/payment_payment_method_criterion.md @@ -15,6 +15,13 @@ The `PaymentMethod` Search Criterion searches for payments based on a payment me ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\PaymentMethod(2); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +/** @var \Ibexa\Contracts\Payment\PaymentMethodServiceInterface $paymentMethodService */ +$paymentMethod = $paymentMethodService->getPaymentMethod(2); + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\PaymentMethod($paymentMethod) +); ``` diff --git a/docs/search/criteria_reference/payment_status_criterion.md b/docs/search/criteria_reference/payment_status_criterion.md index 0ab64e5ce6..deb1d6d8f2 100644 --- a/docs/search/criteria_reference/payment_status_criterion.md +++ b/docs/search/criteria_reference/payment_status_criterion.md @@ -15,6 +15,10 @@ The `Status` Search Criterion searches for payments based on payment status. ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Status('failed'); +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$query = new PaymentQuery( + new \Ibexa\Contracts\Payment\Payment\Query\Criterion\Status('failed') +); ``` diff --git a/docs/search/criteria_reference/payment_updatedat_criterion.md b/docs/search/criteria_reference/payment_updatedat_criterion.md index d0cd7c3d7f..8257b614ac 100644 --- a/docs/search/criteria_reference/payment_updatedat_criterion.md +++ b/docs/search/criteria_reference/payment_updatedat_criterion.md @@ -16,7 +16,10 @@ The `UpdatedAt` Search Criterion searches for payments based on the date when th ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + $criteria = new \Ibexa\Contracts\Payment\Payment\Query\Criterion\UpdatedAt( new DateTime('2023-03-01') ); diff --git a/docs/search/criteria_reference/price_currency_criterion.md b/docs/search/criteria_reference/price_currency_criterion.md index 2356d305a9..c96105d174 100644 --- a/docs/search/criteria_reference/price_currency_criterion.md +++ b/docs/search/criteria_reference/price_currency_criterion.md @@ -14,8 +14,12 @@ The `Currency` Search Criterion searches for prices based on the given currency. ### PHP -``` php {skip-validation} -$currency = $priceService->getPriceById('EUR'); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + +/** @var \Ibexa\Contracts\ProductCatalog\CurrencyServiceInterface $currencyService */ +$currency = $currencyService->getCurrencyByCode('EUR'); $query = new PriceQuery( new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency($currency) diff --git a/docs/search/criteria_reference/price_customergroup_criterion.md b/docs/search/criteria_reference/price_customergroup_criterion.md index bf8a3c3789..2c33e1bd64 100644 --- a/docs/search/criteria_reference/price_customergroup_criterion.md +++ b/docs/search/criteria_reference/price_customergroup_criterion.md @@ -14,7 +14,11 @@ The `CustomerGroup` Search Criterion searches for prices based on the customer g ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + +/** @var \Ibexa\Contracts\ProductCatalog\CustomerGroupServiceInterface $customerGroupService */ $customerGroup = $customerGroupService->getCustomerGroup(123); $query = new PriceQuery( diff --git a/docs/search/criteria_reference/price_isbaseprice_criterion.md b/docs/search/criteria_reference/price_isbaseprice_criterion.md index 272f60d292..56efe39038 100644 --- a/docs/search/criteria_reference/price_isbaseprice_criterion.md +++ b/docs/search/criteria_reference/price_isbaseprice_criterion.md @@ -18,7 +18,10 @@ The `IsBasePrice` Criterion isn't available in Solr or Elasticsearch engines. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + $query = new PriceQuery( new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\IsBasePrice() ); diff --git a/docs/search/criteria_reference/price_iscustomprice_criterion.md b/docs/search/criteria_reference/price_iscustomprice_criterion.md index dbb94ae171..0aa2ec2afb 100644 --- a/docs/search/criteria_reference/price_iscustomprice_criterion.md +++ b/docs/search/criteria_reference/price_iscustomprice_criterion.md @@ -18,7 +18,10 @@ The `IsCustomPrice` Criterion isn't available in Solr or Elasticsearch engines. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + $query = new PriceQuery( new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\IsCustomPrice() ); diff --git a/docs/search/criteria_reference/price_logicaland_criterion.md b/docs/search/criteria_reference/price_logicaland_criterion.md index 82e50969d6..7693f7a8e5 100644 --- a/docs/search/criteria_reference/price_logicaland_criterion.md +++ b/docs/search/criteria_reference/price_logicaland_criterion.md @@ -15,11 +15,14 @@ The `LogicalAnd` Search Criterion matches prices if all provided Criteria match. ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\LogicalAnd( - [ - new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency('USD'), +``` php +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + +/** @var \Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface $currencyUSD */ +$query = new PriceQuery( + new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\LogicalAnd( + new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency($currencyUSD), new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\IsCustomPrice() - ] + ) ); ``` diff --git a/docs/search/criteria_reference/price_logicalor_criterion.md b/docs/search/criteria_reference/price_logicalor_criterion.md index b6d2fbe681..5151e271d4 100644 --- a/docs/search/criteria_reference/price_logicalor_criterion.md +++ b/docs/search/criteria_reference/price_logicalor_criterion.md @@ -15,11 +15,15 @@ The `LogicalOr` Search Criterion matches prices if at least one of the provided ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\LogicalOr( - [ - new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency('USD'), - new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency('EUR') - ] +``` php +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + +/** @var \Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface $currencyUSD */ +/** @var \Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface $currencyEUR */ +$query = new PriceQuery( + new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\LogicalOr( + new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency($currencyUSD), + new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Currency($currencyEUR) + ) ); ``` diff --git a/docs/search/criteria_reference/price_product_criterion.md b/docs/search/criteria_reference/price_product_criterion.md index 3de359c872..ff213b6a05 100644 --- a/docs/search/criteria_reference/price_product_criterion.md +++ b/docs/search/criteria_reference/price_product_criterion.md @@ -14,7 +14,10 @@ The `Product` Search Criterion searches for prices based on product codes. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\ProductCatalog\Values\Price\PriceQuery; + $query = new PriceQuery( new \Ibexa\Contracts\ProductCatalog\Values\Price\Query\Criterion\Product('ergo_desk') ); diff --git a/docs/search/criteria_reference/priority_criterion.md b/docs/search/criteria_reference/priority_criterion.md index 96cfc6470f..feffcf99ac 100644 --- a/docs/search/criteria_reference/priority_criterion.md +++ b/docs/search/criteria_reference/priority_criterion.md @@ -22,6 +22,10 @@ The `value` argument requires: ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Location\Priority(Criterion\Operator::GTE, 50); ``` diff --git a/docs/search/criteria_reference/productavailability_criterion.md b/docs/search/criteria_reference/productavailability_criterion.md index 0e83221b7e..764f9b9a67 100644 --- a/docs/search/criteria_reference/productavailability_criterion.md +++ b/docs/search/criteria_reference/productavailability_criterion.md @@ -20,7 +20,10 @@ For more information, see [Availability and computed availability](products.md#a ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ProductAvailability(true) diff --git a/docs/search/criteria_reference/productcategory_criterion.md b/docs/search/criteria_reference/productcategory_criterion.md index cd9aa3ed45..8ca37ebc9c 100644 --- a/docs/search/criteria_reference/productcategory_criterion.md +++ b/docs/search/criteria_reference/productcategory_criterion.md @@ -14,7 +14,10 @@ The `ProductCategory` Search Criterion searches for products by the category the ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ProductCategory([2, 3]) diff --git a/docs/search/criteria_reference/productcode_criterion.md b/docs/search/criteria_reference/productcode_criterion.md index ae1cc9f203..39d7e1b1af 100644 --- a/docs/search/criteria_reference/productcode_criterion.md +++ b/docs/search/criteria_reference/productcode_criterion.md @@ -14,7 +14,10 @@ The `ProductCode` Search Criterion searches for products by their codes. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ProductCode(['ergo_desk', 'alter_desk']) diff --git a/docs/search/criteria_reference/productname_criterion.md b/docs/search/criteria_reference/productname_criterion.md index 602066db8d..5a3d9a18cf 100644 --- a/docs/search/criteria_reference/productname_criterion.md +++ b/docs/search/criteria_reference/productname_criterion.md @@ -14,7 +14,10 @@ The `ProductName` Search Criterion searches for products by their names. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ProductName('sofa*') diff --git a/docs/search/criteria_reference/productstock_criterion.md b/docs/search/criteria_reference/productstock_criterion.md index 347cbfe99c..710041b361 100644 --- a/docs/search/criteria_reference/productstock_criterion.md +++ b/docs/search/criteria_reference/productstock_criterion.md @@ -15,14 +15,20 @@ The `ProductStock` Search Criterion searches for products by their numerical sto ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $productQuery = new ProductQuery( null, new Criterion\ProductStock(10) ); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $productQuery = new ProductQuery( null, new Criterion\ProductStock(50, '>=') diff --git a/docs/search/criteria_reference/productstockrange_criterion.md b/docs/search/criteria_reference/productstockrange_criterion.md index 284cc9a876..b185a705c8 100644 --- a/docs/search/criteria_reference/productstockrange_criterion.md +++ b/docs/search/criteria_reference/productstockrange_criterion.md @@ -15,7 +15,10 @@ The `ProductStockRange` Search Criterion searches for products by their numerica ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $productQuery = new ProductQuery( null, new Criterion\ProductStockRange(10, 120) diff --git a/docs/search/criteria_reference/producttype_criterion.md b/docs/search/criteria_reference/producttype_criterion.md index f95a1f141c..c98fbcdc09 100644 --- a/docs/search/criteria_reference/producttype_criterion.md +++ b/docs/search/criteria_reference/producttype_criterion.md @@ -14,7 +14,10 @@ The `ProductType` Search Criterion searches for products by their codes. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\ProductType(['dress']) diff --git a/docs/search/criteria_reference/rangemeasurementattributemaximum_criterion.md b/docs/search/criteria_reference/rangemeasurementattributemaximum_criterion.md index 450f4b2824..7a5a71edae 100644 --- a/docs/search/criteria_reference/rangemeasurementattributemaximum_criterion.md +++ b/docs/search/criteria_reference/rangemeasurementattributemaximum_criterion.md @@ -15,12 +15,16 @@ The `RangeMeasurementAttributeMaximum` Search Criterion searches for products by ### PHP -``` php {skip-validation} -$value = $this->measurementService->buildSimpleValue('length', 150, 'centimeter'); +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + +/** @var \Ibexa\Contracts\Measurement\MeasurementServiceInterface $measurementService */ +$value = $measurementService->buildSimpleValue('length', 150, 'centimeter'); $query = new ProductQuery( null, - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\RangeMeasurementAttributeMaximum( + new \Ibexa\Contracts\Measurement\Product\Query\Criterion\RangeMeasurementAttributeMaximum( 'length', $value ) diff --git a/docs/search/criteria_reference/rangemeasurementattributeminimum_criterion.md b/docs/search/criteria_reference/rangemeasurementattributeminimum_criterion.md index ee599d3c8c..7f103eee09 100644 --- a/docs/search/criteria_reference/rangemeasurementattributeminimum_criterion.md +++ b/docs/search/criteria_reference/rangemeasurementattributeminimum_criterion.md @@ -15,12 +15,16 @@ The `RangeMeasurementAttributeMinimum` Search Criterion searches for products by ### PHP -``` php {skip-validation} -$value = $this->measurementService->buildSimpleValue('length', 100, 'centimeter'); +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + +/** @var \Ibexa\Contracts\Measurement\MeasurementServiceInterface $measurementService */ +$value = $measurementService->buildSimpleValue('length', 100, 'centimeter'); $query = new ProductQuery( null, - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\RangeMeasurementAttributeMinimum( + new \Ibexa\Contracts\Measurement\Product\Query\Criterion\RangeMeasurementAttributeMinimum( 'length', $value ) diff --git a/docs/search/criteria_reference/remoteid_criterion.md b/docs/search/criteria_reference/remoteid_criterion.md index 5aa4b17d79..948ec2c7e8 100644 --- a/docs/search/criteria_reference/remoteid_criterion.md +++ b/docs/search/criteria_reference/remoteid_criterion.md @@ -15,7 +15,11 @@ searches for content based on its remote content ID. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\RemoteId('abab615dcf26699a4291657152da4337'); ``` diff --git a/docs/search/criteria_reference/sectionid_criterion.md b/docs/search/criteria_reference/sectionid_criterion.md index 95821a03d0..b7879fed3b 100644 --- a/docs/search/criteria_reference/sectionid_criterion.md +++ b/docs/search/criteria_reference/sectionid_criterion.md @@ -14,7 +14,11 @@ The [`SectionId` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa- ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\SectionId(3); ``` diff --git a/docs/search/criteria_reference/sectionidentifier_criterion.md b/docs/search/criteria_reference/sectionidentifier_criterion.md index 8e96f04718..e043a3ac82 100644 --- a/docs/search/criteria_reference/sectionidentifier_criterion.md +++ b/docs/search/criteria_reference/sectionidentifier_criterion.md @@ -14,7 +14,11 @@ The [`SectionIdentifier` Search Criterion](/api/php_api/php_api_reference/classe ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\SectionIdentifier(['sports', 'news']); ``` diff --git a/docs/search/criteria_reference/selectionattribute_criterion.md b/docs/search/criteria_reference/selectionattribute_criterion.md index b003d16c89..cbaf0be364 100644 --- a/docs/search/criteria_reference/selectionattribute_criterion.md +++ b/docs/search/criteria_reference/selectionattribute_criterion.md @@ -15,7 +15,10 @@ The `SelectionAttribute` Search Criterion searches for products by the value of ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + $query = new ProductQuery( null, new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\SelectionAttribute( diff --git a/docs/search/criteria_reference/shipment_createdat_criterion.md b/docs/search/criteria_reference/shipment_createdat_criterion.md index 3ef020f7f6..e0574ebb9a 100644 --- a/docs/search/criteria_reference/shipment_createdat_criterion.md +++ b/docs/search/criteria_reference/shipment_createdat_criterion.md @@ -16,7 +16,10 @@ The `CreatedAt` Search Criterion searches for shipments based on the date when t ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $criteria = new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\CreatedAt( new DateTime('2023-03-01 14:07:02'), 'GTE' diff --git a/docs/search/criteria_reference/shipment_currency_criterion.md b/docs/search/criteria_reference/shipment_currency_criterion.md index f803d22eeb..3081565e85 100644 --- a/docs/search/criteria_reference/shipment_currency_criterion.md +++ b/docs/search/criteria_reference/shipment_currency_criterion.md @@ -15,8 +15,11 @@ The `Currency` Search Criterion searches for shipments based on the currency cod ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $query = new ShipmentQuery( - new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Currency('USD', 'CZK') + new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Currency(['USD', 'CZK']) ); ``` diff --git a/docs/search/criteria_reference/shipment_id_criterion.md b/docs/search/criteria_reference/shipment_id_criterion.md index 55d1bbc5fc..36a7fb0479 100644 --- a/docs/search/criteria_reference/shipment_id_criterion.md +++ b/docs/search/criteria_reference/shipment_id_criterion.md @@ -15,7 +15,10 @@ The `Id` Search Criterion searches for shipments based on the shipment ID. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Id(2) ); diff --git a/docs/search/criteria_reference/shipment_identifier_criterion.md b/docs/search/criteria_reference/shipment_identifier_criterion.md index a759e1f82f..db55e3c658 100644 --- a/docs/search/criteria_reference/shipment_identifier_criterion.md +++ b/docs/search/criteria_reference/shipment_identifier_criterion.md @@ -15,7 +15,10 @@ The `Identifier` Search Criterion searches for shipments based on the shipment i ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Identifier('f1t7z-3rb3rt') ); diff --git a/docs/search/criteria_reference/shipment_logicaland_criterion.md b/docs/search/criteria_reference/shipment_logicaland_criterion.md index 6de9df2484..387e4c3bcf 100644 --- a/docs/search/criteria_reference/shipment_logicaland_criterion.md +++ b/docs/search/criteria_reference/shipment_logicaland_criterion.md @@ -15,11 +15,14 @@ The `LogicalAnd` Search Criterion matches shipments if all provided Criteria mat ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\LogicalAnd( - [ +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Value\ShippingMethod\ShippingMethodInterface $shippingMethod */ +$query = new ShipmentQuery( + new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\LogicalAnd( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\CreatedAt(new DateTime('2023-03-01')), new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\ShippingMethod($shippingMethod) - ] + ) ); ``` diff --git a/docs/search/criteria_reference/shipment_logicalor_criterion.md b/docs/search/criteria_reference/shipment_logicalor_criterion.md index 5603b442f0..16a07037ff 100644 --- a/docs/search/criteria_reference/shipment_logicalor_criterion.md +++ b/docs/search/criteria_reference/shipment_logicalor_criterion.md @@ -15,11 +15,14 @@ The `LogicalOr` Search Criterion matches shipments if at least one of the provid ### PHP -``` php {skip-validation} -$query->query = new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\LogicalOr( - [ +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Value\ShippingMethod\ShippingMethodInterface $shippingMethod */ +$query = new ShipmentQuery( + new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\LogicalOr( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\CreatedAt(new DateTime('2023-03-01')), new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\ShippingMethod($shippingMethod) - ] + ) ); ``` diff --git a/docs/search/criteria_reference/shipment_owner_criterion.md b/docs/search/criteria_reference/shipment_owner_criterion.md index e74a013613..d836ff406d 100644 --- a/docs/search/criteria_reference/shipment_owner_criterion.md +++ b/docs/search/criteria_reference/shipment_owner_criterion.md @@ -9,26 +9,36 @@ The `Owner` Criterion searches for shipments based on the user reference. ## Arguments -- `UserReference` object - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(int $userId) +- `UserReference` object - new \Ibexa\Core\Repository\Values\User\UserReference(int $userId) ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Owner( - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(14) + new \Ibexa\Core\Repository\Values\User\UserReference(14) ) ); ``` `Owner` Criterion accepts also multiple values: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Core\Repository\UserService $userService */ +$user1 = $userService->loadUser(12345); +$user2 = $userService->loadUserByLogin('user'); + $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Owner( [ - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(14), - \Ibexa\Contracts\Core\Repository\Values\User\UserReference(123), + $user1, + $user2, ] ) ); diff --git a/docs/search/criteria_reference/shipment_shipping_method_criterion.md b/docs/search/criteria_reference/shipment_shipping_method_criterion.md index 26a92a9956..447b71602b 100644 --- a/docs/search/criteria_reference/shipment_shipping_method_criterion.md +++ b/docs/search/criteria_reference/shipment_shipping_method_criterion.md @@ -15,7 +15,11 @@ The `ShippingMethod` Search Criterion searches for shipments based on a shipping ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Value\ShippingMethod\ShippingMethodInterface $shippingMethod */ $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\ShippingMethod($shippingMethod) ); diff --git a/docs/search/criteria_reference/shipment_status_criterion.md b/docs/search/criteria_reference/shipment_status_criterion.md index 29148f1da4..05b0ec1a51 100644 --- a/docs/search/criteria_reference/shipment_status_criterion.md +++ b/docs/search/criteria_reference/shipment_status_criterion.md @@ -15,7 +15,10 @@ The `Status` Search Criterion searches for shipments based on shipment status. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $query = new ShipmentQuery( new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\Status('pending') ); diff --git a/docs/search/criteria_reference/shipment_updatedat_criterion.md b/docs/search/criteria_reference/shipment_updatedat_criterion.md index 6c0f0f185a..72763c3c48 100644 --- a/docs/search/criteria_reference/shipment_updatedat_criterion.md +++ b/docs/search/criteria_reference/shipment_updatedat_criterion.md @@ -16,7 +16,10 @@ The `UpdatedAt` Search Criterion searches for shipments based on the date when t ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + $criteria = new \Ibexa\Contracts\Shipping\Shipment\Query\Criterion\UpdatedAt( new DateTime('2023-03-01'), 'GTE' diff --git a/docs/search/criteria_reference/sibling_criterion.md b/docs/search/criteria_reference/sibling_criterion.md index 24873738a1..e1504c979c 100644 --- a/docs/search/criteria_reference/sibling_criterion.md +++ b/docs/search/criteria_reference/sibling_criterion.md @@ -15,13 +15,22 @@ The [`Sibling` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa-Co ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Sibling(59, 2); ``` You can also use the named constructor `Criterion\Sibling::fromLocation` and provide it with the location object: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); +/** @var \Ibexa\Contracts\Core\Repository\LocationService $locationService */ $location = $locationService->loadLocation(59); $query->query = Criterion\Sibling::fromLocation($location); ``` diff --git a/docs/search/criteria_reference/simplemeasurementattribute_criterion.md b/docs/search/criteria_reference/simplemeasurementattribute_criterion.md index d2dec47836..7cd56eb2c3 100644 --- a/docs/search/criteria_reference/simplemeasurementattribute_criterion.md +++ b/docs/search/criteria_reference/simplemeasurementattribute_criterion.md @@ -15,12 +15,16 @@ The `SimpleMeasurementAttribute` Search Criterion searches for products by the v ### PHP -``` php {skip-validation} -$value = $this->measurementService->buildSimpleValue('length', 120, 'centimeter'); +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; +use Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion; + +/** @var \Ibexa\Contracts\Measurement\MeasurementServiceInterface $measurementService */ +$value = $measurementService->buildSimpleValue('length', 120, 'centimeter'); $query = new ProductQuery( null, - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\SimpleMeasurementAttribute( + new \Ibexa\Contracts\Measurement\Product\Query\Criterion\SimpleMeasurementAttribute( 'width', $value ) diff --git a/docs/search/criteria_reference/subtree_criterion.md b/docs/search/criteria_reference/subtree_criterion.md index 118f1e2cf8..53d5fa7bb2 100644 --- a/docs/search/criteria_reference/subtree_criterion.md +++ b/docs/search/criteria_reference/subtree_criterion.md @@ -15,7 +15,11 @@ It returns the content item and all the content items below it in the subtree. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Subtree('/1/2/71/72/'); ``` diff --git a/docs/search/criteria_reference/taxonomy_entry_id.md b/docs/search/criteria_reference/taxonomy_entry_id.md index b17eaf2496..968931e2a6 100644 --- a/docs/search/criteria_reference/taxonomy_entry_id.md +++ b/docs/search/criteria_reference/taxonomy_entry_id.md @@ -14,12 +14,20 @@ The [`TaxonomyEntryId` Search Criterion](/api/php_api/php_api_reference/classes/ ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Taxonomy\Search\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\TaxonomyEntryId(1); ``` Add an array of ID's to find Content tagged with at least one of the tags (OR). -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Taxonomy\Search\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\TaxonomyEntryId([1, 2, 3]); ``` diff --git a/docs/search/criteria_reference/useremail_criterion.md b/docs/search/criteria_reference/useremail_criterion.md index 348ffe7b28..9402e1c999 100644 --- a/docs/search/criteria_reference/useremail_criterion.md +++ b/docs/search/criteria_reference/useremail_criterion.md @@ -19,11 +19,19 @@ Solr search engine and Elasticsearch support IN and EQ operators only. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserEmail(['johndoe']); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserEmail('nospam*', Criterion\Operator::LIKE); ``` diff --git a/docs/search/criteria_reference/userid_criterion.md b/docs/search/criteria_reference/userid_criterion.md index d7c213a28a..cfdf847d0f 100644 --- a/docs/search/criteria_reference/userid_criterion.md +++ b/docs/search/criteria_reference/userid_criterion.md @@ -14,7 +14,11 @@ The [`UserId` Search Criterion](/api/php_api/php_api_reference/classes/Ibexa-Con ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserId([14]); ``` diff --git a/docs/search/criteria_reference/userlogin_criterion.md b/docs/search/criteria_reference/userlogin_criterion.md index 42739e1d40..74647dfbf1 100644 --- a/docs/search/criteria_reference/userlogin_criterion.md +++ b/docs/search/criteria_reference/userlogin_criterion.md @@ -19,11 +19,19 @@ Solr search engine and Elasticsearch support IN and EQ operators only. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserLogin(['johndoe']); ``` -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserLogin('adm*', Criterion\Operator::LIKE); ``` diff --git a/docs/search/criteria_reference/usermetadata_criterion.md b/docs/search/criteria_reference/usermetadata_criterion.md index 61c8fdd236..ef6939f9b8 100644 --- a/docs/search/criteria_reference/usermetadata_criterion.md +++ b/docs/search/criteria_reference/usermetadata_criterion.md @@ -16,7 +16,11 @@ The [`UserMetadata` Search Criterion](/api/php_api/php_api_reference/classes/Ibe ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\UserMetadata(Criterion\UserMetadata::GROUP, Criterion\Operator::EQ, 12); ``` @@ -56,14 +60,18 @@ $query->query = new Criterion\UserMetadata(Criterion\UserMetadata::GROUP, Criter You can use the `UserMetadata` Criterion to search for blog posts created by the Contributor user group: -``` php {skip-validation} hl_lines="7" +``` php hl_lines="11" +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + // ID of your custom Contributor User Group $contributorGroupId = 32; -$query = new LocationQuery; -$query->query = new Criterion\LogicalAnd([ +$query = new LocationQuery(); +$query->query = new Criterion\LogicalAnd( + [ new Criterion\ContentTypeIdentifier('blog_post'), - new Criterion\UserMetadata(Criterion\UserMetadata::GROUP, Criterion\Operator::EQ, $contributorGroupId) + new Criterion\UserMetadata(Criterion\UserMetadata::GROUP, Criterion\Operator::EQ, $contributorGroupId), ] ); ``` diff --git a/docs/search/criteria_reference/visibility_criterion.md b/docs/search/criteria_reference/visibility_criterion.md index 7f75bc0219..86a4829471 100644 --- a/docs/search/criteria_reference/visibility_criterion.md +++ b/docs/search/criteria_reference/visibility_criterion.md @@ -20,7 +20,11 @@ Use Location Search to avoid this. ### PHP -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; + +$query = new Query(); $query->query = new Criterion\Visibility(Criterion\Visibility::HIDDEN); ``` diff --git a/docs/search/extensibility/create_custom_aggregation.md b/docs/search/extensibility/create_custom_aggregation.md index df125aeeef..b9c0963cda 100644 --- a/docs/search/extensibility/create_custom_aggregation.md +++ b/docs/search/extensibility/create_custom_aggregation.md @@ -9,7 +9,7 @@ description: Create custom Aggregation to use with Solr and Elasticsearch search To create a custom Aggregation, create an aggregation class. In the following example, an aggregation groups the location query results by the location priority: -``` php {skip-validation} +``` php --8<-- code_samples/search/custom/src/Query/Aggregation/PriorityRangeAggregation.php --8<-- @@ -137,7 +137,7 @@ In a more complex use case, you must create your own visitor and extractor. The aggregation visitor must implement [`Ibexa\Contracts\Solr\Query\AggregationVisitor`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Solr-Query-AggregationVisitor.html): - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Aggregation/Solr/PriorityRangeAggregationVisitor.php --8<-- @@ -147,7 +147,7 @@ In a more complex use case, you must create your own visitor and extractor. The aggregation visitor must implement [`Ibexa\Contracts\ElasticSearchEngine\Query\AggregationVisitor`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Elasticsearch-Query-AggregationVisitor.html): - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Aggregation/Elasticsearch/PriorityRangeAggregationVisitor.php --8<-- @@ -187,7 +187,7 @@ Finally, register the aggregation visitor as a service. You must also create a result extractor, which implements [`Ibexa\Contracts\Solr\ResultExtractor\AggregationResultExtractor`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Solr-ResultExtractor-AggregationResultExtractor.html) that transforms raw aggregation results from Solr into `AggregationResult` objects: - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Aggregation/Solr/PriorityRangeAggregationResultExtractor.php --8<-- @@ -201,7 +201,7 @@ Finally, register the aggregation visitor as a service. You must also create a result extractor, which implements [`Ibexa\Contracts\ElasticSearchEngine\Query\AggregationResultExtractor`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Elasticsearch-Query-AggregationResultExtractor.html) that transforms raw aggregation results from Elasticsearch into `AggregationResult` objects: - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Aggregation/Elasticsearch/PriorityRangeAggregationResultExtractor.php --8<-- diff --git a/docs/search/extensibility/create_custom_search_criterion.md b/docs/search/extensibility/create_custom_search_criterion.md index 237c400a16..eea7f735e8 100644 --- a/docs/search/extensibility/create_custom_search_criterion.md +++ b/docs/search/extensibility/create_custom_search_criterion.md @@ -10,7 +10,7 @@ To provide support for a custom Search Criterion, do the following. First, create a `CameraManufacturerCriterion.php` file that contains the Criterion class: -``` php {skip-validation} +``` php --8<-- code_samples/search/custom/src/Query/Criterion/CameraManufacturerCriterion.php --8<-- @@ -22,7 +22,7 @@ Then, add a `CameraManufacturerVisitor` class, implementing `CriterionVisitor`: === "Solr" - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Criterion/Solr/CameraManufacturerVisitor.php --8<-- @@ -30,7 +30,7 @@ Then, add a `CameraManufacturerVisitor` class, implementing `CriterionVisitor`: === "Elasticsearch" - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/Criterion/Elasticsearch/CameraManufacturerVisitor.php --8<-- diff --git a/docs/search/extensibility/create_custom_sort_clause.md b/docs/search/extensibility/create_custom_sort_clause.md index 85970e78cd..259f421d39 100644 --- a/docs/search/extensibility/create_custom_sort_clause.md +++ b/docs/search/extensibility/create_custom_sort_clause.md @@ -10,7 +10,7 @@ To create a custom Sort Clause, do the following. First, add a `ScoreSortClause.php` file with the Sort Clause class: -``` php {skip-validation} +``` php --8<-- code_samples/search/custom/src/Query/SortClause/ScoreSortClause.php --8<-- @@ -22,7 +22,7 @@ Then, add a `ScoreVisitor` class that implements `SortClauseVisitor`: === "Solr" - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/SortClause/Solr/ScoreVisitor.php --8<-- @@ -30,7 +30,7 @@ Then, add a `ScoreVisitor` class that implements `SortClauseVisitor`: === "Elasticsearch" - ``` php {skip-validation} + ``` php --8<-- code_samples/search/custom/src/Query/SortClause/Elasticsearch/ScoreVisitor.php --8<-- diff --git a/docs/search/extensibility/index_custom_elasticsearch_data.md b/docs/search/extensibility/index_custom_elasticsearch_data.md index fae2c8442f..b9c9c215a3 100644 --- a/docs/search/extensibility/index_custom_elasticsearch_data.md +++ b/docs/search/extensibility/index_custom_elasticsearch_data.md @@ -18,7 +18,7 @@ You can pass the event to a subscriber which gives you access to the document th In the following example, when an index in created for a content or a location document, the event subscriber adds a `custom_field` of the type [`StringField`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Search-FieldType-StringField.html) to the index: -``` php {skip-validation} hl_lines="19 20 21" +``` php hl_lines="19 20 21" --8<-- code_samples/search/custom/src/EventSubscriber/CustomIndexDataSubscriber.php --8<-- diff --git a/docs/search/extensibility/manipulate_elasticsearch_query.md b/docs/search/extensibility/manipulate_elasticsearch_query.md index 06df646272..d0f41327ba 100644 --- a/docs/search/extensibility/manipulate_elasticsearch_query.md +++ b/docs/search/extensibility/manipulate_elasticsearch_query.md @@ -11,7 +11,7 @@ The following example shows how to add a Search Criterion to all queries. Depending on your configuration, this might impact all search queries, including those used for search and content tree in the back office. -``` php {skip-validation} hl_lines="34" +``` php hl_lines="34" --8<-- code_samples/search/custom/src/EventSubscriber/CustomQueryFilterSubscriber.php --8<-- diff --git a/docs/search/search_api.md b/docs/search/search_api.md index eea6755116..a7c416d7f5 100644 --- a/docs/search/search_api.md +++ b/docs/search/search_api.md @@ -42,10 +42,19 @@ You can also use [`SearchService::findContent`](/api/php_api/php_api_reference/c To query for a single result, for example by providing a Content ID, use the [`SearchService::findSingle`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-SearchService.html#method_findSingle) method: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\SearchService; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Symfony\Component\Console\Output\OutputInterface; + +$contentId = 12345; $criterion = new Criterion\ContentId($contentId); -$result = $this->searchService->findSingle($criterion); -$output->writeln($result->getName()); + +/** @var SearchService $searchService */ +$result = $searchService->findSingle($criterion); + +/** @var OutputInterface $output */ +$output->writeln($result->getName() ?? ''); ``` !!! tip @@ -57,7 +66,10 @@ $output->writeln($result->getName()); By default search returns up to 25 results. You can change it by setting a different limit to the query: - ``` php {skip-validation} + ``` php + use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; + + $query = new LocationQuery(); $query->limit = 100; ``` @@ -93,12 +105,20 @@ This enables iterating over results that are too large to handle due to memory c `BatchIterator` takes one of the available adapters ([`\Ibexa\Contracts\Core\Repository\Iterator\BatchIteratorAdapter`](/api/php_api/php_api_reference/namespaces/ibexa-contracts-core-repository-iterator-batchiteratoradapter.html)) and optional batch size. For example: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Iterator\BatchIterator; +use Ibexa\Contracts\Core\Repository\Iterator\BatchIteratorAdapter; +use Ibexa\Contracts\Core\Repository\SearchService; +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Symfony\Component\Console\Output\OutputInterface; + $query = new LocationQuery(); -$iterator = new BatchIterator(new BatchIteratorAdapter\LocationSearchAdapter($this->searchService, $query)); +/** @var SearchService $searchService */ +$iterator = new BatchIterator(new BatchIteratorAdapter\LocationSearchAdapter($searchService, $query)); foreach ($iterator as $result) { + /** @var OutputInterface $output */ $output->writeln($result->valueObject->getContentInfo()->name); } ``` @@ -172,7 +192,12 @@ You can use the following methods of the Filter: The following example filters for Folder content items under the parent location 2, sorts them by publication date and returns 10 results, starting from the third one: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; +use Ibexa\Contracts\Core\Repository\Values\Filter\Filter; + $filter = new Filter(); $filter ->withCriterion(new Criterion\ContentTypeIdentifier('folder')) @@ -290,7 +315,14 @@ This can lead to unexpected behavior, for instance because content can have mult For example, a content item has two locations: visible location A and hidden location B. You perform the following query: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LocationId; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Visibility; + +$query = new LocationQuery(); +$bLocationId = 12345; $query->filter = new Criterion\LogicalAnd([ new LocationId($bLocationId), new Visibility(Visibility::VISIBLE), @@ -364,13 +396,19 @@ The following example limits the number of terms returned to 5 and only consider To use a range aggregation, you must provide a `ranges` array containing a set of `Range` objects that define the borders of the specific range sets. -``` php {skip-validation} -$query->aggregations[] = new IntegerRangeAggregation('range', 'person', 'age', -[ - new Query\Aggregation\Range(1,30), - new Query\Aggregation\Range(30,60), - new Query\Aggregation\Range(60,null), -]); +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Field\IntegerRangeAggregation; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; + +$ranges = [ + Range::ofInt(1, 30), + Range::ofInt(30, 60), + Range::ofInt(60, null), +]; + +$query = new LocationQuery(); +$query->aggregations[] = new IntegerRangeAggregation('range', 'person', 'age', $ranges); ``` !!! note diff --git a/docs/search/shopping_list_search_reference/shopping_list_criteria.md b/docs/search/shopping_list_search_reference/shopping_list_criteria.md index d4f9e9cf5c..da4130e18d 100644 --- a/docs/search/shopping_list_search_reference/shopping_list_criteria.md +++ b/docs/search/shopping_list_search_reference/shopping_list_criteria.md @@ -23,7 +23,9 @@ The following example query returns all shopping lists available to the current If the user’s permissions include the [`ShoppingListOwner` `self` limitation](limitation_reference.md#shopping-list-limitation), the query returns only lists created by that user. Otherwise, it returns all shopping lists in the system. -``` php {skip-validation} +``` php +use Ibexa\Contracts\ShoppingList\Value\ShoppingListQuery; + $query = new ShoppingListQuery(); ``` diff --git a/docs/search/sort_clause_reference/baseprice_sort_clause.md b/docs/search/sort_clause_reference/baseprice_sort_clause.md index 35b49cba0c..b19edc4e07 100644 --- a/docs/search/sort_clause_reference/baseprice_sort_clause.md +++ b/docs/search/sort_clause_reference/baseprice_sort_clause.md @@ -17,12 +17,16 @@ The `BasePrice` Sort Clause isn't available in the Legacy Search engine. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + +/** @var CurrencyInterface $currency */ $sortClauses = [ new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\BasePrice( $currency, ProductQuery::SORT_ASC - ) + ), ]; $productQuery = new ProductQuery(null, null, $sortClauses); ``` diff --git a/docs/search/sort_clause_reference/contentid_sort_clause.md b/docs/search/sort_clause_reference/contentid_sort_clause.md index c46ade2f13..e41e3f3bfd 100644 --- a/docs/search/sort_clause_reference/contentid_sort_clause.md +++ b/docs/search/sort_clause_reference/contentid_sort_clause.md @@ -12,7 +12,10 @@ The [`ContentId` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Contr ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\ContentId()]; ``` diff --git a/docs/search/sort_clause_reference/contentname_sort_clause.md b/docs/search/sort_clause_reference/contentname_sort_clause.md index 8704640421..51fd8ceee3 100644 --- a/docs/search/sort_clause_reference/contentname_sort_clause.md +++ b/docs/search/sort_clause_reference/contentname_sort_clause.md @@ -12,7 +12,10 @@ The [`ContentName` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\ContentName()]; ``` diff --git a/docs/search/sort_clause_reference/contenttranslatedname_sort_clause.md b/docs/search/sort_clause_reference/contenttranslatedname_sort_clause.md index 6b9c96aee8..317de17705 100644 --- a/docs/search/sort_clause_reference/contenttranslatedname_sort_clause.md +++ b/docs/search/sort_clause_reference/contenttranslatedname_sort_clause.md @@ -16,7 +16,10 @@ The `ContentTranslatedName` Sort Clause isn't available in [Repository filtering ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\ContentTranslatedName()]; ``` diff --git a/docs/search/sort_clause_reference/contenttypename_sort_clause.md b/docs/search/sort_clause_reference/contenttypename_sort_clause.md index 13af659e9a..80d031a018 100644 --- a/docs/search/sort_clause_reference/contenttypename_sort_clause.md +++ b/docs/search/sort_clause_reference/contenttypename_sort_clause.md @@ -12,7 +12,10 @@ The [`ContentTypeName` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new Query(); $query->sortClauses = [new SortClause\Trash\ContentTypeName()]; ``` diff --git a/docs/search/sort_clause_reference/createdat_sort_clause.md b/docs/search/sort_clause_reference/createdat_sort_clause.md index 930983895a..f68a4944fa 100644 --- a/docs/search/sort_clause_reference/createdat_sort_clause.md +++ b/docs/search/sort_clause_reference/createdat_sort_clause.md @@ -12,13 +12,16 @@ The `CreatedAt` Sort Clause sorts search results by the date and time of the cre ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + $productQuery = new ProductQuery( null, null, [ new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\CreatedAt( - \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\CreatedAt::SORT_ASC) + \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\CreatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/customfield_sort_clause.md b/docs/search/sort_clause_reference/customfield_sort_clause.md index 551471db48..64e8602e17 100644 --- a/docs/search/sort_clause_reference/customfield_sort_clause.md +++ b/docs/search/sort_clause_reference/customfield_sort_clause.md @@ -22,7 +22,10 @@ The `CustomField` Sort Clause isn't available in [Repository filtering](search_a ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\CustomField('my_custom_field_s')]; ``` diff --git a/docs/search/sort_clause_reference/customprice_sort_clause.md b/docs/search/sort_clause_reference/customprice_sort_clause.md index a726d906f5..1e03c725f9 100644 --- a/docs/search/sort_clause_reference/customprice_sort_clause.md +++ b/docs/search/sort_clause_reference/customprice_sort_clause.md @@ -19,12 +19,19 @@ The `CustomPrice` Sort Clause isn't available in the Legacy Search engine. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\CurrencyInterface; +use Ibexa\Contracts\ProductCatalog\Values\CustomerGroupInterface; +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + +/** @var CurrencyInterface $currency */ +/** @var CustomerGroupInterface $customerGroup */ $sortClauses = [ new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\CustomPrice( $currency, - ProductQuery::SORT_ASC, $customerGroup - ) + ProductQuery::SORT_ASC, + $customerGroup + ), ]; $productQuery = new ProductQuery(null, null, $sortClauses); ``` diff --git a/docs/search/sort_clause_reference/datemodified_sort_clause.md b/docs/search/sort_clause_reference/datemodified_sort_clause.md index 0bbc44774f..a626be31a2 100644 --- a/docs/search/sort_clause_reference/datemodified_sort_clause.md +++ b/docs/search/sort_clause_reference/datemodified_sort_clause.md @@ -12,7 +12,10 @@ The [`DateModified` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Co ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\DateModified()]; ``` diff --git a/docs/search/sort_clause_reference/datepublished_sort_clause.md b/docs/search/sort_clause_reference/datepublished_sort_clause.md index 9fbbefde7a..92a25e1f6e 100644 --- a/docs/search/sort_clause_reference/datepublished_sort_clause.md +++ b/docs/search/sort_clause_reference/datepublished_sort_clause.md @@ -12,7 +12,10 @@ The [`DatePublished` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-C ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\DatePublished()]; ``` diff --git a/docs/search/sort_clause_reference/datetrashed_sort_clause.md b/docs/search/sort_clause_reference/datetrashed_sort_clause.md index 18dccd0045..4bfa6d9e41 100644 --- a/docs/search/sort_clause_reference/datetrashed_sort_clause.md +++ b/docs/search/sort_clause_reference/datetrashed_sort_clause.md @@ -12,7 +12,10 @@ The [`DateTrashed` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new Query(); $query->sortClauses = [new SortClause\Trash\DateTrashed()]; ``` diff --git a/docs/search/sort_clause_reference/depth_sort_clause.md b/docs/search/sort_clause_reference/depth_sort_clause.md index 2a1324c381..fabdb17a8e 100644 --- a/docs/search/sort_clause_reference/depth_sort_clause.md +++ b/docs/search/sort_clause_reference/depth_sort_clause.md @@ -12,7 +12,10 @@ The [`Location\Depth` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa- ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); -$query->sortClauses = [new SortClause\Depth()]; +$query->sortClauses = [new SortClause\Location\Depth()]; ``` diff --git a/docs/search/sort_clause_reference/field_sort_clause.md b/docs/search/sort_clause_reference/field_sort_clause.md index 2e8a3f8399..b32776ee18 100644 --- a/docs/search/sort_clause_reference/field_sort_clause.md +++ b/docs/search/sort_clause_reference/field_sort_clause.md @@ -20,7 +20,10 @@ The `Field` Sort Clause isn't available in [Repository filtering](search_api.md# ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Field('article', 'title')]; ``` diff --git a/docs/search/sort_clause_reference/id_sort_clause.md b/docs/search/sort_clause_reference/id_sort_clause.md index 8c59c83246..2132a64d37 100644 --- a/docs/search/sort_clause_reference/id_sort_clause.md +++ b/docs/search/sort_clause_reference/id_sort_clause.md @@ -12,7 +12,10 @@ The [`Location\Id` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Location\Id()]; ``` diff --git a/docs/search/sort_clause_reference/ismainlocation_sort_clause.md b/docs/search/sort_clause_reference/ismainlocation_sort_clause.md index 5239dec8b8..b1c763e6b8 100644 --- a/docs/search/sort_clause_reference/ismainlocation_sort_clause.md +++ b/docs/search/sort_clause_reference/ismainlocation_sort_clause.md @@ -18,7 +18,10 @@ The `Location\IsMainLocation` Sort Clause isn't available in [Repository filteri ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); -$query->sortClauses = [new SortClause\Location\InMainLocation()]; +$query->sortClauses = [new SortClause\Location\IsMainLocation()]; ``` diff --git a/docs/search/sort_clause_reference/maplocationdistance_sort_clause.md b/docs/search/sort_clause_reference/maplocationdistance_sort_clause.md index 68ff08525c..6ed59fd571 100644 --- a/docs/search/sort_clause_reference/maplocationdistance_sort_clause.md +++ b/docs/search/sort_clause_reference/maplocationdistance_sort_clause.md @@ -19,7 +19,10 @@ The `MapLocationDistance` Sort Clause isn't available in [Repository filtering]( ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\MapLocationDistance('place', 'location', 49.542889, 20.111349)]; ``` diff --git a/docs/search/sort_clause_reference/order_created_sort_clause.md b/docs/search/sort_clause_reference/order_created_sort_clause.md index 347136d8eb..20a3a1f8c2 100644 --- a/docs/search/sort_clause_reference/order_created_sort_clause.md +++ b/docs/search/sort_clause_reference/order_created_sort_clause.md @@ -13,12 +13,17 @@ The `Created` Sort Clause sorts search results by the date and time when the ord ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +$criteria = null; + $orderQuery = new OrderQuery( $criteria, [ new \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Created( - \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Created::SORT_ASC) + \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Created::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/order_id_sort_clause.md b/docs/search/sort_clause_reference/order_id_sort_clause.md index a0e3cbc6c2..74db82f0b9 100644 --- a/docs/search/sort_clause_reference/order_id_sort_clause.md +++ b/docs/search/sort_clause_reference/order_id_sort_clause.md @@ -13,12 +13,17 @@ The `Id` Sort Clause sorts search results by order Id. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +$criteria = null; + $orderQuery = new OrderQuery( $criteria, [ new \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Id( - \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Id::SORT_ASC) + \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Id::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/order_status_sort_clause.md b/docs/search/sort_clause_reference/order_status_sort_clause.md index d2e4199ac2..3173d9bf18 100644 --- a/docs/search/sort_clause_reference/order_status_sort_clause.md +++ b/docs/search/sort_clause_reference/order_status_sort_clause.md @@ -13,12 +13,17 @@ The `Status` Sort Clause sorts search results by order status. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +$criteria = null; + $orderQuery = new OrderQuery( $criteria, [ new \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Status( - \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Status::SORT_ASC) + \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Status::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/order_updated_sort_clause.md b/docs/search/sort_clause_reference/order_updated_sort_clause.md index a648426b1b..87a3a63d8c 100644 --- a/docs/search/sort_clause_reference/order_updated_sort_clause.md +++ b/docs/search/sort_clause_reference/order_updated_sort_clause.md @@ -13,12 +13,17 @@ The `Updated` Sort Clause sorts search results by the date and time when order s ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\OrderManagement\Value\Order\OrderQuery; + +$criteria = null; + $orderQuery = new OrderQuery( $criteria, [ new \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Updated( - \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Updated::SORT_ASC) + \Ibexa\Contracts\OrderManagement\Value\Order\Query\SortClause\Updated::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/path_sort_clause.md b/docs/search/sort_clause_reference/path_sort_clause.md index d40716b87b..ba5812567b 100644 --- a/docs/search/sort_clause_reference/path_sort_clause.md +++ b/docs/search/sort_clause_reference/path_sort_clause.md @@ -16,7 +16,10 @@ The [`Location\Path` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-C ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Location\Path()]; ``` diff --git a/docs/search/sort_clause_reference/payment_createdat_sort_clause.md b/docs/search/sort_clause_reference/payment_createdat_sort_clause.md index 14265e5ef7..5c9c6572bc 100644 --- a/docs/search/sort_clause_reference/payment_createdat_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_createdat_sort_clause.md @@ -13,12 +13,17 @@ The `CreatedAt` Sort Clause sorts search results by the date and time when the p ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$criteria = null; + $paymentQuery = new PaymentQuery( $criteria, [ new \Ibexa\Contracts\Payment\Payment\Query\SortClause\CreatedAt( - \Ibexa\Contracts\Payment\Payment\Query\SortClause\CreatedAt::SORT_ASC) + \Ibexa\Contracts\Payment\Payment\Query\SortClause\CreatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_id_sort_clause.md b/docs/search/sort_clause_reference/payment_id_sort_clause.md index 23d171ebbb..b1ae85c22f 100644 --- a/docs/search/sort_clause_reference/payment_id_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_id_sort_clause.md @@ -13,12 +13,17 @@ The `Id` Sort Clause sorts search results by payment ID. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$criteria = null; + $paymentQuery = new PaymentQuery( $criteria, [ new \Ibexa\Contracts\Payment\Payment\Query\SortClause\Id( - \Ibexa\Contracts\Payment\Payment\Query\SortClause\Id::SORT_ASC) + \Ibexa\Contracts\Payment\Payment\Query\SortClause\Id::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_identifier_sort_clause.md b/docs/search/sort_clause_reference/payment_identifier_sort_clause.md index 4b2e68d0d2..9eb188771b 100644 --- a/docs/search/sort_clause_reference/payment_identifier_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_identifier_sort_clause.md @@ -13,12 +13,17 @@ The `Identifier` Sort Clause sorts search results by payment identifier. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$criteria = null; + $paymentQuery = new PaymentQuery( $criteria, [ new \Ibexa\Contracts\Payment\Payment\Query\SortClause\Identifier( - \Ibexa\Contracts\Payment\Payment\Query\SortClause\Identifier::SORT_ASC) + \Ibexa\Contracts\Payment\Payment\Query\SortClause\Identifier::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_method_createdat_sort_clause.md b/docs/search/sort_clause_reference/payment_method_createdat_sort_clause.md index a5b9206e7e..e9b386d399 100644 --- a/docs/search/sort_clause_reference/payment_method_createdat_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_method_createdat_sort_clause.md @@ -13,12 +13,17 @@ The `CreatedAt` Sort Clause sorts search results by the date and time when the p ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$criteria = null; + $paymentMethodQuery = new PaymentMethodQuery( $criteria, [ new \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\CreatedAt( - \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\CreatedAt::SORT_ASC) + \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\CreatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_method_enabled_sort_clause.md b/docs/search/sort_clause_reference/payment_method_enabled_sort_clause.md index 95cacb465e..85e7f6e3e3 100644 --- a/docs/search/sort_clause_reference/payment_method_enabled_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_method_enabled_sort_clause.md @@ -13,12 +13,17 @@ The `Enabled` Sort Clause sorts search results by payment method status. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$criteria = null; + $paymentMethodQuery = new PaymentMethodQuery( $criteria, [ new \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Enabled( - \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Enabled::SORT_DESC) + \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Enabled::SORT_DESC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_method_id_sort_clause.md b/docs/search/sort_clause_reference/payment_method_id_sort_clause.md index b8a6245a25..5173b48c3e 100644 --- a/docs/search/sort_clause_reference/payment_method_id_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_method_id_sort_clause.md @@ -13,12 +13,17 @@ The `Id` Sort Clause sorts search results by payment method ID. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$criteria = null; + $paymentMethodQuery = new PaymentMethodQuery( $criteria, [ new \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Id( - \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Id::SORT_ASC) + \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Id::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_method_identifier_sort_clause.md b/docs/search/sort_clause_reference/payment_method_identifier_sort_clause.md index 85f5c7c552..8a70fd9bd2 100644 --- a/docs/search/sort_clause_reference/payment_method_identifier_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_method_identifier_sort_clause.md @@ -13,12 +13,17 @@ The `Identifier` Sort Clause sorts search results by payment method identifier. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$criteria = null; + $paymentMethodQuery = new PaymentMethodQuery( $criteria, [ new \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Identifier( - \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Identifier::SORT_ASC) + \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\Identifier::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_method_updatedat_sort_clause.md b/docs/search/sort_clause_reference/payment_method_updatedat_sort_clause.md index b7e192297b..da117cf6c3 100644 --- a/docs/search/sort_clause_reference/payment_method_updatedat_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_method_updatedat_sort_clause.md @@ -13,12 +13,17 @@ The `UpdatedAt` Sort Clause sorts search results by the date and time when payme ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\PaymentMethod\PaymentMethodQuery; + +$criteria = null; + $paymentMethodQuery = new PaymentMethodQuery( $criteria, [ new \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\UpdatedAt( - \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\UpdatedAt::SORT_DESC) + \Ibexa\Contracts\Payment\PaymentMethod\Query\SortClause\UpdatedAt::SORT_DESC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_status_sort_clause.md b/docs/search/sort_clause_reference/payment_status_sort_clause.md index 4593b0a3d8..d7f805f524 100644 --- a/docs/search/sort_clause_reference/payment_status_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_status_sort_clause.md @@ -13,12 +13,17 @@ The `Status` Sort Clause sorts search results by payment status. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$criteria = null; + $paymentQuery = new PaymentQuery( $criteria, [ new \Ibexa\Contracts\Payment\Payment\Query\SortClause\Status( - \Ibexa\Contracts\Payment\Payment\Query\SortClause\Status::SORT_ASC) + \Ibexa\Contracts\Payment\Payment\Query\SortClause\Status::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/payment_updatedat_sort_clause.md b/docs/search/sort_clause_reference/payment_updatedat_sort_clause.md index 36c86783e6..344505ba41 100644 --- a/docs/search/sort_clause_reference/payment_updatedat_sort_clause.md +++ b/docs/search/sort_clause_reference/payment_updatedat_sort_clause.md @@ -13,12 +13,17 @@ The `UpdatedAt` Sort Clause sorts search results by the date and time when payme ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Payment\Payment\PaymentQuery; + +$criteria = null; + $paymentQuery = new PaymentQuery( $criteria, [ new \Ibexa\Contracts\Payment\Payment\Query\SortClause\UpdatedAt( - \Ibexa\Contracts\Payment\Payment\Query\SortClause\UpdatedAt::SORT_ASC) + \Ibexa\Contracts\Payment\Payment\Query\SortClause\UpdatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/priority_sort_clause.md b/docs/search/sort_clause_reference/priority_sort_clause.md index e30a401ea2..d1eec92ae0 100644 --- a/docs/search/sort_clause_reference/priority_sort_clause.md +++ b/docs/search/sort_clause_reference/priority_sort_clause.md @@ -12,7 +12,10 @@ The [`Location\Priority` Sort Clause](/api/php_api/php_api_reference/classes/Ibe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Location\Priority()]; ``` diff --git a/docs/search/sort_clause_reference/productavailability_sort_clause.md b/docs/search/sort_clause_reference/productavailability_sort_clause.md index 2e7adafa8c..9ef70c1406 100644 --- a/docs/search/sort_clause_reference/productavailability_sort_clause.md +++ b/docs/search/sort_clause_reference/productavailability_sort_clause.md @@ -12,12 +12,14 @@ The `ProductAvailability` Sort Clause sorts search results by whether they have ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + $query = new ProductQuery( null, null, [ - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductAvailability() + new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductAvailability(), ] ); ``` diff --git a/docs/search/sort_clause_reference/productcode_sort_clause.md b/docs/search/sort_clause_reference/productcode_sort_clause.md index 650b5df9bb..8b20582234 100644 --- a/docs/search/sort_clause_reference/productcode_sort_clause.md +++ b/docs/search/sort_clause_reference/productcode_sort_clause.md @@ -12,12 +12,14 @@ The `ProductCode` Sort Clause sorts search results by the product code. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + $query = new ProductQuery( null, null, [ - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductCode() + new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductCode(), ] ); ``` diff --git a/docs/search/sort_clause_reference/productname_sort_clause.md b/docs/search/sort_clause_reference/productname_sort_clause.md index fb03f406cb..a7f8b4c3cd 100644 --- a/docs/search/sort_clause_reference/productname_sort_clause.md +++ b/docs/search/sort_clause_reference/productname_sort_clause.md @@ -12,12 +12,14 @@ The `ProductName` Sort Clause sorts search results by the Product code. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\ProductCatalog\Values\Product\ProductQuery; + $query = new ProductQuery( null, null, [ - new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductName() + new \Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductName(), ] ); ``` diff --git a/docs/search/sort_clause_reference/random_sort_clause.md b/docs/search/sort_clause_reference/random_sort_clause.md index ede07f1ec4..a8963b33e6 100644 --- a/docs/search/sort_clause_reference/random_sort_clause.md +++ b/docs/search/sort_clause_reference/random_sort_clause.md @@ -18,7 +18,10 @@ In Elasticsearch engine, you cannot combine the `Random` Sort Clause with any ot ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Random()]; ``` diff --git a/docs/search/sort_clause_reference/score_sort_clause.md b/docs/search/sort_clause_reference/score_sort_clause.md index 79a28f7853..39215791c2 100644 --- a/docs/search/sort_clause_reference/score_sort_clause.md +++ b/docs/search/sort_clause_reference/score_sort_clause.md @@ -16,7 +16,10 @@ The `Score` Sort Clause isn't available in [Repository filtering](search_api.md# ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Score()]; ``` diff --git a/docs/search/sort_clause_reference/sectionidentifier_sort_clause.md b/docs/search/sort_clause_reference/sectionidentifier_sort_clause.md index bdab557953..3a11bc14e6 100644 --- a/docs/search/sort_clause_reference/sectionidentifier_sort_clause.md +++ b/docs/search/sort_clause_reference/sectionidentifier_sort_clause.md @@ -16,7 +16,10 @@ The [`SectionIdentifier` Sort Clause](/api/php_api/php_api_reference/classes/Ibe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\SectionIdentifier()]; ``` diff --git a/docs/search/sort_clause_reference/sectionname_sort_clause.md b/docs/search/sort_clause_reference/sectionname_sort_clause.md index 1ab4da3f87..3abdd458e1 100644 --- a/docs/search/sort_clause_reference/sectionname_sort_clause.md +++ b/docs/search/sort_clause_reference/sectionname_sort_clause.md @@ -12,7 +12,10 @@ The [`SectionName` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\SectionName()]; ``` diff --git a/docs/search/sort_clause_reference/shipment_createdat_sort_clause.md b/docs/search/sort_clause_reference/shipment_createdat_sort_clause.md index 44cbc7a932..b8526a0aa2 100644 --- a/docs/search/sort_clause_reference/shipment_createdat_sort_clause.md +++ b/docs/search/sort_clause_reference/shipment_createdat_sort_clause.md @@ -13,12 +13,16 @@ The `CreatedAt` Sort Clause sorts search results by the date and time when the s ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Shipment\Query\CriterionInterface $criteria */ $shipmentQuery = new ShipmentQuery( $criteria, [ new \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\CreatedAt( - \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\CreatedAt::SORT_ASC) + \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\CreatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/shipment_id_sort_clause.md b/docs/search/sort_clause_reference/shipment_id_sort_clause.md index 0008c6727f..55f63a6560 100644 --- a/docs/search/sort_clause_reference/shipment_id_sort_clause.md +++ b/docs/search/sort_clause_reference/shipment_id_sort_clause.md @@ -13,12 +13,16 @@ The `Id` Sort Clause sorts search results by shipment Id. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Shipment\Query\CriterionInterface $criteria */ $shipmentQuery = new ShipmentQuery( $criteria, [ new \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Id( - \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Id::SORT_ASC) + \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Id::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/shipment_identifier_sort_clause.md b/docs/search/sort_clause_reference/shipment_identifier_sort_clause.md index 714c2f8d09..18a93a034e 100644 --- a/docs/search/sort_clause_reference/shipment_identifier_sort_clause.md +++ b/docs/search/sort_clause_reference/shipment_identifier_sort_clause.md @@ -13,12 +13,16 @@ The `Identifier` Sort Clause sorts search results by shipment identifier. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Shipment\Query\CriterionInterface $criteria */ $shipmentQuery = new ShipmentQuery( $criteria, [ new \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Identifier( - \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Identifier::SORT_ASC) + \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Identifier::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/shipment_status_sort_clause.md b/docs/search/sort_clause_reference/shipment_status_sort_clause.md index c76465a4ad..f4a48e908a 100644 --- a/docs/search/sort_clause_reference/shipment_status_sort_clause.md +++ b/docs/search/sort_clause_reference/shipment_status_sort_clause.md @@ -13,12 +13,16 @@ The `Status` Sort Clause sorts search results by shipment status. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Shipment\Query\CriterionInterface $criteria */ $shipmentQuery = new ShipmentQuery( $criteria, [ new \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Status( - \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Status::SORT_ASC) + \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\Status::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/shipment_updatedat_sort_clause.md b/docs/search/sort_clause_reference/shipment_updatedat_sort_clause.md index bd9b96a1b5..412a452113 100644 --- a/docs/search/sort_clause_reference/shipment_updatedat_sort_clause.md +++ b/docs/search/sort_clause_reference/shipment_updatedat_sort_clause.md @@ -13,12 +13,16 @@ The `UpdatedAt` Sort Clause sorts search results by the date and time when shipm ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Shipping\Shipment\ShipmentQuery; + +/** @var \Ibexa\Contracts\Shipping\Shipment\Query\CriterionInterface $criteria */ $shipmentQuery = new ShipmentQuery( $criteria, [ new \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\UpdatedAt( - \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\UpdatedAt::SORT_ASC) + \Ibexa\Contracts\Shipping\Shipment\Query\SortClause\UpdatedAt::SORT_ASC + ), ] ); ``` diff --git a/docs/search/sort_clause_reference/userlogin_sort_clause.md b/docs/search/sort_clause_reference/userlogin_sort_clause.md index 7b8eaada1f..0389b84134 100644 --- a/docs/search/sort_clause_reference/userlogin_sort_clause.md +++ b/docs/search/sort_clause_reference/userlogin_sort_clause.md @@ -12,7 +12,10 @@ The [`UserLogin` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-Contr ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\Query; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new Query(); $query->sortClauses = [new SortClause\Trash\UserLogin()]; ``` diff --git a/docs/search/sort_clause_reference/visibility_sort_clause.md b/docs/search/sort_clause_reference/visibility_sort_clause.md index ed8b7fa198..8ee670136b 100644 --- a/docs/search/sort_clause_reference/visibility_sort_clause.md +++ b/docs/search/sort_clause_reference/visibility_sort_clause.md @@ -14,7 +14,10 @@ Locations that aren't visible are ranked as higher values (for example, with asc ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; + $query = new LocationQuery(); $query->sortClauses = [new SortClause\Location\Visibility()]; ``` diff --git a/docs/search/url_search_reference/id_url_sort_clause.md b/docs/search/url_search_reference/id_url_sort_clause.md index f492ae9f46..6e21977453 100644 --- a/docs/search/url_search_reference/id_url_sort_clause.md +++ b/docs/search/url_search_reference/id_url_sort_clause.md @@ -12,9 +12,9 @@ The [`SortClause\Id` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa-C ## Example -``` php {skip-validation} -use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; +``` php use Ibexa\Contracts\Core\Repository\Values\URL\Query\SortClause; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; // ... diff --git a/docs/search/url_search_reference/logicaland_url_criterion.md b/docs/search/url_search_reference/logicaland_url_criterion.md index a1e98b52a0..c4b0e6a60f 100644 --- a/docs/search/url_search_reference/logicaland_url_criterion.md +++ b/docs/search/url_search_reference/logicaland_url_criterion.md @@ -12,11 +12,15 @@ The [`LogicalAnd` URL Criterion](/api/php_api/php_api_reference/classes/Ibexa-Co ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\LogicalAnd( [ new Criterion\Validity(true), - new Criterion\Pattern('ibexa.co') + new Criterion\Pattern('ibexa.co'), ] ); ``` diff --git a/docs/search/url_search_reference/logicalnot_url_criterion.md b/docs/search/url_search_reference/logicalnot_url_criterion.md index ce9c6d42f3..eed8ab36a4 100644 --- a/docs/search/url_search_reference/logicalnot_url_criterion.md +++ b/docs/search/url_search_reference/logicalnot_url_criterion.md @@ -14,8 +14,12 @@ It takes only one Criterion in the array parameter. ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\LogicalNot( - new Criterion\Pattern('ibexa.co') + new Criterion\Pattern('ibexa.co') ); ``` diff --git a/docs/search/url_search_reference/logicalor_url_criterion.md b/docs/search/url_search_reference/logicalor_url_criterion.md index 5424306c2a..aef8778e22 100644 --- a/docs/search/url_search_reference/logicalor_url_criterion.md +++ b/docs/search/url_search_reference/logicalor_url_criterion.md @@ -12,11 +12,15 @@ The [`LogicalOr` URL Criterion](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\LogicalOr( [ new Criterion\SectionIdentifier(['sports', 'news']), - new Criterion\Pattern('ibexa.co') + new Criterion\Pattern('ibexa.co'), ] ); ``` diff --git a/docs/search/url_search_reference/pattern_url_criterion.md b/docs/search/url_search_reference/pattern_url_criterion.md index 12dbd9478d..822ebac541 100644 --- a/docs/search/url_search_reference/pattern_url_criterion.md +++ b/docs/search/url_search_reference/pattern_url_criterion.md @@ -12,6 +12,10 @@ The [`Pattern` URL Criterion](/api/php_api/php_api_reference/classes/Ibexa-Contr ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\Pattern('ibexa.co'); ``` diff --git a/docs/search/url_search_reference/sectionid_url_criterion.md b/docs/search/url_search_reference/sectionid_url_criterion.md index 7d6f005b77..5de5f9b9ea 100644 --- a/docs/search/url_search_reference/sectionid_url_criterion.md +++ b/docs/search/url_search_reference/sectionid_url_criterion.md @@ -12,6 +12,10 @@ The [`SectionId` URL Criterion](/api/php_api/php_api_reference/classes/Ibexa-Con ## Example -``` php {skip-validation} -$query->filter = new Criterion\SectionId(['1', '3']); +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); +$query->filter = new Criterion\SectionId([1, 3]); ``` diff --git a/docs/search/url_search_reference/sectionidentifier_url_criterion.md b/docs/search/url_search_reference/sectionidentifier_url_criterion.md index 37fbad1c50..ce4209876b 100644 --- a/docs/search/url_search_reference/sectionidentifier_url_criterion.md +++ b/docs/search/url_search_reference/sectionidentifier_url_criterion.md @@ -12,6 +12,10 @@ The [SectionIdentifier URL Criterion](/api/php_api/php_api_reference/classes/Ibe ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\SectionIdentifier(['standard', 'media']); ``` diff --git a/docs/search/url_search_reference/url_url_sort_clause.md b/docs/search/url_search_reference/url_url_sort_clause.md index 714e25bfa3..4d6aa1f43e 100644 --- a/docs/search/url_search_reference/url_url_sort_clause.md +++ b/docs/search/url_search_reference/url_url_sort_clause.md @@ -12,9 +12,9 @@ The [`SortClause\Url` Sort Clause](/api/php_api/php_api_reference/classes/Ibexa- ## Example -``` php {skip-validation} -use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; +``` php use Ibexa\Contracts\Core\Repository\Values\URL\Query\SortClause; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; // ... diff --git a/docs/search/url_search_reference/validity_url_criterion.md b/docs/search/url_search_reference/validity_url_criterion.md index 578c98f6c1..f80bd7262c 100644 --- a/docs/search/url_search_reference/validity_url_criterion.md +++ b/docs/search/url_search_reference/validity_url_criterion.md @@ -12,6 +12,10 @@ The [Validity URL Criterion](/api/php_api/php_api_reference/classes/Ibexa-Contra ## Example -``` php {skip-validation} +``` php +use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; +use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; + +$query = new URLQuery(); $query->filter = new Criterion\Validity(true); ``` diff --git a/docs/templating/layout/add_login_form.md b/docs/templating/layout/add_login_form.md index 0195badcff..3e6e30e120 100644 --- a/docs/templating/layout/add_login_form.md +++ b/docs/templating/layout/add_login_form.md @@ -56,7 +56,7 @@ You can use a custom template for example to display information about password In case of more advanced template customization, you can use a subscriber, for example in `src/EventSubscriber/LoginFormViewSubscriber.php`: -``` php {skip-validation} hl_lines="23 35 40 42" +``` php hl_lines="23 35 40 42" getContentView(); if (!($view instanceof LoginFormView)) { - return ; + return; } $view->addParameters([ 'foo' => 'foo', - 'bar' => 'bar' + 'bar' => 'bar', ]); if ($view->getLastAuthenticationException() instanceof CredentialsExpiredException) { diff --git a/docs/templating/urls_and_routes/custom_breadcrumbs.md b/docs/templating/urls_and_routes/custom_breadcrumbs.md index 9d9e1991b3..690d60df47 100644 --- a/docs/templating/urls_and_routes/custom_breadcrumbs.md +++ b/docs/templating/urls_and_routes/custom_breadcrumbs.md @@ -46,8 +46,12 @@ custom_blog_index: To see the correct breadcrumb, you have to check the method in the controller itself: - ``` php {skip-validation} - if ($request->getMethod() != REQUEST::METHOD_POST) { + ``` php + use Symfony\Component\HttpFoundation\Request; + use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; + + /** @var \Symfony\Component\HttpFoundation\Request $request */ + if ($request->getMethod() != Request::METHOD_POST) { throw new NotFoundHttpException(); } ``` diff --git a/docs/tutorials/beginner_tutorial/5_display_a_list_of_content_items.md b/docs/tutorials/beginner_tutorial/5_display_a_list_of_content_items.md index 7e9983333b..4f994a85c9 100644 --- a/docs/tutorials/beginner_tutorial/5_display_a_list_of_content_items.md +++ b/docs/tutorials/beginner_tutorial/5_display_a_list_of_content_items.md @@ -57,7 +57,7 @@ For more information, see [Built-In Query Types](built-in_query_types.md). Here, you need to display `ride` objects that have been published (are visible). Create a `RideQueryType.php` file in `src/QueryType`: -``` php {skip-validation} hl_lines="21 22" +``` php hl_lines="22-23" $parameters */ + public function getQuery(array $parameters = []): \Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery { return new LocationQuery([ 'filter' => new Criterion\LogicalAnd( @@ -81,12 +82,13 @@ class RideQueryType implements QueryType new Criterion\Visibility(Criterion\Visibility::VISIBLE), new Criterion\ContentTypeIdentifier(['ride']), ] - ) + ), ]); } - public function getSupportedParameters() + public function getSupportedParameters(): array { + return []; } } ``` diff --git a/docs/tutorials/beginner_tutorial/7_embed_content.md b/docs/tutorials/beginner_tutorial/7_embed_content.md index 8985042bb1..c9404e183b 100644 --- a/docs/tutorials/beginner_tutorial/7_embed_content.md +++ b/docs/tutorials/beginner_tutorial/7_embed_content.md @@ -123,25 +123,22 @@ The controller uses `ContentService` to load related resources (Landmarks) for a Create a `src/Controller/RideController.php` file: -``` php {skip-validation} +``` php contentService = $contentService; } - public function viewRideWithLandmarksAction(ContentView $view) + public function viewRideWithLandmarksAction(ContentView $view): ContentView { $currentContent = $view->getContent(); $landmarksListId = $currentContent->getFieldValue('landmarks'); diff --git a/docs/update_and_migration/from_1.x_2.x/update_db_to_2.5.md b/docs/update_and_migration/from_1.x_2.x/update_db_to_2.5.md index a6af970b19..945c1cad29 100644 --- a/docs/update_and_migration/from_1.x_2.x/update_db_to_2.5.md +++ b/docs/update_and_migration/from_1.x_2.x/update_db_to_2.5.md @@ -146,7 +146,7 @@ defined in the [Enterprise Beginner tutorial](page_and_form_tutorial.md) `app/Resources/views/layouts/sidebar.html.twig`: - ``` php {skip-validation} + ```html+twig
{% if zones[0].blocks %} @@ -399,7 +399,7 @@ defined in the [Enterprise Beginner tutorial](page_and_form_tutorial.md) `app/Resources/views/layouts/sidebar.html.twig`: - ``` php {skip-validation} + ```html+twig
{% if zones[0].blocks %} diff --git a/docs/update_and_migration/from_2.5/update_code/4_update_signal_slots.md b/docs/update_and_migration/from_2.5/update_code/4_update_signal_slots.md index 57f90d3d13..0eef89a9d1 100644 --- a/docs/update_and_migration/from_2.5/update_code/4_update_signal_slots.md +++ b/docs/update_and_migration/from_2.5/update_code/4_update_signal_slots.md @@ -16,7 +16,7 @@ public static function getSubscribedEvents(): array { return [ CreateBookmarkEvent::class => 'onCreateBookmark', - ] + ]; } public function onCreateBookmark(CreateBookmarkEvent $event): void @@ -33,7 +33,7 @@ public function receive(Signal $signal) if (!($signal instanceof CreateBookmarkSignal)) { return; } -} -// your code + // your code +} ``` diff --git a/docs/update_and_migration/from_2.5/update_code/8_update_rest.md b/docs/update_and_migration/from_2.5/update_code/8_update_rest.md index 7eda755172..c349353cf1 100644 --- a/docs/update_and_migration/from_2.5/update_code/8_update_rest.md +++ b/docs/update_and_migration/from_2.5/update_code/8_update_rest.md @@ -21,7 +21,7 @@ you need to switch to Core Installer. **Use:** -``` php {skip-validation} +``` yaml services: Acme\App\Installer\MyCustomInstaller: parent: EzSystems\PlatformInstallerBundle\Installer\CoreInstaller @@ -29,7 +29,7 @@ services: **instead of**: -``` php {skip-validation} +``` yaml services: Acme\App\Installer\MyCustomInstaller: parent: ezplatform.installer.clean_installer @@ -42,7 +42,7 @@ Custom schema can be installed defining Symfony Event Subscriber subscribing to **Use:** -``` php {skip-validation} +``` yaml services: Acme\App\Installer\MyCustomInstaller: parent: EzSystems\PlatformInstallerBundle\Installer\DbBasedInstaller @@ -50,7 +50,7 @@ services: **instead of:** -``` php {skip-validation} +``` yaml services: Acme\App\Installer\MyCustomInstaller: parent: ezplatform.installer.db_based_installer diff --git a/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md b/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md index caabd0a2b7..af83553e97 100644 --- a/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md +++ b/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md @@ -151,7 +151,7 @@ You don't have to remove third-party bundles (`FOS\` to `JMS\`) if they're used === "[[= product_name_content =]]" - ``` php {skip-validation} + ``` text FOS\CommentBundle\FOSCommentBundle Tedivm\StashBundle\TedivmStashBundle WhiteOctober\BreadcrumbsBundle\WhiteOctoberBreadcrumbsBundle @@ -178,7 +178,7 @@ You don't have to remove third-party bundles (`FOS\` to `JMS\`) if they're used === "[[= product_name_exp =]]" - ``` php {skip-validation} + ``` text FOS\CommentBundle\FOSCommentBundle Tedivm\StashBundle\TedivmStashBundle WhiteOctober\BreadcrumbsBundle\WhiteOctoberBreadcrumbsBundle @@ -205,7 +205,7 @@ You don't have to remove third-party bundles (`FOS\` to `JMS\`) if they're used === "[[= product_name_com =]]" - ``` php {skip-validation} + ``` text FOS\CommentBundle\FOSCommentBundle Tedivm\StashBundle\TedivmStashBundle WhiteOctober\BreadcrumbsBundle\WhiteOctoberBreadcrumbsBundle diff --git a/docs/update_and_migration/from_4.6/update_from_4.6.md b/docs/update_and_migration/from_4.6/update_from_4.6.md index 7bd8fa2c92..b6a0e0528e 100644 --- a/docs/update_and_migration/from_4.6/update_from_4.6.md +++ b/docs/update_and_migration/from_4.6/update_from_4.6.md @@ -161,8 +161,11 @@ merge with your custom settings if needed, and commit them to Git. If the new bundle `ibexa/core-search` has not been added by the recipes, enable it by adding the following line in `config/bundles.php`: -``` php {skip-validation} +``` php +return [ + // ... Ibexa\Bundle\CoreSearch\IbexaCoreSearchBundle::class => ['all' => true], +]; ``` ## v4.6.13 diff --git a/docs/update_and_migration/from_4.6/update_to_5.0.md b/docs/update_and_migration/from_4.6/update_to_5.0.md index 6a64b12ffa..5c1376d778 100644 --- a/docs/update_and_migration/from_4.6/update_to_5.0.md +++ b/docs/update_and_migration/from_4.6/update_to_5.0.md @@ -50,17 +50,20 @@ It's recommended to activate one rule set at a time and preview the output by ru Your configuration could look like the following example: -``` php {skip-validation} +``` php +use Ibexa\Contracts\Rector\Sets\IbexaSetList; +use Rector\Config\RectorConfig; + return RectorConfig::configure() ->withPaths( - [ + [ __DIR__ . '/src', - ] + ] ) ->withSets( - [ + [ IbexaSetList::IBEXA_46->value, - ] + ] ) ->withPhpSets(php83: true) ->withComposerBased(symfony: true) @@ -463,11 +466,15 @@ Again, it's recommended to activate one rule set at a time and preview the outpu As this update spans across a broad range of versions, multiple rules can be considered as in the example below. -``` php {skip-validation} +``` php //… -use Rector\Symfony\Set\SymfonySetList; +use Ibexa\Contracts\Rector\Sets\IbexaSetList; +use Rector\Config\RectorConfig; use Rector\Symfony\Set\SensiolabsSetList; -//… +use Rector\Symfony\Set\SymfonySetList; + +return RectorConfig::configure() + // ... ->withSets( [ IbexaSetList::IBEXA_50->value, diff --git a/docs/users/oauth_server.md b/docs/users/oauth_server.md index 6d13e6a2de..0470d21be2 100644 --- a/docs/users/oauth_server.md +++ b/docs/users/oauth_server.md @@ -34,7 +34,7 @@ Add the tables needed by the bundle: Then, in `config/bundles.php`, at the end of an array with a list of bundles, add the following two lines : -``` php {skip-validation} +``` php segmentationService->removeSegmentGroup($group); +``` php +[[= include_code('code_samples/api/public_php_api/src/Command/SegmentCommand.php', 67, 67, remove_indent=True) =]] ``` diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 67fa1606c9..9b5861650f 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,5 +1,143 @@ parameters: ignoreErrors: + - + message: '#^Offset ''acme'' does not exist on array\{alias\: string, storage\: array\{engine\: string, connection\: string, config\?\: array\\}, search\: array\{engine\: string, connection\: string\}, fields_groups\: array\{default\: string, list\: array\\}, options\: array\\}\.$#' + identifier: offsetAccess.notFound + count: 1 + path: code_samples/_inline_php/administration/configuration/repository_configuration/ab545148cd13f7537467f6c43859d757ba15120b5df7d9933e6236336f1bf5e1.php + + - + message: '#^Dead catch \- Ibexa\\Contracts\\Core\\Repository\\Exceptions\\NotFoundException is never thrown in the try block\.$#' + identifier: catch.neverThrown + count: 1 + path: code_samples/_inline_php/api/php_api/php_api/1207fc11956ce57c9503ab18d8fb6316f391ed152816968fccfb020a4d498420.php + + - + message: '#^Dead catch \- Ibexa\\Contracts\\Core\\Repository\\Exceptions\\UnauthorizedException is never thrown in the try block\.$#' + identifier: catch.neverThrown + count: 1 + path: code_samples/_inline_php/api/php_api/php_api/1207fc11956ce57c9503ab18d8fb6316f391ed152816968fccfb020a4d498420.php + + - + message: '#^Instantiated class MyValue not found\.$#' + identifier: class.notFound + count: 1 + path: code_samples/_inline_php/api/rest_api/extending_rest_api/creating_new_rest_resource/6886002ea53abecb63d61d585bc055fc9df36a19db675e286408a52f40aa794c.php + + - + message: '#^Variable \$args might not be defined\.$#' + identifier: variable.undefined + count: 1 + path: code_samples/_inline_php/api/rest_api/extending_rest_api/creating_new_rest_resource/6886002ea53abecb63d61d585bc055fc9df36a19db675e286408a52f40aa794c.php + + - + message: '#^Call to an undefined method Symfony\\Component\\Notifier\\Recipient\\RecipientInterface\:\:getUser\(\)\.$#' + identifier: method.notFound + count: 1 + path: code_samples/_inline_php/commerce/transactional_emails/extend_transactional_emails/9512b966ae24a637ff0bba4d63a51f6418567d4c1245ea3d61272890838582a4.php + + - + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content\:\:\$fields is not writable\.$#' + identifier: assign.propertyReadOnly + count: 1 + path: code_samples/_inline_php/content_management/field_types/field_type_reference/countryfield/3cd88088ebfaab6dc8aab79fd8d9e380586a05e9a250f208935020a274d6a77f.php + + - + message: '#^Expression "\[''isISBN13'' \=\> \\true\]" on a separate line does not do anything\.$#' + identifier: expr.resultUnused + count: 1 + path: code_samples/_inline_php/content_management/field_types/field_type_reference/isbnfield/678db783359b1c65999e5fed725950d32aaab547ab82f6bda18afcafa3392e8b.php + + - + message: '#^Expression "\[''StringLengthValidator'' \=\> \[''maxStringLength'' \=\> 60, ''minStringLength'' \=\> 1\]\]" on a separate line does not do anything\.$#' + identifier: expr.resultUnused + count: 1 + path: code_samples/_inline_php/content_management/field_types/field_type_reference/textlinefield/abeeb0a02156f9dd413b5f54292d97783f49043458623888d904267ffa60acde.php + + - + message: '#^Expression "\[''stringLength'' \=\> \[''minStringLength'' \=\> \[''type'' \=\> ''int'', ''default'' \=\> 0\], ''maxStringLength'' \=\> \[''type'' \=\> ''int'', ''default'' \=\> \\null\]\]\]" on a separate line does not do anything\.$#' + identifier: expr.resultUnused + count: 1 + path: code_samples/_inline_php/content_management/field_types/field_type_validation/9ff627c9326c9d9aa0613061d4b96d5e0b22526a04e1c3cf6c671bdc73f537e7.php + + - + message: '#^Expression "\[''backupData'' \=\> \[''type'' \=\> ''bool'', ''default'' \=\> \\false\], ''defaultValue'' \=\> \[''type'' \=\> ''string'', ''default'' \=\> ''Default Value''\]\]" on a separate line does not do anything\.$#' + identifier: expr.resultUnused + count: 1 + path: code_samples/_inline_php/content_management/field_types/type_and_value/4d9e52e02d6e226f71015653d598f662f6b4d4eb0af9e99b4c49d5389af19671.php + + - + message: '#^Call to an undefined method object\:\:loadObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: code_samples/_inline_php/infrastructure_and_maintenance/cache/persistence_cache/353177557bb0bc90eb5b4270a1c24e9544452d429462edff6f2aab293e6999e9.php + + - + message: '#^Property App\\MyService\:\:\$contentService is never read, only written\.$#' + identifier: property.onlyWritten + count: 1 + path: code_samples/_inline_php/multisite/siteaccess/injecting_siteaccess/8c8e5bbb699fa46d35caf839176460dccbdd53431e04edd95c7ea25a7e638d9c.php + + - + message: '#^Property App\\MyService\:\:\$siteAccessService is never read, only written\.$#' + identifier: property.onlyWritten + count: 1 + path: code_samples/_inline_php/multisite/siteaccess/injecting_siteaccess/8c8e5bbb699fa46d35caf839176460dccbdd53431e04edd95c7ea25a7e638d9c.php + + - + message: '#^Variable \$this might not be defined\.$#' + identifier: variable.undefined + count: 1 + path: code_samples/_inline_php/search/criteria_reference/ancestor_criterion/4a5427b7ae43106059e9d543fcbf5e7b66602c10052ab6ff67750e041857c6ad.php + + - + message: '#^Variable \$this might not be defined\.$#' + identifier: variable.undefined + count: 1 + path: code_samples/_inline_php/search/criteria_reference/parentlocationid_criterion/c85766351eda977c61c12ab7d00c11cba956bde544bbdff4cad24e0bbf7717d9.php + + - + message: '#^Method App\\QueryType\\RideQueryType\:\:getSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: code_samples/_inline_php/tutorials/beginner_tutorial/5_display_a_list_of_content_items/ccb9d8424978af9df4ec24d732f91c6f7cab90b6879eecd0ea97fef21b833b3b.php + + - + message: '#^Cannot access property \$destinationContentIds on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject + count: 1 + path: code_samples/_inline_php/tutorials/beginner_tutorial/7_embed_content/d8ad5ae7972b67d11cb172c321b891e268d5a346d166f73c5570d61b9b372a7d.php + + - + message: '#^Access to constant ANNOTATIONS_TO_ATTRIBUTES on an unknown class Rector\\Symfony\\Set\\SensiolabsSetList\.$#' + identifier: class.notFound + count: 1 + path: code_samples/_inline_php/update_and_migration/from_4.6/update_to_5.0/20a5c589183c1b8ee4f67c7a0c9352320eb7349e3f06f89c61e245ea4b7f585f.php + + - + message: '#^Access to undefined constant Ibexa\\Core\\MVC\\Symfony\\MVCEvents\:\:INTERACTIVE_LOGIN\.$#' + identifier: classConstant.notFound + count: 1 + path: code_samples/_inline_php/users/user_authentication/661a7600ac0964cdf501697eda6461ec2a7a1c3813025f1fbb4ffa16ec174b53.php + + - + message: '#^Call to method setApiUser\(\) on an unknown class eIbexa\\Core\\MVC\\Symfony\\Event\\InteractiveLoginEvent\.$#' + identifier: class.notFound + count: 1 + path: code_samples/_inline_php/users/user_authentication/661a7600ac0964cdf501697eda6461ec2a7a1c3813025f1fbb4ffa16ec174b53.php + + - + message: '#^Method App\\EventListener\\InteractiveLoginListener\:\:onInteractiveLogin\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: code_samples/_inline_php/users/user_authentication/661a7600ac0964cdf501697eda6461ec2a7a1c3813025f1fbb4ffa16ec174b53.php + + - + message: '#^Parameter \$event of method App\\EventListener\\InteractiveLoginListener\:\:onInteractiveLogin\(\) has invalid type eIbexa\\Core\\MVC\\Symfony\\Event\\InteractiveLoginEvent\.$#' + identifier: class.notFound + count: 1 + path: code_samples/_inline_php/users/user_authentication/661a7600ac0964cdf501697eda6461ec2a7a1c3813025f1fbb4ffa16ec174b53.php + - message: '#^Class App\\Form\\Type\\TextToTextOptionsType extends generic class Symfony\\Component\\Form\\AbstractType but does not specify its types\: TData$#' identifier: missingType.generics @@ -683,3 +821,4 @@ parameters: identifier: argument.type count: 1 path: code_samples/workflow/custom_workflow/src/EventListener/LegalTransitionListener.php + diff --git a/phpstan.neon b/phpstan.neon index def4a36323..3b3b56df27 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -8,3 +8,4 @@ parameters: paths: - code_samples treatPhpDocTypesAsCertain: false + reportUnmatchedIgnoredErrors: false