27

Is there any way to achieve the master page concept of ASP.NET in PHP?

Vijay
  • 2,133
  • 4
  • 27
  • 40

7 Answers7

20

Of course it's possible. Have a look here. It shows a basic way of doing it, which of course, you can extend. Good luck!

kowsheek
  • 542
  • 3
  • 20
5

You could use a template engine like Smarty:

Although Smarty is known as a "Template Engine", it would be more accurately described as a "Template/Presentation Framework." That is, it provides the programmer and template designer with a wealth of tools to automate tasks commonly dealt with at the presentation layer of an application.

Andrew Hare
  • 344,730
  • 71
  • 640
  • 635
5

You can use auto_prepend_file and auto_append_file together with output buffering.

troelskn
  • 115,121
  • 27
  • 131
  • 155
  • 1
    I like output buffering as an easy, effective solution. Here's a guide that shows how to approximate master pages using output buffering - http://spinningtheweb.blogspot.com/2006/07/approximating-master-pages-in-php.html – Dan Jan 25 '11 at 07:47
  • Definitely the best answer (with addition from @Dan :) ) – dav_i Oct 14 '13 at 21:44
5

I made a simple proof-of-concept for a asp-like master pages in PHP. You can get it here: http://code.google.com/p/phpmasterpages/

4

As other said, the way to go is to use a template engine. My preference goes to the Zend Framework, which is a bit more than just templates ;), but has a nice implementation of a layout with Zend_Layout that is very close to Master Pages in ASP.Net.

Check the quickstart guide to have an idea of how this works, and have a look at the full doc to see the possibilities offered by the framework. Plus, using the framework gives you a nice MVC architecture and SEO-friends rewritten URLs...

Wookai
  • 20,883
  • 16
  • 73
  • 86
0

The best and easy way to do is using include as other said. Create a header.php and footer.php and include them in every page you want to use. The approach is bit different compare to asp.net master pages but is as powerful as master pages

Raj Thakkar
  • 77
  • 1
  • 12
0

Maybe just use include() since the variables in both file are in the same scope. Also ob_start() can record the output to the buffer so that the html codes can output later.

micahli123
  • 460
  • 1
  • 7
  • 10