A simple PHP class for creating lightweight renderable views for alacarte PHP frameworks. Template languages certainly have their place, but it turns out PHP is great at printing out strings too!
Composer is by far the easiest way to install Views.
composer require journey/views ~0.1
Creating and using views is easy-easy:
// Here's one way:
$view = new Journey\View('template-file', $variables);
echo $view->render();
// Here's another:
$view = Journey\View::make('template-file', $variables);
echo $view->render();
// The quickest
echo Journey\View::make('template-file', $variables);
Key value pairs in the $variables array will be extracted for use in the template file. You can also choose to prefix your variables with the variable_prefix
option. Of course views can easily be nested as well. Here's an example of typical usage:
// file: app.php
$view = Journey\View('master');
// ... some application logic
$variables = array(
'title' => 'Hello World',
'paragraph' => 'Lorum ipsum...'
);
$view->content = Journey\View::make('page', $variables);
// file: templates/master.php
<!DOCTYPE html>
<html>
<head>
<title>Example Website</title>
</head>
<body>
<?= $content ?>
</body>
</html>
// file: template/page.php
<h1><?= $title ?></h1>
<p><?= $paragraph ?></p>
Generally you'll want to configure the default values for your entire installation sometime around boot:
Journey\View::defaults([
'templates' => getcwd() . "/templates",
'extension' => '.php',
'variable_prefix' => null,
'string_template' => false
]);
However you can also set per-instance configuration values:
// Lets render the file /tmp/temporary-file.php
$view = new Journey\View('temporary-file');
$view->config(['templates' => '/tmp']);
echo $view;