sbstjn/sliphp

适用于 PHP 5.4 及以上版本的原子视图和布局引擎

0.2.1 2015-10-17 19:37 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:48:19 UTC


README

Circle CI Travis CI Scrutinizer
Scrutinizer Code Quality Scrutinizer Code Coverage
Packagist MIT License

适用于 PHP 5.4 及以上版本的原子视图和布局引擎。

使用方法

要使用 SliPHP,请配置全局常量 SLIPHP_VIEWS 并将其设置为您的 viewslayoutsblocks 所在的目录。

安装

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

贡献

有关详细信息,请参阅 CONTRIBUTINGCONDUCT

安全

如果您发现任何安全相关的问题,请通过电子邮件 mail@sbstjn.com 而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件