People at Pixel & Tronic, one of most popular add-ons vendor for ExpressionEngine (EE) CMS, has released their new Yii’s based CMS. For me it’s quite surprised as EE is built with CodeIgniter.
Oh my… my opinion is going to be a bit lengthy. I’m not impressed with CraftCMS and I think it’s ridiculous they are charging for this. Having worked with ExpressionEngine previously, these guys made some popular and highly rated addons used by the EE community. But I really disliked their addons and thought they were robbing users because most users rate it based on cosmetics plus functionality and not care about how well it’s coded, how well it scales, or what horrible things it does with getting and processing data. A lot of bad practice. Their ideas were good with Matrix, Playa, Assets, Wygwam. But the execution on other hand is very questionable. Their addons were notoriously known for tacking on hundreds of queries to get data. Some things were so heavy on the front-end, it would affect load time immensely. They soon updated their addons with a ton of AJAX to make things look nicer but that resulted in things getting more and more slow. Then when you try to contact their support team, they have some woman who knows minimal knowledge to troubleshoot your issues when it’s obviously a code problem. But if you were lucky to get a reply from the devs, they would actually be more helpful. Having worked with their previous products, I’m not really excited about this one nor will I ever understand how they can charge for something like this. Just my 2 cents.
The free version cant be used for anything - wrong product strategy IMO. However, as I’ve built FlexicaCMS, long time before other CMS come up recently, i’ve chance to read thru the interview and I am interested in some development ideas it has.
I share with the author idea about service layer / thin controller but I’d take it further by not binding the service provider instance with app(). It would be Business::getService(Entries) or Business::entryService()->save().
Also, as you are going with a service layer, i think the ActiveRecord should be replace by solely by ORM pattern. If not, you are in trouble (or your CRM developers) with having 2 places to decide where a business "function" or "service" go to, either the model class or the service class.