dev-master
9999999-devFast and simple view inheritance and templating.
MIT
The Requires
- php >=5.3
by Chris Hayes
templating template view view inheritance
Fast and simple view inheritance and templating.
Scenic View is a tiny library that provides view and template inheritance. The syntax is straight PHP but is very clean and expressive., (*1)
The following examples use PHP short syntax (to provide cleaner views) which is fine
if you have control over your own server. NOTE: you should definitely use <?php ?>
if you are planning to distribute your code or do not have admin access to your server., (*2)
$view = new Scenic\View('path/to/views'); echo $view->render('index.php', array('title' => 'Welcome', 'name' => 'Chris'));
Create a layout (template) file that other files will extend. The $show()
method displays
a section of content that's defined by a child view extending it., (*3)
<html> <head> <title><?= $title ?></title> </head> <body> <? $show('content') ?> </body> </html>
Create your view that extends the layout and provides the content for the section., (*4)
$extends('template.php') ?> $section('content') ?>Welcome, = $name ?>
$end() ?>
What if you want to provide content in the parent, but extend that in the child? You can!, (*5)
Define a section in the template., (*6)
<html> <head> <title><?= $title ?></title> </head> <body> <? $section('content') ?> <h1>Welcome, <?= $name ?></h1> <? $end() ?> </body> </html>
Use the @parent
key in the view to specify where you want the parent content to appear., (*7)
$extends('template.php') ?> $section('content') ?> @parentWe hope you have a great stay!, (*8)
$end() ?>
or, (*9)
$extends('template.php') ?> $section('content') ?>We hope you have a great stay!, (*10)
@parent $end() ?>
Including partial views, like headers or footers, is easy as well., (*11)
<html> <head> <title><?= $title ?></title> </head> <body> <? $section('content') ?> <h1>Welcome, <?= $name ?></h1> <? $end() ?> <? $include('footer.php') ?> </body> </html>
Fast and simple view inheritance and templating.
MIT
templating template view view inheritance