Anthony Ferrara has posted an introduction to the concept of an N-tier architecture - a method for planning your application so that there's a separation of concerns between multiple layers, each handling their own specialty.

If you've been following me for a while, you've likely heard me use the term "N-Tier Architecture" before. Today's question comes from Arno. He basically asked "What is this N-Tier Architecture thing you keep talking about?"... So, to answer his question, a N-Tier Architecture is one that uses more than one tier. Of course there's more to it than that...

He talks about the idea of a "tier" and how, despite it being somewhat subjective depending on the application and the person talking, all agree that it's a separation in the structure of your app. He shows some common setups for a PHP-based application and explains the usefulness of a tiered architecture. He also includes a more real example that involves multiple languages and data sources and explains some of the downsides to the tiered architecture approach.