manychois / views
A naive PHP template library
Installs: 94
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/manychois/views
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-10-25 07:27: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" />'
]