====== Centralized Request Logic ====== Often in a web application, logic is duplicated among several types of requests. Three patterns are used to consolidate this logic into a central location: * [[Front Controller]] * [[Intercepting Filter]] * [[Page Controller]] with common ancestor class All three patterns interoperate well. A [[Front Controller]] and [[Page Controller]] base classes are fairly interchangable and mostly used for implementing application specific logic. Intercepting filters are used more for de-coupled request processing logic. The type of logic that benefits from centralization include: * Logging and Auditing * Debugging * Security / Authorization * [[php:HTTP Header Manipulation]] * Response compression