
Ivan introduces Pimcore, a Symfony-based platform, and shares his journey from Java to PHP frameworks, highlighting UI modeling and a practical blog project with server setup and Git.
Learn how to install Pimcore via Docker, choosing between the demo and skeleton versions, set up docker-compose, and access the Pimcore admin at local host port 8080 with admin credentials.
Explore Pimcore documents basics by creating content pages, adding area bricks and galleries, configuring SEO, navigation, properties, versions, and email snippets to build dynamic, structured pages.
Explore pimcore data objects and modeling, using a graphical interface to define classes and generate php code for structured, localized data with field collections for complex, repeatable content.
Learn Pimcore system settings to customize the admin and login visuals, manage languages, set the main domain and default error page, and control versions for documents, data objects, and assets.
Configure Pimcore website settings to manage logo assets, reCaptcha keys, locale and Google Maps API keys, and objects like tax class and fallback filter, accessible in controllers and twig templates.
Learn to manage Pimcore admin and shared translations, create keys, switch languages, and render translations in twig templates or controllers for frontend and backend.
Learn how to manage pimcore access by creating users and roles, assigning perspectives and custom views, and applying custom layouts to control object visibility, permissions, and workflows.
Configure predefined document types in Pimcore via settings, create a document type with a default controller and template, and add inputs like headline and image, using area blocks for layouts.
Explore how Pimcore manages quantity values across settings and data objects. Define units, conversion factors, and offsets; configure a quantity value converter service; and perform in-code conversions.
Learn to create and configure Pimcore classification stores to enrich product data with motherboard specifications (chipset, socket, format, memory type), define groups and keys, and display on the frontend.
Explore Pimcore system info and tools to view php info and memory and opcache, run sql commands, view tables, check table structures, and edit files directly.
Learn to use the Pimcore recycle bin to restore deleted objects, folders, assets, and documents, view who deleted them and when, and permanently delete or flush the bin.
Compare objects in Pimcore using the tools to set a source and target, view fields, transfer or mirror data, and save or revert; note classification stores aren't supported.
Learn to enable and manage Pimcore notifications, assign recipients, and send titled messages with optional attachments while monitoring delivery and opening related objects in the admin interface.
Explore Pimcore area blocks and bricks as a dynamic toolkit for building pages, enabling editable sliders, assets, and custom bricks through a structured extension workflow.
Course showcase (What to expect)
Create blog post category and blog post tag classes, name them in singular form, and build a blog post object to model posts as objects; reuse the structure with copy-paste.
Model a Pimcore blog post class with a tabbed region layout, including title, short description, content, date, posted by, image, tags, categories, SEO data, related posts, and ad panel.
Install and configure webpack encore to manage css and js, install and integrate Bootstrap, Font Awesome, jQuery, and Sass, create assets and config files, and enable prod and dev workflows.
Create a dynamic Pimcore blog listing page by adding twig templates, a page-specific blog listing script, and Select2 filters with pagination and hidden sort by and per-page fields.
Create blog single page by adding show.html.twig in the blog folder, copying from index, removing entry points, and adding an SEO block to pull metadata from the blog post object.
Define a gallery carousel area brick in Pimcore, create its areas gallery carousel template and twig view, and implement a dynamic, editable carousel with slides, previews, and thumbnails.
Learn to build data mappers in PHP to format blog post data for the frontend, including an abstract mapper and a blog posts mapper mapping id, image, title, and date.
Create a latest blog posts area brick using the gallery carousel approach to list three newest posts by date, rendered via a blog card twig partial with thumbnails.
Set up a dynamic footer with Pimcore blocks and a socials iterator, enabling editable social links and icons to render html from Pimcore inputs.
Create a blog post listing query builder that extends an abstract listing query builder, joining posts with relations, tags, and categories, enabling search and date-based sorting.
Create a blog post repository in Pimcore with find and paginate methods that fetch by id and return paginated results using a blog post listing query builder and knp paginator.
Create a blog post category repository in Pimcore, with an all method returning an array of categories sorted by name using the blog post category data object and listing class.
Create a dedicated blog post show data mapper, fetch the user who posted, seo fields, and related posts, and wire it through the blog controller show action.
Automate blog seo data with Pimcore events by using the data object pre update trigger to fill og url, canonical url, seo title, and seo description while preserving existing values.
Create a contact form by building a Symfony form type and wiring it to a new Pimcore contact page, including email, name, and message fields with validation.
Configure and test email sending for the Pimcore contact form by setting up env variables and mailer dsn, using Mailtrap or SMTP, and handling form submission, validation, and email templates.
Create and customize a 404 error page in Pimcore, configure a dedicated template, hide it from navigation, set production mode, and prepare for a site-wide sitemap in the upcoming steps.
Learn how to generate Pimcore sitemaps using the presta sitemap bundle. Create a blog post sitemap generator and an image processor, and prepare production assets with npm run build.
Push your Pimcore project to GitLab by creating a private repository, initializing the repo, adding origin, staging and committing, and pushing to master, optionally using an SSH key.
Learn how to create a Hetzner server for hosting, select an Ubuntu image, configure the server and SSH key, and access the server via SSH to prepare for Laravel Forge.
Configure a Pimcore project on a Laravel Forge server by creating a custom VPS with Hetzner, setting up DNS, applying an NGINX template, cloning the repo, and installing Pimcore.
Export and import the Pimcore database and assets using scp and mysql, transfer assets and versions, configure Forge server, and set up cron jobs and sitemap generation.
The course contains a few hours of free videos introducing you to the Pimcore platform, where I will show you some of the features it provides as well as how to use them.
In the course you will learn how to setup Pimcore, create a project (Blog), optimize and prepare it for production, how to purchase and setup a server, how to deploy your project on the server as well as how to manage it via Git.
The project creation part of the course shows real world examples and tips when developing your web application using Pimcore.
I'd highly recommend you go through the free content before starting with the Blog creation part of the course if you have no prior experience using Pimcore.
If you have prior Pimcore knowledge this course will only improve it and teach you some good practices when working on a project.
It is recommended that you have intermediate PHP knowledge and experience using PHP frameworks such as Symfony and/or Laravel.
Feel free to leave a comment under the course or message me through Udemy if you have any questions regarding the course. I'm here to help you on your journey of becoming a Pimcore developer!