Designing a basic CMS

Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.

Moderator: General Moderators

Designing a basic CMS

Postby recci » Thu Jul 07, 2011 4:21 pm

Hi

I’m designing my own basic cms to use as a starting point for sites I will be developing. This is just to save me time in the long run. Its not going to be a fully featured cms like joomla or whatever just a way of managing content pages, users and menus, kind of like my own custom backend to any sites that Ill be creating.

I’m also doing this as a learning exercise as I’m still a fairly inexperienced programmer.

Does anybody have any advice on how to structure the architecture? What I’m looking for is not code examples but examples of how the logic of categorising content should work such as a database scheme or flow charts or uml diagrams showing the underlying design of a cms.

Does anybody have any links or books they could point me to? Iv searched but cant find much thats fairly comprehensive.
recci
Forum Commoner
 
Posts: 36
Joined: Tue Jul 29, 2008 10:01 pm

Re: Designing a basic CMS

Postby social_experiment » Thu Jul 07, 2011 4:34 pm

A good jump off point is to put down (either on paper or digital format) everything the CMS is supposed to do. If you have that figured out, designing the database, creating the code will be a lot easier if you know what you are working towards.

Other CMS can be a source of information as well. Look at how joomla, drupal, wordpress (etc) databases. It's a good place because these systems are established so looking at their setups might give you a few ideas on what to do with your own CMS. Some php books aimed at beginners have chapters dedicated to building simple things : login systems, basic shopping carts, message boards etc. Look for that type of book to give advice and guidance.

Some books you might find interesting:

Peachpit Press PHP 6 and MySql 5 by Larry Ullman
O'Reilly Head first PHP & MySql by Lynn Beighley & Michael Morrison

Hth.
“Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.” - Mosher’s Law of Software Engineering
User avatar
social_experiment
DevNet Master
 
Posts: 2765
Joined: Sun Feb 15, 2009 12:08 pm
Location: .za

Re: Designing a basic CMS

Postby coolesting » Thu Jul 07, 2011 10:05 pm

Looking the drupal, not joomla, wordpress, they are different in design of project structure and refactoring. The drupal is the better than others, maybe you learning and get a good idea from this web system , you know, actually, it is a CMF, not just CMS, what dose it mean CMF, that is CMS and FW. You can read the official documentation that tells how to develop a drupal and how to refactor a function in some situation frequently, in other word, it teaches you how to design, why you need to choose the drupal in the guide documentation it says.

But, all we know, the drupal is slow because it is very fixable and strongly in every function of application. You maybe just need some function as the portion of drupal, not all of them,

You can follow its workflow of system and design your CMS what you need the function in.
Such as you said, how to categorising by tag of post, designing a database scheme, invoking a template of view, searching contents in a CMS, etc
Perhaps you learn its principle, then design a weighlight excellent CMS of your.

Good luck to you.
User avatar
coolesting
Forum Newbie
 
Posts: 13
Joined: Thu Sep 02, 2010 12:36 am

Re: Designing a basic CMS

Postby alex.barylski » Fri Jul 08, 2011 7:49 am

Great advice given above, although I wouldn't say Drupal is better than Joomla, that is subjective to a developers experience, requirements and the end-users involved in managing a site. Drupal is not work the lazy or non-tech savvy. WordPress is a far better choice if user simplicity is a must. Joomla has the most accurate MVC interpretation of the three (Joomla, WordPress, Drupal). Each are extensible, but Joomla uses a mini-application/componentized approach, whereas Drupal and WordPress implement most plugins as a series of hooks - resulting is more reusability of existing modules.

Study each of the three architectures, file structures, API - you will learn more from them than any of us.

CMF different from a CMS only in that a CMF provide a clear API and/or architecture to extend the base system. Each of the three provide this, so again, start studying the API.

There are so many ways you can implement a CMS, right from a simple page editing type system to a complex composite layout such as Drupal allows using blocks. The former is easier to understand, implement and use as a end-user, but you quickly hit road blocks and have to revert to" hacks" to circumvent this simpler architecture.

Cheers,
Alex
alex.barylski
DevNet Evangelist
 
Posts: 6259
Joined: Tue Dec 21, 2004 6:00 pm
Location: Winnipeg

Re: Designing a basic CMS

Postby Jenk » Thu Jul 14, 2011 4:57 am

social_experiment wrote:A good jump off point is to put down (either on paper or digital format) everything the CMS is supposed to do.
Even better if you can do that in the form of executable specs/tests :)
User avatar
Jenk
DevNet Master
 
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Re: Designing a basic CMS

Postby social_experiment » Thu Jul 14, 2011 7:59 am

Jenk wrote:in the form of executable specs/tests

Like unit testing?
“Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.” - Mosher’s Law of Software Engineering
User avatar
social_experiment
DevNet Master
 
Posts: 2765
Joined: Sun Feb 15, 2009 12:08 pm
Location: .za

Re: Designing a basic CMS

Postby Jenk » Thu Jul 14, 2011 8:54 am

That's one example, but probably too low level to consider at the specifying stage. :)

They could be acceptance tests. :)
User avatar
Jenk
DevNet Master
 
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Re: Designing a basic CMS

Postby srikanth03565 » Sun Jul 17, 2011 7:39 am

Hi if you write any of skeleton share it here so that we can discuses further
srikanth03565
Forum Newbie
 
Posts: 10
Joined: Sat Jul 16, 2011 12:13 am


Return to PHP - Theory and Design

Who is online

Users browsing this forum: No registered users and 5 guests