devcoder-xyz / php-renderer
PHPRenderer 是一个轻量级的 PHP 类,用于在 PHP 中原生渲染模板,支持模块化和可重用视图的块。
1.0.0
2023-08-05 21:03 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.6
README
PHP Renderer 是一个简单的模板引擎,允许您将表示层与 PHP 代码分离。它提供了一个基本的模板继承机制,灵感来源于流行的模板引擎如 Twig。
安装
您可以使用 Composer 安装 PHP Renderer 库。只需运行以下命令
composer require devcoder-xyz/php-renderer
基本用法
要在项目中使用 PHP Renderer,首先创建一个 PhpRenderer
类的实例,并传递存放模板的目录
use DevCoder\Renderer\PhpRenderer; // Specify the template directory $templateDir = '/path/to/templates'; // Optional parameters to be passed to the templates $parameters = [ 'siteTitle' => 'My Website', ]; // Create the renderer instance $renderer = new PhpRenderer($templateDir, $parameters);
创建模板
使用 PHP 文件创建您的模板。例如,创建一个名为 template.php
的模板文件,内容如下
<?php $this->extend('layout.php'); ?> <?php $this->startBlock('title'); ?> My Page Title <?php $this->endBlock(); ?> <?php $this->startBlock('content'); ?> <h1>Hello, <?php echo $name; ?>!</h1> <p>Welcome to my website.</p> <?php $this->endBlock(); ?>
创建布局
创建一个布局文件(例如,layout.php
),表示您网页的常用结构。使用块定义将要由单个模板内容替换的段落。
<!DOCTYPE html> <html> <head> <title><?php echo $this->block('title'); ?></title> </head> <body> <div class="container"> <?php echo $this->block('content'); ?> </div> </body> </html>
渲染模板
要渲染模板,使用 PhpRenderer
类的 render
方法
echo $renderer->render('template.php', ['name' => 'John']);
这将使用提供的上下文数据渲染 template.php
,并将其注入到 layout.php
中以创建最终的 HTML 输出。
辅助方法
您可以使用 get
方法访问传递给渲染器的参数
// Get a parameter value $siteTitle = $this->get('siteTitle');
模板继承
PHP Renderer 允许您在子模板中扩展布局并覆盖特定块。当您在模板中使用 extend
方法时,它会告诉渲染器继承扩展模板中定义的布局。然后,您可以使用 startBlock
和 endBlock
来覆盖布局中特定块的内容。
贡献
欢迎为 PHP Renderer 库做出贡献!如果您发现任何问题或想提出改进建议,请随时在 GitHub 上打开一个问题或提交一个拉取请求。
许可证
PHP Renderer 是在 MIT 许可证下发布的开源软件。有关更多详细信息,请参阅 LICENSE 文件。