home forums resources search newsjoinmembers: 6448
Hiveminds Network PHP Flash Java Ruby Windows Linux
Hiveminds | Sun, 2007-03-25 10:17  tags:

Recently I have had an opportunity to have a first hand look into many commercial content management systems created in PHP. While interviewing for jobs as a PHP developer several commercial software groups showed me the insides of their products. This was a very enlightning experience. There is large difference in the quality of commercial PHP content management systems and their open source counterparts. Proof of this difference can been seen in SilverStripe , a commercial content management that just recently went over to an open source BSD licensing scheme.

Open source vs. Commercial

If you take a look at the more popular CMS software like Joomla, Drupal and Typo3 you will see that they have a common failing. There is a problem with getting things fixed. Open source PHP projects tend to go with the phrases like "eat your own dog food" (using your own appication) and "scratch your own itch" ( making changes according to you own personal needs). These phrases bring to mind some of the unpleasantries surrounding open source. When I think of dog food I think of a nasty can of smelly paste that is not really fit for human consumption. Scratching your own itch brings up thoughts of fleas and parasites. You get the idea that some PHP open source projects are a bunch of savvy street mutts. This is not very far from the truth.

Commercial applications do not use such analogies and if they did the thoughts created by them would be more pleasant. To use the previous analogies, commercial content management systems tend to be pedigreed, groomed and well trained show dogs. These pampered dogs feed on top grade beef and other food that no human would complain about eating. There is no scratching involved because the systems either come with everything or have a commercial support group to provide a soothing solution to any itch.

So where does SilverStripe CMS come into the picture? SilverStripe is one of the best examples of how a previously commercial only CMS can become open source to the benefit of all. In other words how a pedigreed, trained attack dog is a better alternative to a mean junkyard dog that will do anything for food. First let's take a look at what SilverStripe CMS provides that you don't see in your typical PHP open source CMS project.

Support

Because SilverStripe is backed by a commercial entity that is dedicated to web developement there is variety of possibilities when it comes to getting support for the CMS. The typical community support is further complimented with commercial alternatives. The commercial support is not provided by a third party company that is "involved in the community" but a product distributed by the core creators of the CMS. This direct connection is one that makes SilverStripe a dream come true for both small and large businesses.

Documentation

Documentation is the most important part of an open source project or application. Documentation is what attracts users to a product. While in most cases the documentation is left up to the community at large to build and update this does present dangers. A project may not have enough people resources or interest to pull off getting usable documentation together. Many older CMS projects still suffer from a lack of deep documentation for developers and administrators. The key here is for the core developers to be involved in getting documentation done. This frequently does not happen when there is not a company that has dedicated personel for the job. In the case of SilverStripe they have made in known that if you ask for it then you will get it. They want the community to grow and be successful and documentation is the best assurance that this will happen.

User friendly and Developer friendly

Rare is the case that a CMS is both user-friendly and still provides a web developer with easy to use tools that do not require a minimal of a year to learn. The tendancy is that if it is one it is not the other. Two good examples of this are Drupal and Joomla. While developing for Drupal is all about the the coder. The user side of things is not at all pleasant. There is a constant struggle to improve on this but progress is slow. Even slower is the Joomla move to make third party developement of Joomla extensions easier. Joomla is probably in the top three for user friendliness but when it comes to being developer friendly they have many more months of work to do.

SilverStripe is a pleasant combination of both user friendliness and a an easy developer framework. Proof of this can be seen in how SilverStripe implements form building for developer usage. If you want further details on how to actually go about a building a site then take a look at this tutorial which describes how to do something that is very simple to do in SilverStripe and not so easy to do in other CMS software.

When it comes to making things pleasant for the end user you only have to take a look at the backend of SilverStripe to get a idea of how easy it is to run a website built on this CMS. You can find a demo of both the front and backend at silverstripe.com.

Content oriented websites

SilverStripe at first glance gives you the feeling that it is made for building content oriented websites. This is a good thing because the latest trend on the web is blogs and communitites. This trend leaves those that want to build business websites a bit confused. SilverStripe fills in the gap well with extendable and stable software. All the basics for a dynamic business are there with the possibilites of easily building an e-commerce or intranet.

Conclusion

After a telephone interview with Sigurd Magnusson I felt very comfortable about recommending SilverStripe to anyone building a commercial website. I immediatley adjusted my personal favorites list of content management systems to include SilverStripe. Sigurd and company have a very positive attitude to sharing their source code with the world. When I asked Sigurd the unavoidable question about profitablility and the effects of open source releasing the software the answer was that business has never been better. Their approach to open source is one that many non-commercial projects would do well to emulate. The attractive packaging, powerful code base and the fact that it is licensed under the BSD make SilverStripe CMS a perfect partner in any web endeavour.


Happy Publishing!

Hiveminds's picture
This article brought to you by the Hiveminds Magazine - Staff. Contact us if you want to post an article or announcement anonymously
 
a Visitor posted on: Sun, 2007-04-01 22:03.

The idea behind this CMS/Framework is not bad. From the user point of view, it offers an attractive cms interface, but if you are a developer things get a little bit messy. To start with, the bootrapper file (in this case main.php) doesn't open the php tag correctly, then includes files from everywhere (not very good use of the autoload function). Finally it includes the Core.php file, that is not a class, but has a bunch of functions.

So I can say, after looking at 2 files, that this is not an Object Oriented framework. Also the the coding standards are kind of weird, it doesn't follow Zend's coding standards.

Having said this, I have to give some credits to the people that created this CMS, because is open source and some ideas they presented are interesting.

a Visitor posted on: Tue, 2007-04-17 04:07.

SilverStripe makes use of object oriented concepts so extensively that it flat out doesn't work with PHP4. I don't think your faults with those two files prevent SilverStripe from being a good nor an object oriented framework. Many of them seem completely trival; using <? instead of <?php isn't a flaw. Additionally, main.php might include a bunch of files, but the primary logic is performed via two very quick OO lines of code!

$dir = new Director();
$dir->direct($url);

Finally, core.php is about 50 lines long, and so if it contains functions, its hardly offensive in an application with hundreds of PHP files, most of which contain only classes.

Instead of critiquing those two files, I suggest looking at the tutorials, which demonstrate how you are extending classes that are in the core of the system. It is this sort of activity that you are working with when developing SilverStripe websites, and hence you are very much working with an object oriented coding methodology.

If you have some suggestions on how to improve the system in terms of how developers use it to build their websites, the silverstripe core developers would be intereested in constructive suggestions in the silverstripe.com forum...

a Visitor posted on: Wed, 2007-09-05 04:51.

Silver Stripe looks promising, but I don't know if I agree with the comments about Drupal. The Drupal documentation is huge and very good.

The features in the tutorial that you linked to (enabling comments for articles) is available in Drupal also.

Drupal 5 has custom content types built in so there is no need to write code for it (try CCK and Views). It looks like you have to write code for the custom content types in Silver Stripe.

Silver Stripe looks promising though...

Bitrix Site manager - fast to create, easy to manage CMS Comparison Matrix
Put Your Site Here Developer Links
Silverlight Web Developers Silverlight Joomla! Content Management Systems PHP Adobe Flex
 

Newsletter

Get updates on Hiveminds services, articles and downloads by signing up for the newsletter.

Editor's choice

Some of the better articles, stories and tutorials found at Hiveminds.

Find more

Find more of Hiveminds articles, stories, tutorials and user comments by searching.




Picked links

Hand picked websites and articles from around the web that provide quality reading.