venGi / engine
一个简单的PHP模板引擎。
v0.1.0
2022-10-15 06:05 UTC
Requires
- vengi/basic-functions-pack: >=0.1.0
README
venGi/Engine是一个简单的PHP模板引擎。使用venGi,您可以简单、实用地创建布局和视图,venGi专为寻求轻量级、易于使用和理解的项目的中小型项目设计。
安装
您可以通过composer添加此库。
composer require vengi/engine
用法
包含autoload.php
require_once('vendor/autoload.php');
添加venGi
use Vengi\Engine;
use Vengi\View;
配置工作文件夹
Engine::views(__DIR__.'/views'); // Set views path.
Engine::layouts(__DIR__.'/views/layouts'); // Set layouts path.
注意:默认情况下,如果您没有定义布局路径,则将使用views/layouts路径。
设置和获取视图
定义要使用的视图。
View::set('home');
在索引中获取视图。
View::get();
布局 - 设置内容区域。
在布局中,添加以下内容以定义主要内容区域。
@{_Content_}@
布局和视图。
要在视图和布局中不使用开闭标签编写PHP代码,请使用{{}}代替。
{{ //php code }} // This is equivalent to, <?php //php code ?>.
进行echo。
{= 'Hello World' }} // This is equivalent to, <?= 'Hello World' ?>.
在视图内。
一旦创建了要使用的布局或组件(注意:组件不得包含@{内容}@,因为它不是布局),要将布局或组件添加到视图,请执行以下操作
添加所选布局的头部。
{{ Layout::set('main.layout')->header() }}
添加所选布局的底部。
{{ Layout::set('main.layout')->footer() }}
将布局作为组件添加。
{{ Layout::set('menu')->item() }}
注意:您可以添加不同的头部和底部布局。示例
{{ Layout::set('main-1.layout')->header() }}
<h1>Sum of two numbers.</h1>
5+5 = {= 5+5 }}
{{ Layout::set('main-2.layout')->footer() }}
向视图传递信息。
您可以通过关联数组将信息传递到视图中,在视图端,您可以通过与传递的关联数组中相应值相关的键名变量访问信息。
View::set('home',['key'=>$data]);
示例
View::set('home',['key'=>$data,'number'=>2022]);
在'home'视图中
<h1>Home View</h1>
Data: {= $key }}
<br>
Year: {= $number }}
在视图中定义自定义标题。
在视图顶部添加
{{ Layout::title('MyTitle') }}
在布局内部标题标签中添加al
<head>
<title>{{ Layout::titles('PROVISIONAL_TITLE') }}</title>
</head>
在视图中定义自定义HEAD标签(META、JS、CSS)。
在视图顶部添加
{{ Layout::head('<link rel="stylesheet" type="text/css" href="#">') }}
在布局内部标题标签中添加al
<head>
<title>Home</title>
{{ Layout::headCustom() }}
</head>