试用platesphp模板引擎。我在他们的网站上按照示例的指示包括了platephp类,并在我的index.php上创建了一个板块实例
的index.php
require 'plates/vendor/autoload.php';
// Create new Plates instance
$templates = new League\Plates\Engine('catalog/view/template/', 'tpl');
include 'catalog/controller/Home.php';
$home = new Home();
$home->index();
默认控制器/家庭控制器位于不同的文件夹app>controller>Home.php
(MVC)。
这就是我现在在家庭控制器中所拥有的(这是一个虚拟控制器,不是生产就绪,但检查我是否可以应用phpplates)
class Home
{
public function index(){
// Preassign data to the layout
$templates->addData([
'page_title' => 'site title here',
'page_description' => 'site description here',
'page_keywords' => 'keywords here'
], 'common/layout');
// Render a template
echo $templates->render('product/home');
}
}
模板是一个tpl文件,位于app>view>templates
。
现在,问题是当我运行代码时出现错误,表示
注意:未定义的变量:模板中 C:\ xampp \ htdocs \ tryingPlates \ catalog \ controller \ Home.php在线 15
致命错误:在null中调用成员函数addData() C:\ xampp \ htdocs \ tryingPlates \ catalog \ controller \ Home.php在线 15
并且HomeController上的第15行是
$templates->addData([
'page_title' => 'site title here',
'page_description' => 'site description here',
'page_keywords' => 'keywords here'
], 'common/layout');
我的理解是,HomeController中的$ templates未定义,但我已经在index.php中定义了它
// Create new Plates instance
$templates = new League\Plates\Engine('catalog/view/template/', 'tpl');
为什么这么乱。请帮忙。