All dynamic web applications developed at eNTiDi are implemented by leveraging a framework web, typically Silverstripe. "Dynamic" means the user will be the ultimate owner of its own data: he will be able to add or remove pages, modify their content, insert images, upload or remove files and everything in-between. The interaction between the user and the web site is handled by the CMS: one of the main factor Silverstripe has been chosen is in fact its superior user interface: it is clean and usable by a regular user, leaving technical details and cruft outside of the interface, typically in the PHP code.
Initially a custom framework has been developed and used. TiP was working well but its front-end was less than optimal and there was no community around it, meaning that every new feature required to be manually coded from the ground up. After some year it became obvious there was no way to improve this situation, so TiP has been formally abandoned.
The experience acquired while developing a framework from scratch have been used to choose the correct framework in a jungle of PHP projects. These are the opinions used:
- do not take performances into consideration: PHP sucks anyway on the speed side;
- every framework is perfect to its loyal userbase, so take reviews into account only if technically relevants;
- try to avoid questionable opinions such as PHP is a template engine (it is not, by the way);
- programming patterns are implementation details, that is using MVC or OOP are not advantages;
- a CMS is the perfect test bench for a web framework.
These considerations were specific enough to have a clear winner. Far from being perfect (it is based on PHP after all), SilverStripe it is the less bad, and by far. Above all, its correct design (obvious design decision that none got right, such as PHP is for web developers, HTML/CSS is for web designers, back-end is for content editors and front-end is for the web users) resulted in an usable CMS front-end.
In the years, a series of open source modules and themes has been developed. They can considerable speed up the development of a Silverstripe based web site: check them out directly on GitHub.