Blog

Why a PHP framework

Why not Ruby or Node (my favorites)? Well. They are much more like programming languages, not a mixture of text setting markup language and a programming language. Still. There are 2 big reasons for PHP:

  • cheap hosting (clients often ask for that)
  • clients often require me to deploy the project on their existing web-space which in 90% is a quite outdated shared-hosting or just a php-enabled web space.

I still prefer Ruby on Rails over PHP, as it feels more like a programming language, but, I have to admit, PHP is catching up. With frameworks like laravel, symfony or slim.

My expectations from a PHP framework

  • Good code foundation, not just php hacked together I want to be able to debug to the console and to a seperate area in the page (not just in the middle of the HTML code rendering)
  • Extensible through plugins
  • Good documentation
  • Good age of the project (not too old, not too fresh)
  • templating with twig (mixing php and html feels like hacking in the old days to me)
  • API functionalities, so I can create custom actions for special needs of my clients

Winners

Whereas I found some really really interesting tools, like TypesetterCMS and CraftCMS, I got stuck with two major ones: Grav and octoberCMS. They seem to less for the editor, more for the programmer. This seems like a big disatvantage, in the end everything is done and has to be used by the client. But those two CMS have a solid code base (laravel and symfony) and are very extensible (and I do not mean extensible by hacking PHP). They have very clear structures. And that's what I chose. I'm going to append the missing functionality like inline editing, WYSIWYG and image processing for my clients and will be spending a little more time in the beginning, but will enjoy every bug, I have to trace...

Grav Admin Dashboard

I ended up with Grav just because the admin interface seemed a little more evolved than the one in octbercms. Also the possibility to create uesr inputs in the backend throug blueprint-yaml files attracted my attention.