{page 'name'} builds another page of the same application in a nested engine pass and puts its output where the tag stands. It is not a second request: the page's PHP runs in this request, its template renders, and the result is the tag's value. The page is named from the application root, as in a URL, and resolved as the router resolves one - a directory means its index, a .html template counts, and a clean URL route binds its segments, so {page 'products/42'} renders products/[id].pad with $id set to 42.

By default the page renders bare (include is TRUE): the _inits.pad and _exits.pad wrappers are not added a second time. The page's directory guards still decide - a _guard.php that refuses makes the tag render as nothing instead of refusing the whole request. A page that does not exist is an error under the strict check; without it the tag is empty and the rest of the page lives.

How isolated the page is

A plain {page} shares the request: it reads the variables set before it, and what its PHP creates stays behind for the rest of the page. Four options change that, the same four {code} takes:

Other applications

With app='other' the page belongs to another application, with its own configuration, _lib and database, so it cannot be built here: it is fetched over HTTP. By default the browser fetches it, as {ajax} does; ajax=false has the server fetch it and insert its body. For a page of this application fetched as a real second request, see {get}.