In Magento you will find that there are a range of structures to consider, and having a grasp of these makes life a whole lot easier. Here is a run down:
These various Magento structural elements are used in their own unique situations, the roles are loosely defined as follows.
Blocks, Layouts and Templates are used in page appearance and the way that the browser will render the data on the page. A visible page on the site will be have a structure based on the a layout XML file that positions Blocks (essentially PHP files) into locations based on the Template files markup. At this point that may sound like gibberish, however the individual element definitions should provide greater insight.
Blocks handle parts of logic.
Templates mix php and HTML.
Layouts control the position of blocks with XML.
Controllers and Observers provide methods of controlling page behaviour in their own way. A controller is used to