Extending Pimcore
Pimcore builds on Symfony's extension mechanisms and adds its own extension points. Most projects start with data modeling, controllers, templates, and documents, all achievable through configuration and standard Symfony patterns. When you need to go further, Pimcore provides dedicated extension points across three layers.
Architecture: Where to Extend What
Pimcore's extension points span three layers, each documented in its own chapter:
| Layer | What it covers | When to use |
|---|---|---|
| Core Framework (this chapter) | Events, models, bundles, data types, Symfony DI, Composer dependencies | PHP/Symfony-level customization, data model extensions, lifecycle hooks, distributable bundles |
| Studio Backend API | API endpoints, response customization, grid columns, filters, metadata adapters | Customizing the REST API layer that powers Pimcore Studio |
| Studio UI | Plugins, tabs, widgets, navigation, context menus, sidebar extensions | Extending the Pimcore Studio frontend with custom UI components |
Cross-cutting extensions (e.g. adding a custom asset type or document type) typically require changes across multiple layers. The guides in this chapter cover the full workflow and link to the Studio Backend and Studio UI documentation for layer-specific detail.
Core Framework Extensions
Events and Event Listeners Hook into Pimcore's lifecycle (element CRUD, cache, mail, workflows) using the Symfony EventDispatcher without modifying core code.
Add Your Own Dependencies Install external Composer packages and register third-party Symfony bundles.
Custom Extension Guides Step-by-step guides for specific customizations: custom asset types, document types, data types, permissions, persistent models, and more. Includes a cross-bundle index of all extension guides across all three layers.
Bundle Developer's Guide Build reusable, distributable Pimcore bundles with installers, service definitions, auto-loaded configuration, and migrations.
Studio Backend Extensions
The Studio Backend Bundle exposes extension points for the API layer that powers Pimcore Studio: custom endpoints, response enrichment via events, grid columns, filters, metadata adapters, and OpenAPI integration.
See the full reference: Extending Pimcore Studio Backend
Studio UI Extensions
The Studio UI Bundle provides a plugin/module architecture, component registry, dependency injection, and dynamic type system for client-side customization of Pimcore Studio.
Start with the plugin development guide. The SDK Overview provides background on the module system and component registry that plugins build on.
- Extending Pimcore Studio - plugin development guide and examples
- Studio UI SDK Overview - SDK architecture, module system, dependency injection, and component registry
See Also
- Configuration - override Pimcore constants (asset directory, temp directory, etc.)
- Parent Class for Objects - inject additional functionality into object classes