PHP CMS components
I am exploring how CMS's in PHP work. I am talking about full-powered, fully developed CMS's like Drupal, Wordpress, and Joomla. What are the main components and systems that are incorporated into something like this.
For example; I know you will need a page loader to handle all page requests (direct all requests to index.php using the .htaccess file), you will need a database class, a templating class, and a hook system to provide user extendability. What else am I missing?
(Also, is there a book that explains the working components of a full-fledged CMS?)
I'd second starting with something like Wordpress (not a real CMS I know) to get a feel for the sort of things you want your one to do. From there you could move up to Drupal or if you still feel the need to, look into building one in a framework (Codeigniter is a good one to start with).
Personally after a few years of rebuilding a CMS for each client I wish I'd got into Drupal quicker.
Google MVC in PHP. There are plenty of frameworks off which to build such a tool. Although, I beg to differ on Wordpress. Wordpress is a blogging system, not what I would call a "fully-fleged" CMS.
I found this book.
And I would strongly recommend this book on building a CMS with the Zend Framework.
Another solid CMS to consider is Concrete5.
Just a quick shoutout for ez Publish. It is a rock solid PHP based CMS, some of the best code i've seen.