Pimcore

Pimcore is a CMS (Content Management System) software. It is just like WordPress, Drupal, Joomla, etc. But of course, it has a difference.

To start with Pimcore, you need to develop it first. It is not plug-and-play. That is the difference. It is in MVC (Model-View-Controller) architecture.

It is built in PHP programming language. It is just like a framework. But, you already have the admin panel, and you can extend its functionality.

The difference of MVC of Pimcore is, you need to build the model from the admin panel, it is called Objects.

  1. Login to your admin panel. Eg: www.example.local/admin.
  2. Go to Settings > Data Objects > Classes.

More information about its data types can be found here.

If your data type is about Quantity Value, you should define the units first. Go to Settings > Data Objects > Quantity Value.

All Objects that you have made will generate some classes. They are in var > classes > DataObject. If you found none but you think that you already made some, just run this command bin/console pimcore:deployment:classes-rebuild. You can type bin/console to see all commands available.

For custom routes, if you want to make some custom endpoint, just go to Settings > Static Routes. There is a Pattern field for Regex (Regular Expression). More information about Custom Routes.

Documents and Static Routes are running by Controller. If you think they don't work properly, such as View could not be loaded, try to clear the cache, go to Settings > Cache > All Caches (Symfony + Data), or could be just Data Cache.

If you want to make custom tables in the database, you could do it in Migrations. You could run some raw SQL there.

Pimcore is awesome. Even if it has a small community, but it is a great software. The admin panel is easy to use, come with drag-and-drop. Easy to develop.

Sadly the latest version of Pimcore is still running on PHP 7.1, same with Magento. While the newest one is PHP 7.3 and WordPress already running on it.

I knew that there is a lot of areas that I didn't cover here. Here is just a little of my best practices. Hope could help you. Maybe I will update this article later.