I learned to build database driven websites from Kevin Yank’s book “Build your own database driven websites using php & mysql” and I have had good success building dynamic sites using what I’ve learned. To further my skills I’m about to begin Sitepoint’s “PHP Master” book.
But lately I’ve been considering learning a robust content management system (based on the research I’ve done I’m leaning towards Expression Engine) and I’m wondering what, if any, the benefits of a good CMS are over coding the PHP and Mysql from scratch. Maybe it’s just the learning curve but a new CMS seems like just as much work as writing the PHP and Mysql - which I don’t mind (truth be told I enjoy it).
Are there other benefits to the CMS besides not having to write the underlying code?
I tried Drupal and Joomla once but could not get the hang of them and working with someone elses code can be a pain as you have to do things the way they want.
If you change something within the CMS code and update the CMS later maybe for security reasons you have to alter the code again; as long as you remember what you did before and if that piece of code is the same.
I suppose if you are handing the site over to somebody who does not know what they are doing they could probably do less damage with a CMS.
There is also all the code to upload - how many of the options built into a CMS are you going to use? That is one reason I steer away from anything that uses the Smarty template engine as well.
The IT guy at work uses Wordpress ( is this a CMS? ) and he wanted to make a database of the members of our group with some bio. I can not remember how many people there were but he kept getting an error on the page and it turned out his database had too many people in it!
Thanks for the interesting points Rubble. Much appreciated. From what I gather, the interesting thing about Expression Engine - unlike some of the other CMS options, is that you don’t need a pre-built template. Supposedly you can use your own html/css and insert the tags necessary to use your markup as a template.
I’ve got a couple of site re-dos to do here at work and I’m trying to decide the best way to build for both me and the end users/content admins. Thanks again for the input.
Expression Engine looks interesting and I checked out their pricing page; a couple of items you have to pay extra for like the forum modual. Twice as expensive on the comercial package as the non comercial for probably the same code!
I suppose you need to buy a licence for every site ( not stated on the pricing page ) can your projects justify another $300 +tax on each comercial site?
I suppose if you get the hang of it you may save time after doing a couple of sites; although recycling your code from one site to another any way would save time.
Yes, you need to buy a license for every site and I’m sure you’re right that the commercial license is twice the price for the same code. In this (rare) instance it’s in the budget if I decide to go that way. That’s why I’m thinking it might be a good opportunity to learn something new.
I am not trying to put you off a CMS but they are things you need to think about - the sites I do are all very small and I could not justify the expense of something like that.
It is always good to learn something new - I have learnt very little new for a couple of years now
With a cms, you will always be restricted in terms of what the developers of the system allow you to do with it. Imagine working for a client who wants a shopping cart on his site. You install a shopping card module and all seems fine, but then he decides he wants the shopping cart to work a slightly different way to how it worked when you installed it. Suddenly you either have to find another shopping cart that works the way he wants, or you need to go through the plugin code to change it - which will likely be quite hard, because you’d need to understand both how plugins work in that particular CMS, and also how the specific plugin itself was coded and works.
The short answer is that if you want to have real control over how the system works and what it does, you need to learn how to code. If you just want to use plugins and try to mix and match, but accept that there will always be limits to what you can do, then go down the CMS route.
CMS is easier for edit, update and publish content. But when you are talking about PHP with CMS, then it’s worst thing to handle code that edited or developed by some one. It’s very easier to use CMS, but to alter code is most difficult for someone if he/she has not knowledge of its structure.
With CMS, you can combined raw data of HTML under one script. Either PHP is base or other language, but it always run smoothly on a base platform.
I agree with your assessment and would like to take it a step further.
Most CMSes are stable, so you don’t have to worry about bugs/security implications (as the CMS will handle it for you through regular updates)
CMSes are great for figuring out how someone else approached a business need (a shopping cart, content handling, etc)
[LIST]
Review several CMSes and figure out what they are good at and focus on those parts to see how you might be able to implement that feature as well.
[/LIST]
CMSes can be difficult to update and may not hold your updates well between upgrades (which is why I always recommend trying to write a plugin that does the change you want, versus altering the CMS code; granted sometimes this isn’t possible)
Keep in mind that writing your own will take some time, so your first project will set you back in cost, but you will make up for it on future projects.