Introducing the Facade Pattern in PHP 5 - Seeing the facade pattern in action
(Page 5 of 5 )
As I said before, below I developed a comprehensive example that demonstrates how the facade pattern can be used for compressing the HTTP output of a specific web page, in this case by using all the classes that were created previously. Please take a look at the following code sample:
// example using 'CompressContentFacade' class
try{
// instantiate 'WebPage' object
$webPage=new WebPage('This is the sample title for the
compressed web page','keyword 1,keyword 2,keyword 3');
// create web page header section
$webPage->makeHeader();
// create web page body section
$webPage->makeBody('This is a sample content for the
compressed web page');
// create web page footer section
$webPage->makeFooter();
// remove new lines and compress web page by using
// 'CompressContentFacade' class
$compressedWebPage=CompressContentFacade::stripContent
($webPage->getXHTML());
// display compressed web page
echo $compressedWebPage;
}
catch(Exception $e){
echo $e->getMessage();
exit();
}
In the above example, you can see that I first instantiated a new “WebPage” object, then generated the different sections that comprise a sample web document, and finally used the “CompressContentFacade” class to compress the respective HTTP output before sending it straight to the browser.
Do you see how applying the facade pattern with PHP 5 was much simpler that you might have thought? I bet you do!
Final thoughts
Finally, we’ve come to the end of this tutorial. In this first part of the series, I introduced the key points for how to implement the facade pattern with PHP 5 with some illustrative examples.
However, this isn’t the end of this educational journey. In the last installment, I’ll teach you how to use a facade class in conjunction with a file processing application. You won’t want to miss it!
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |