manychois / views
A naive PHP template library
Requires
- php: >=8
Requires (Dev)
- php: >=8
- escapestudios/symfony2-coding-standard: ^3.13
- phpstan/phpstan: >=1
- phpunit/phpunit: >=10
- slevomat/coding-standard: >=8
- squizlabs/php_codesniffer: >=3
This package is auto-updated.
Last update: 2025-03-25 06:23:34 UTC
README
A naive PHP template library. Version 2 is a complete rewrite.
How to use
Extend Manychois\Views\AbstractView
and define your template in body()
function.
Use $this->inner()
or $this->region()
to set where you would like child content to be injected.
For child template, override getParentViewClass()
to inform this library its parent class name.
Then you can use AbstractView::render($templateClassName, $viewData)
for rendering.
The tests/
folder contains some example usages of AbstractView
.
Utility
There are a few classes to help you generate HTML.
Manychois\Views\Esc
It contains 5 methods to escape string in different contexts.
attr(string $text, bool $unquoted = false)
css(string $text)
html(string $text)
js(string $text, bool $templateMode = false)
url(string $text)
Manychois\Views\ResourceLibrary
It is used to manage stylesheet / script dependencies.
<?php $r = new \Manychois\Views\ResourceLibrary(); $r->push('a', '<link rel="stylesheet" type="text/css" href="a.css" />', ['b']); $r->push('b', '<link rel="stylesheet" type="text/css" href="b.css" />'); $result = $r->pull('a');
The above $result
will hold this array data:
[ 'b' => '<link rel="stylesheet" type="text/css" href="b.css" />', 'a' => '<link rel="stylesheet" type="text/css" href="a.css" />' ]