venGi/engine

一个简单的PHP模板引擎。

v0.1.0 2022-10-15 06:05 UTC

This package is auto-updated.

Last update: 2024-09-15 10:18:42 UTC


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>