\Greg\View\Viewer
is the view manager.
Extends: \ArrayAccess
.
Example:
$viewer = new \Greg\View\Viewer(__DIR__ . '/views');
echo $viewer->render('welcome', [
'name' => 'Greg',
]);
Initialize the viewer.
__construct(string|array $path, array $params = [])
$path
- Templates directory;
$params
- This parameters will be assigned in all templates.
Example:
$viewer = new \Greg\View\Viewer(__DIR__ . '/views', [
'repository' => 'greg-md/php-view',
]);
- getCompiledFile - Get compiled file by a template file;
- getCompiledFileFromString - Get compiled file by a template string;
- render - Render a template file;
- renderIfExists - Render a template file if exists;
- renderString - Render a template string;
- renderStringIfExists - Render a template string if exists;
- assign - Assign a parameter to all templates;
- assignMultiple - Assign multiple parameters to all templates;
- assigned - Get assigned parameters;
- hasAssigned - Determine if assigned parameters exists;
- removeAssigned - Remove assigned parameters;
- setPaths - Replace templates directories;
- addPaths - Add templates directories;
- addPath - Add a template directory;
- getPaths - Get templates directories;
- addExtension - Add an extension, optionally with a compiler;
- getExtensions - Get all known extensions;
- getSortedExtensions - Get all known extensions in a good sorted way;
- hasCompiler - Determine if a compiler exists by extension;
- getCompiler - Get compiler by extension;
- getCompilers - Get all registered compilers;
- getCompilersExtensions - Get compilers extensions;
- removeCompiledFiles - Remove all compiled files from compilers compilation paths;
- directive - Register a directive;
- hasDirective - Determine if a directive exists;
- format - Execute a directive.
Get compiled file by a template file.
getCompiledFile(string $name): string
$name
- Template name.
Get compiled file by a template string.
getCompiledFile(string $id, string $string): string
$id
- Template unique id. It should has the compiler extension;
$name
- Template string.
Render a template file.
render(string $name, array $params = []): string
$name
- Template file;
$params
- Template custom parameters.
Example:
echo $viewer->render('welcome', [
'name' => 'Greg',
]);
Render a template file if exists. See render
method.
Render a template string.
renderString(string $id, string $string, array $params = []): string
$id
- Template unique id. It should has the compiler extension;
$string
- Template string;
$params
- Template parameters. Will be available only in current template.
Example:
echo $viewer->renderString('welcome.blade.php', "Hello {{ $name }}!", [
'name' => 'Greg',
]);
Render a template string if its compiler exists. See renderString
method.
Assign a parameter to all templates.
assign(string $key, string $value): $this
$key
- Parameter key;
$value
- Parameter value.
Example:
$viewer->assign('author', 'Greg');
Assign multiple parameters to all templates.
assignMultiple(array $params): $this
$params
- An array of parameters;
Example:
$viewer->assignMultiple([
'position' => 'Web Developer',
'website' => 'http://greg.md/',
]);
Get assigned parameters.
assigned(string|array $key = null): any
$key
- Parameter key or an array of keys;
Example:
$all = $viewer->assigned();
$foo = $viewer->assigned('foo');
Determine if assigned parameters exists.
hasAssigned(string|array $key = null): boolean
$key
- Parameter key or an array of keys;
Example:
if ($viewer->hasAssigned()) {
// Has assigned parameters.
}
if ($viewer->hasAssigned('foo')) {
// Has assigned parameter 'foo'.
}
Remove assigned parameters.
removeAssigned(string|array $key = null): $this
$key
- Parameter key or an array of keys;
Example:
// Delete 'foo' parameter.
$viewer->removeAssigned('foo');
// Delete 'foo' and 'baz' parameters.
$viewer->removeAssigned(['bar', 'baz']);
// Delete all parameters.
$viewer->removeAssigned();
Replace templates directories.
setPaths(array $paths): $this
$paths
- Templates directories.
Example:
$viewer->setPaths([
__DIR__ . '/views',
]);
Add templates directories. See setPaths
method.
addPaths(array $paths): $this
Add a template directory.
addPath(string $path): $this
$path
- Template directory.
Example:
$viewer->addPath(__DIR__ . '/views');
Get templates directories.
getPaths(): array
Add an extension, optionally with a compiler.
addExtension(string $extension, \Greg\View\CompilerInterface|callable(): \Greg\View\CompilerInterface $compiler = null): $this
$extension
- Template extension;
$compiler
- Template compiler.
Example:
$viewer->addExtension('.template');
$viewer->addExtension('.blade.php', function (\Greg\View\Viewer $viewer) {
return new \Greg\View\ViewBladeCompiler($viewer, __DIR__ . '/compiled');
});
Get all known extensions.
getExtensions(): string[]
Get all known extensions in good a sorted way.
getExtensions(): string[]
Determine if a compiler exists by extension.
hasCompiler(string $extension): boolean
Get compiler by extension.
getCompiler(string $extension): \Greg\View\CompilerInterface
$extension
- Template extension.
Returns an interface of \Greg\View\CompilerInterface
.
Example:
$compiler = $viewer->getCompiler('.blade.php');
$file = $compiler->getCompiledFile();
Get all registered compilers.
getCompilers(): \Greg\View\CompilerInterface[]
Returns an array of \Greg\View\CompilerInterface
interfaces.
Get all extensions which has compilers.
getCompilersExtensions(): string[]
Remove all compiled files from compilers compilation path.
removeCompiledFiles(): $this
Register a directive.
directive(string $name, callable(mixed ...$args): string $callable): $this
$name
- Directive name;
$callable
- Callable.
...$args
- Directive arguments.
Example:
$viewer->directive('alert', function($message) {
echo '<script>alert("' . $message . '");</script>';
});
Determine if a directive exists.
hasDirective(string $name): boolean
Execute a directive.
format(string $name, mixed ...$args): mixed
$name
- Directive name;
...$args
- Directive arguments.
Example:
$viewer->format('alert', 'I am an alert message!');