Skip to content

Points d'extension du cœur ​

Page générée

Extraite mécaniquement du code de slab/framework (commande slab:extension-points). Dernière génération : 2026-10-12.

Le cœur (slab/framework) n'expose au reste de l'écosystème que des contrats. Les packages les implémentent, le frontend les consomme — personne ne dépend de personne d'autre que du cœur.

Contrats (68) ​

surchargeable : un défaut est lié dans le conteneur, remplaçable par binding. implémentable : pas de défaut, fourni par les packages.

ContratDomaineTypeImplémentation par défaut
AccessControlRegistryAccountsurchargeableDefaultAccessControlRegistry
BackMenuRegistryBackMenusurchargeableDefaultBackMenuRegistry
BulkActionRegistryViewsurchargeableDefaultBulkActionRegistry
CancellableEventEventimplémentable— (fourni par un package)
CartPriceServiceCartsurchargeableDefaultCartPriceService
CartServiceCartsurchargeableDefaultCartService
CatalogFilterPresenterCatalogsurchargeableDefaultCatalogFilterPresenter
CatalogFilterRegistryCatalogsurchargeableDefaultCatalogFilterRegistry
CategoryServiceCategorysurchargeableDefaultCategoryService
CheckoutOptionProviderCheckoutimplémentable— (fourni par un package)
CheckoutOptionRegistryCheckoutsurchargeableDefaultCheckoutOptionRegistry
ConsentServiceConsentsurchargeableDefaultConsentService
CurrencyServiceCurrencysurchargeableDefaultCurrencyService
CurrentAreaResolverAreasurchargeableDefaultCurrentAreaResolver
CurrentCartResolverCartsurchargeableDefaultCurrentCartResolver
CurrentCurrencyResolverCurrencysurchargeableDefaultCurrentCurrencyResolver
DashboardTileDashboardimplémentable— (fourni par un package)
DashboardTileRegistryDashboardsurchargeableDefaultDashboardTileRegistry
DataExchangeServiceDatasurchargeableDefaultDataExchangeService
DataFormatDatasurchargeableCsvFormat
DataSchemaRegistryDatasurchargeableDefaultDataSchemaRegistry
DatatableExtensionRegistryViewsurchargeableDefaultDatatableExtensionRegistry
DeletionServiceDeletionsurchargeableDefaultDeletionService
FormLayoutRegistryViewsurchargeableDefaultFormLayoutRegistry
FormRuleRegistryValidationsurchargeableDefaultFormRuleRegistry
IndicatorIndicatorimplémentable— (fourni par un package)
IndicatorRegistryIndicatorsurchargeableDefaultIndicatorRegistry
LanguageServiceLanguagesurchargeableDefaultLanguageService
MeasureIndicatorimplémentable— (fourni par un package)
MenuIconRegistryMenusurchargeableDefaultMenuIconRegistry
MenuServiceMenusurchargeableDefaultMenuService
ModelExtensionRegistryModelsurchargeableDefaultModelExtensionRegistry
OrderDocumentRegistryOrdersurchargeableDefaultOrderDocumentRegistry
OrderLockPolicyOrdersurchargeableDefaultOrderLockPolicy
OrderMailRegistryOrdersurchargeableDefaultOrderMailRegistry
OrderModificationServiceOrdersurchargeableDefaultOrderModificationService
OrderPlacementPipelineOrdersurchargeableDefaultOrderPlacementPipeline
OrderPriceServiceOrdersurchargeableDefaultOrderPriceService
OrderSearchOrdersurchargeableDefaultOrderSearch
OrderSearchTermRegistryOrdersurchargeableDefaultOrderSearchTermRegistry
OrderServiceOrdersurchargeableDefaultOrderService
OrderStatusServiceOrdersurchargeableDefaultOrderStatusService
PriceModifierPricingimplémentable— (fourni par un package)
PriceModifierRegistryPricingsurchargeableDefaultPriceModifierRegistry
PricePipelinePricingsurchargeableDefaultPricePipeline
ProductAvailabilityServiceProductsurchargeableDefaultProductAvailabilityService
ProductIndexServiceProductsurchargeableDefaultProductIndexService
ProductPriceServiceProductsurchargeableDefaultProductPriceService
ProductStatusRegistryProductsurchargeableDefaultProductStatusRegistry
ProductVariantServiceProductsurchargeableDefaultProductVariantService
RankingIndicatorimplémentable— (fourni par un package)
RegistrationServiceAccountsurchargeableDefaultRegistrationService
RouteContributionRegistrarRoutingsurchargeableDefaultRouteContributionRegistrar
SaleDefinitionOrdersurchargeableDefaultSaleDefinition
SaveHookRegistrySavingsurchargeableDefaultSaveHookRegistry
SavingServiceSavingsurchargeableDefaultSavingService
SearchIndexRegistrySearchsurchargeableDefaultSearchIndexRegistry
SettingsServiceSettingssurchargeableDefaultSettingsService
SitemapGeneratorSitemapsurchargeableDefaultSitemapGenerator
SitemapSourceRegistrySitemapsurchargeableDefaultSitemapSourceRegistry
StructuredDataRegistrySeosurchargeableDefaultStructuredDataRegistry
TaxResolverTaxsurchargeableDefaultTaxResolver
ThirdPartyServiceRegistryThirdPartysurchargeableDefaultThirdPartyServiceRegistry
TotalsBuilderPricingsurchargeableDefaultTotalsBuilder
TotalsModifierPricingimplémentable— (fourni par un package)
TotalsModifierRegistryPricingsurchargeableDefaultTotalsModifierRegistry
TranslationServiceTranslationsurchargeableDefaultTranslationService
ViewHookRegistryViewsurchargeableDefaultViewHookRegistry

Événements de domaine (26) ​

Émis par le cœur, écoutés par les packages via des listeners. Ceux marqués annulables annoncent une intention avant qu'elle ne soit exécutée (CartItemAdding, OrderPlacing…) : un écouteur peut s'y opposer par $event->cancel('motif'), et l'action n'a pas lieu.

ÉvénementDomaineVeto
CartItemAddedCart—
CartItemAddingCartannulable
CartItemRemovedCart—
CartItemRemovingCartannulable
CartItemUpdatedCart—
CartItemUpdatingCartannulable
CartMergedCart—
CategoryViewedCategory—
CheckoutCompletedCheckout—
CheckoutStartedCheckout—
CheckoutStepCompletedCheckout—
CurrencyChangedCurrency—
ModelDeletingDeletionannulable
ModelSavingSavingannulable
OrderModifiedOrder—
OrderModifyingOrderannulable
OrderPlacedOrder—
OrderPlacingOrderannulable
OrderStatusChangedOrder—
OrderStatusChangingOrderannulable
ProductViewedProduct—
ReindexRequestedSearch—
SearchPerformedSearch—
UserApprovedAccount—
UserEmailChangedAccount—
UserRegisteredAccount—

Noms de routes front garantis (33) ​

Le frontend garantit ces noms de routes front.* (contrat FrontRouteContract) ; un package ou un thème peut s'appuyer dessus sans coupler son code aux URLs.

home ​

  • front.home

catalog ​

  • front.products.show
  • front.products.ajax.get-variant-url
  • front.categories.show
  • front.categories.ajax.filters-count
  • front.pages.show
  • front.search.ajax.search

cart ​

  • front.carts.ajax.get-content
  • front.carts.ajax.product.add
  • front.carts.ajax.product.update
  • front.carts.ajax.product.delete

checkout ​

  • front.checkout.user.show
  • front.checkout.user.store
  • front.checkout.addresses.show
  • front.checkout.addresses.store
  • front.orders.confirmation

account ​

  • front.account.show
  • front.account.user.edit
  • front.account.user.update
  • front.account.addresses.index
  • front.account.addresses.create
  • front.account.addresses.store
  • front.account.addresses.edit
  • front.account.addresses.update
  • front.account.addresses.destroy
  • front.account.orders.index
  • front.account.orders.show
  • front.account.orders.document
  • front.addresses.ajax.get-form
  • front.addresses.ajax.get-block

user ​

  • front.users.create
  • front.users.store
  • front.currency.set-current-currency

Slots front ​

Points d'insertion de vue exposés par le frontend (<x-hook>), remplis par les packages via le ViewHookRegistry. Un thème complet les expose tous ; le groupe mails est posé par le framework, qui possède les gabarits d'e-mail.

layout ​

  • front.head
  • front.body.start
  • front.body.end
  • front.main.start
  • front.main.end
  • front.header.start
  • front.header.end

catalog ​

  • front.product.summary.after
  • front.product.form.fields
  • front.product.after
  • front.category.title.after
  • front.category.filters.after
  • front.category.products.after
  • front.search.results.before
  • front.search.results.after

cart ​

  • front.cart.item.after
  • front.cart.totals.before
  • front.cart.totals.after
  • front.cart.actions

checkout ​

  • front.checkout.summary
  • front.checkout.step.start
  • front.checkout.step.end
  • front.checkout.details

content ​

  • front.page.after

account ​

  • front.account.links
  • front.order.details.after
  • front.account.user.form.start
  • front.account.user.form.end

forms ​

  • front.login.form.end
  • front.register.form.end
  • front.address.form.end
  • front.address.block.end

mails ​

  • mail.body.start
  • mail.body.end

Slots back-office ​

Mêmes points d'injection côté administration : ils existent sur tous les écrans, et un package y contribue son markup sans éditer une vue du cœur.

layout ​

  • back.head
  • back.body.start
  • back.body.end
  • back.main.start
  • back.main.end

chrome ​

  • back.header.corner
  • back.header.actions
  • back.menu.end

Hooks d'écran ​

Le point d'extension de vue le plus général : toute route nommée ouvre deux hooks, sans que sa vue ait à les déclarer. Un package cible ainsi n'importe quel écran — du cœur, du thème ou d'un autre package — et reçoit les paramètres de la route en contexte.

  • <route>.start
  • <route>.end

Exemples : back.products.index.start, front.products.show.end.

Les écrans de formulaire du back-office ouvrent en plus, via leur charpente déclarative (FormLayoutRegistry) :

  • {screen}.tabs
  • {screen}.sections
  • {screen}.tab.{tab}