sbstjn / sliphp
适用于 PHP 5.4 及以上版本的原子视图和布局引擎
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-09-14 17:48:19 UTC
README
适用于 PHP 5.4 及以上版本的原子视图和布局引擎。
使用方法
要使用 SliPHP,请配置全局常量 SLIPHP_VIEWS
并将其设置为您的 views、layouts 和 blocks 所在的目录。
安装
composer require sbstjn/sliphp
基本操作
如上所述,只需配置所需的常量,您就可以开始了…
define ('SLIPHP_VIEWS', '/var/www/views/');
您的 SLIPHP_VIEWS
路径内的文件夹结构应该类似于以下这样
/var/www/views/index.php (View)
/var/www/views/layouts/default.php (Layout)
/var/www/views/blocks/header.php (Block)
视图
从您的 SLIPHP_VIEWS
文件夹渲染视图非常简单
$view = new SliPHP\View('index'); die($view);
您的 index.php
可能看起来像这样
<strong>Hi!</strong>
布局
当然,您希望为布局创建一个单独的文件,该文件将围绕您的 index
视图进行包装
$layout = new SliPHP\Layout('default'); $layout->body(new SliPHP\View('index')); die($layout);
您的 layouts/default.ph
文件可能看起来像这样
<!DOCTYPE html> <html lang="en-US"> <head> <title>SliPHP</title> <meta charset="utf-8" /> </head> <body><?=$view->body()?></body> </html>
正如您所猜测的,视图的内容将插入到 body
标签内。哇,魔法…
块
当然,SliPHP 支持加载单个文件并将它们渲染到您的视图和布局中。我们称它们为 blocks,只需使用 ->block()
方法加载它们
<!DOCTYPE html> <html lang="en-US"> <head> <title>SliPHP Example</title> <?=$view->block('header')?> </head> <body><?=$view->body()?></body> </html>
您的 blocks/header.php
可能看起来像这样
<meta charset="utf-8" />
块也可以加载其他块,因此您可以将样式和脚本移动到单独的文件中,例如
<meta charset="utf-8" /> <?=$view->block('styles')?> <?=$view->block('script')?>
应用
如果您想对一个数据对象应用函数或函数列表,可以使用 $view->apply
函数来修改您的数据
<strong><?=$view->apply('KATZE', 'ucfirst|strtolower')?><?=$view->apply('KATZE', 'strtolower|ucfirst')?></strong>
将被渲染到
<strong>katzeKatze</strong>
助手
SliPHP 内置了对自定义助手函数的支持,只需像这样定义您的助手函数
$view = new SliPHP\View('index'); $view->helper('strong', function($value) { return '<strong>' . $value . '</strong>'; });
然后在您的视图中调用它们
<?=$view->strong('hi')?>
例如,您可以使用此功能轻松包含样式表
$view->helper('css', function($file) { return '<link rel="stylesheet" href="' . $file . '" type="text/css" charset="utf-8" />'; });
局部变量
当然,您可以向视图传递数据,SliPHP 将其称为 Locals
…
$view = new SliPHP\View('index'); $view->set('foo', 'value');
您可以通过布局、视图和当然还有块中的 $data
变量访问所有数据
<?=$data->foo?>
您还可以在布局和视图之间共享局部变量
$layout = new SliPHP\Layout('default'); $layout->set('foo', 'value'); $layout->body('index');
现在,您可以在 index
视图中轻松访问布局的局部变量
<?=$data->foo?>
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CONDUCT。
安全
如果您发现任何安全相关的问题,请通过电子邮件 mail@sbstjn.com 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。