devpontes / view
View是一个用于使用原生PHP渲染模板的简单组件
v3.0.3
2024-04-26 15:11 UTC
Requires
- php: >=7.4
README
关于View组件
View是一个用于使用原生PHP渲染模板的简单组件
View是一个用于使用原生PHP渲染模板的简单组件。
亮点
- 简单模板渲染。(简单模板渲染)
- 动态控制JS和CSS资源。(动态控制JS和CSS资源)
- 动态控制HTML模板的各个部分。(动态控制HTML模板的各个部分)。
安装
View通过Composer提供
"devpontes/view": "3.0.*"
或者运行
composer require devpontes/view
文档
要使用View,您需要定义views文件夹的路径,以及可选的head、header、aside和footer文件的路径,以动态使用模板
- 要使用View,您需要定义views文件夹的路径以及可选的head、header、aside和footer文件的路径,以动态使用模板。
$viewPath = dirname(__FILE__, 1) . '/views'; $viewHead = "/includes/head"; $viewAside = "/includes/aside"; $viewHeader = "/includes/header"; $viewFooter = "/includes/footer";
在初始化时,我们需要将views文件夹的路径和模板文件类型的扩展名作为参数传递
- 在初始化时,我们需要将views文件夹的路径和模板文件类型的扩展名作为参数传递。
$v = new \DevPontes\View\View($viewPath, 'php');
使用修改器方法动态包含模板的部分。然后,使用render方法传递一个包含数据的数组以及选定的视图。有关更多详细信息,请参阅组件目录中的示例文件夹。
- 使用修改器方法动态包含模板的部分。然后,使用render方法传递一个包含数据的数组以及选定的视图。有关更多详细信息,请参阅组件目录中的示例文件夹。
基本用法
/** set view data */ $user = new \stdClass(); $user->name = "John Doe"; $user->age = 25; $data['user'] = $user; $v = new \DevPontes\View\View($viewPath, 'php'); $v->setHead($viewHead); $v->setAside($viewAside); $v->setHeader($viewHeader); $v->setFooter($viewFooter); $v->render('home', $data);
在模板中
<main> <h5><?= "My name is {$user->name}, i am {$user->age} years" ?></h5> </main>
使用insert方法直接将组件插入到模板中
<?php $this->insert('components/article') ?>
通过注入一个Assets对象来调用addAssets,以通过makeScript和makeStyle方法操作JS和CSS资源。如果您在模板本身中插入资源,可以省略addAssets,参见
- 通过注入一个Assets对象来调用addAssets,以通过makeScript和makeStyle方法操作JS和CSS资源。如果资源是在模板本身中插入的,则可以省略addAssets,参见
添加资源
/** assets array */ $css = ['style']; $js = ['script']; /** soucer path */ $source = 'assets'; /** define cache */ $cache = false; $a = new \DevPontes\View\Assets('assets', false); $v->addAssets($a); $v->assets->makeScript($js); $v->assets->makeStyle($css);
样式和脚本文件夹(css和js)的默认路径。使用修改器方法来更改模式
$v->setStylePath('assets/style'); $v->setScriptPath('assets/script');
在中添加CSS
<head> <title>View</title> <!-- add CSS --> <?= $this-> assets->getStyles() ?> </head>
在中添加JS
<body> ... <!-- add JS --> <?= $this->assets->getScripts() ?> </body>
致谢
- Moises Pontes(开发者)
许可
MIT许可证(MIT)。