Like any CMS / CMF, MODX has both followers and opponents. Purely subjective, this can not be avoided (everyone has their own habits, attitudes, needs, etc.).
But are there any objective reasons? Yes, definitely. And in my opinion one of the most serious is its own MODX parser.
MODX has a number of its own registered tags , using which even a novice programmer who knows only HTML and perhaps does not know PHP at all, can put together a fairly sane website, since there are a fairly large number of ready-made components that are installed in just two clicks. For example, in order to get on your menu page, you just need to register [[Wayfinder? StartId = `0`]]
')
Immediately a small video demo with a solution for those who are too lazy to read.
So for someone this MODX-parser is salvation, and for someone it's a headache. An experienced PHP programmer who pretty confidently writes his code in NotePad ++, and knowing a couple of hundreds of PHP functions, may simply get lost in development on MODX. The problem is that we want or not, but we must write at least one MODX tag in the template. We cannot take and write a clean PHP code to the MODX template and load our executable files, and then send this whole thing to our favorite template engine. (I want to immediately make a reservation for those who are not familiar with MODX and who want to kick me a minus because I want to insert logic into the template: MODX templates are not exactly templates. Because of the tight integration of the MODX parser, MODX the templates are designed for the fact that MODX tags will be written in them, which will already call the necessary objects and all the logic will be worked out there. I will not go into the jungle now, but yes, this is not cool.).
So, not only are there such imperfections, the problem still arises in the fact that even an experienced programmer has to learn a new parser, its rules, the caching system (and there it is not at all simple), etc. etc.
But personally, I, a longtime fan of MODX, most likely will never get off of it, since the opportunities it gives, the flexibility of the admin panel, the excellent access control system and much more, makes it put up with such drawbacks. And although I have long worked for me some of my development methodologies for MODX, just the day before yesterday I came up with a feature that can make life much easier, namely PHP templates for MODX.
What it is? This is a new type of resources for MODX, for which if you specify a static template, then you can write pure PHP code to this template. What does this allow? This allows not only not to think about the PHP parser (and not to study it), but also to use third-party templating tools in its development, such as Smarty, Twig, etc.
The idea has already been supported at the very top of MODX, so it’s completely possible that MODX will start to evolve even more towards minimizing the use of the internal parser and wider support for third-party popular template engines.