CMSes: an update

My previous post was typed in a bit of a hurry (was it that obvious?) and could probably have done with a few more sarcasm tags, though I think I still have a valid, if small, point. It surprised me that these well-maintained projects seem to be content to run with what I would consider to be errors. Though they do run, otherwise nobody would be using them. For what it's worth, SilverStripe and I have made up and it's all going swimmingly at present. Thanks to everyone who commented with recommendations; I'll try and follow some of them up when I get time.

One comment did ask me to define what I meant when I refer to a "lightweight" CMS -- basically, I was looking for something that will allow me to create a hierarchy of pages that consist roughly of a title and content. Nothing fancy. I don't need multiple content types, complex user management, discussion forums, built-in wikis, etc. It's the sort of thing I could have coded up in a couple of days using any number of frameworks, but I figured there'd be something off the shelf that'd do what I was after.

Another commenter questioned why I cared about coding standards warnings seemingly more than avoiding SQL injection and XSS and CSRF protection -- I don't, those are absolute hard requirements for any application. I'd put avoiding the coding standards warnings somewhere above "nice to have", but those warnings are indications that something is being done in a way which is either less than ideal (such as using non-static methods in a static context, a la Concrete5), or deprecated (such as using the ereg functions).

My next post shall try and be a little more constructive, as I release some code.

Where are all the decent PHP CMSes?

I've been recently asked to check out some CMSes for someone, and try to find a recommendation. What I've been finding hasn't really been encouraging. Out of the several CMSes I've tried, they've all failed for various reasons. I admit that I might be looking at this from a slightly different perspective than most - that of admining it and coding against it, rather than as a user - but it's still rather disappointing.

  • Silverstripe is what I used first - but the forms (including the login to the admin) kept failing to render. In the end, I got sick of debugging it and started my hunt.
  • Next up was Concrete5, which I heard mentioned recently. There were one hundred and fifty-five strict warnings in the front page of the installer. Bye bye.
  • Next, CMS Made Simple. Its installer wanted E_STRICT and E_DEPRECATED removed from error reporting. At this point some folk might have continued; but that was enough for me not to consider it. I didn't have enough confidence in the code that I wanted to continue. It lost more points for the tarball not extracting into a subdirectory, which resulted in my document root being filled with nonsense.
  • Joomla!... well, my last experience of it wasn't pleasant - I couldn't work out how the code was structured. It's also overkill for the requirements of this site.
  • I would love to go for Habari, but the site isn't a blog, so it doesn't really fit the use case. It's still the top of the list just now, though.
  • I could do what everyone else does and run Wordpress - but, again, the site isn't a blog, and I'd rather try something different.

I didn't consider Drupal or eZ Publish, which again I believed to be massive overkill for what is required of the site. What's going on? This is what PHP is supposed to be good at. Where are the simple, lightweight CMSes with modern code? Notices, strict and deprecation warnings should be considered errors when developing - this doesn't seem to be the case with many of the above projects.

So, that's what I've found. I now don my asbestos suit.

EuroWinPHP contest

This year I've decided to enter the EuroWinPHP contest, as I figured it might be interesting to learn a bit more about how PHP works on Windows. I originally started using it there, back in around 2002, running early versions of Apache 1.3 and PHP 4.1 on Windows 98 and 2000. These days, though, I'm running IIS7 and PHP 5.3.2, and have a bit more knowledge of how the bits fit together, though since I've been running Linux for the last 5 years I'm a little out of touch.

The project I've opted to do is something I've been thinking about for a little while, but not got around to developing until now. It's named GarnetCMS, and the idea is to create a CMS that uses the features of PHP 5.3, such as closures, and based around a signal/slot mechanism. The idea is to initially develop it to use NoSQL datastores, and I intend to create back ends for Microsoft Azure and MongoDB at first. If I do things correctly, though, adding a traditional RDBMS back end later on should be relatively simple.

Development-wise, I'm trying out Mercurial for version control, and using Bitbucket to store the code - the project will be on there at http://bitbucket.org/mgdm/garnet-cms/ once it gets going. I'm intending to try out Komodo Edit, because while I do love GVim on Windows it doesn't quite fit with the "complete change" I'm going for with most other things! TortoiseHg seems quite nice so far, and I've managed to get IIS up and running, so now all I need to do is get coding. I'm quite looking forward to seeing how it turns out.

 1

About

User