coercive / render
Coercive Utility Render
0.1.8
2024-03-12 08:05 UTC
Requires
- php: >=7.4
README
一个简单的模板渲染系统。[测试版]
获取
composer require coercive/render
加载
use Coercive\Utility\Render\Render; # Load $render = new Render( 'TEMPLATES_ROOT_PATH' ); # Set globals vars (global for all views and sub injected views) # use $render->setGlobalDatas for override or add for conserve previous added $render->addGlobalDatas([ 'app' => new App(), 'header' => new Header(), 'handler' => new Handler() ... ]); # Set Views Datas # use $render->setDatas for override or add for conserve previous added $render->addDatas([ 'title' => 'My Custom Title', 'content' => 'Lorem Ipsum Text', 'link' => 'Visit my website : <a href="#">my-web-site.com</a>' ... ]); # Set View path # use $render->setPath for override or add for conserve previous added $render->setPath('/TemplateName/ViewDir/Viewname'); # Multi views foreach([...] as $path) { $render->addPath($path); } # If multiple template, you need to set where load a layout # Or if you need to load in specific other template for a/b testing or events ... $render->setTemplate('MyEventTemplate2017'); # Now, Render ! echo $render->render();
错误
use Coercive\Utility\Render\Render; # Load $render = new Render( 'TEMPLATES_ROOT_PATH' ); # You can see all errors like this foreach($render->getExceptions() as $exception) { echo $exception->getMessage(); } # Or you can log error when it's added with handler $render->debug(function ($exception) { error_log(print_r($exception->getMessage(), true)); });
树状结构
在模板目录中,需要布局目录/文件。
Dir: Website - Dir: Templates -- Dir: Template -- Dir: view --- File: view-1.php --- File: view-2.php --- File: view-3.php -- Dir: layout --- File: layout.php --- File: head.php --- File: header.php --- File: footer.php
布局由渲染方法返回。因此你将在布局文件中加载和输出视图。即使你没有实际的模板。(空布局)
布局
<html> <head> <?php require_once(__DIR__ . DIRECTORY_SEPARATOR . 'head.php') ?> </head> <body> <header> <?php require_once(__DIR__ . DIRECTORY_SEPARATOR . 'header.php') ?> </header> <!-- VIEW CONTENT --> <div id="view"><?php //------------------------ // RENDER VIEW IN TEMPLATE echo $this->getViews(); //------------------------?> </div> <footer> <?php require_once(__DIR__ . DIRECTORY_SEPARATOR . 'footer.php') ?> </footer> </body> </html>
没有模板?需要布局
只需在空布局中打印你的视图
echo $this->getViews();
示例基本树
Dir: Website Dir: views Dir: Default Dir: layout File: layout.php File: head.php File: header.php File: footer.php Dir: Email Dir: layout File: layout.php Dir: None Dir: layout File: layout.php