journey/views

Lightweight view object for alacarte frameworks

v0.1 2015-02-06 21:19 UTC

This package is not auto-updated.

Last update: 2024-10-26 16:00:10 UTC


README

What

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!

Usage

Installing

Composer is by far the easiest way to install Views.

composer require journey/views ~0.1

Rendering Views

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>

Configuration

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;