As a php learner, I have been experimenting with some of the smaller PHP CMS'. All CMS' that I have used employ a database abstraction layer.
Am I correct in assuming that this would be a characteristic of just about all PHP CMS'?
Thanks!
As a php learner, I have been experimenting with some of the smaller PHP CMS'. All CMS' that I have used employ a database abstraction layer.
Am I correct in assuming that this would be a characteristic of just about all PHP CMS'?
Thanks!
I think it's safe to say that most CMS' use a DAL, but there's probably some remote one you've never heard of that doesn't, so I wouldn't claim that all CMS' use one.
Yes, I would agree. The 2 major PHP CMS libraries (Drupal and Joomla) each have some form of database abstraction, although Drupal's is pretty slim. Joomla looks like it might have a little more to it than Drupal.
Well, all(or most) cars have 4 wheels. But it doesn't mean a 5 wheeler cannot be a car.
It makes sense for CMS to have data abstraction, it does not mean they MUST have.
The only thing inherently characteristic of a CMS is that it separates content from display. Where or how it stores that content is arbitrary. The mechanism for connecting to the data store is also of no consequence. What you might think of as a "traditional" database is common but by no means necessary - any data backing is a database of content - text files, XML, SimpleDb or Google App Engine, etc.
A database abstraction layer is a characteristic of almost any web based application.
This is commonly used to accomplish Separation of Concerns: http://en.wikipedia.org/wiki/Separation%5Fof%5Fconcerns
Not really. It's a characteristic of good software design. The rule of thumb is: "Program to an interface, not an implementation".
I'd recommend getting the hang of a good db layer and pushing those frustrations to the back of your mind. Good software design takes discipline!
Maybe you might like to read up on some design patterns and principles. It will save you a lot of trouble later on: http://en.wikipedia.org/wiki/Design_pattern
Good luck in your learnings!