Working with Front Controllers
Perch is reasonably well namespaced and so can be integrated with most PHP frameworks without too much trouble. When using Perch with a Front Controller pattern (as utilised by most MVC frameworks), a downside is that Perch sees every page as the same script. Knowledge of its environment is lost.
To help address this, we’ve provided a mechanism for telling Perch which page it is on. The set_page()
method of the static PerchSystem
class can be called as below, after the Perch runtime has been included and before any content is requested.
PerchSystem::set_page('/products/fish-cakes/index.php');
As Perch is used to receiving full paths (including a filename and extension) from the web server, be sure to set a filename for the best results.
Some examples:
PerchSystem::set_page('/index.php');
PerchSystem::set_page('/products/index.php');
PerchSystem::set_page('/products/widgets.php');
PerchSystem::set_page('/about/founders/dave.php');
Getting the page path
If you need to see what path Perch thinks the page is, you can use
get_page()
$page = PerchSystem::get_page();