Development Tools
Pimcore ships a set of developer-facing tools and APIs that support common application development tasks.
Generic Execution Engine
Asynchronous job execution via Symfony Messenger. Define multi-step jobs, track their state, and manage runs (start, cancel, restart) with built-in logging and error handling.
Logging
Pimcore log types (<env>-debug.log, <env>-error.log, usage.log, redirect.log),
custom log channels via Monolog, and the Application Logger bundle
for database-backed log entries with email notifications.
Security and Authentication
Symfony Security Component integration for frontend authentication.
Configure firewalls, user providers backed by Pimcore data objects,
and password hashing with the PasswordFieldHasher.
Cloning Elements
Clone and copy documents, assets, and data objects programmatically.
Use Service::cloneMe() for in-memory copies or copyAsChild() for persistent duplicates
with automatic key generation.
Email Framework
Send emails with Pimcore\Mail, use Document Email templates with Twig expressions,
configure transports, and leverage debug mode to redirect all outgoing mail
to test recipients.
UUID Support
Assign and retrieve universally unique identifiers for documents, assets, and data objects via the UUID bundle.
Settings Store
A key-value store API for persisting bundle and application settings in the Pimcore database, with optional scoping.
Migrations
Doctrine Migrations integration with Pimcore's --prefix option
for filtering migrations by namespace (core, bundle, or project).
Maintenance Mode
Restrict access to the application during maintenance. Only the session that activated maintenance mode retains access; all other users see a configurable maintenance page.
Static Helpers
Utility classes for common operations: Pimcore\Tool (validation, hostnames, mail),
Element\Service (path lookups, element types, folder creation),
and Document\Service (rendering documents outside views).