Views

如果你只需要用tastphp作为RestFul的Api,这一节你可以忽略。

如果你使用tastphp用作类似MVC的开发模式,请往下看。

view层,tastphp选用Twig 作为模板引擎。

在tastphp框架中,默认会在web/views/web/views/frontBundle里面找模板引擎的twig文件

Twig文档地址:https://twig.symfony.com/doc/2.x/

一般建议命名规则类似:

xxx.html.twig //xxx是自定义的名字,如home.html.twig

例子

1、注册TwigService

首先需要注册twigService到AppKernel,在AppKernerl 初始化的时候增加:

注意:版本 1.3.7之前需要手动注册,1.3.7 之后框架智能自动注册

$this->registerTwigService();

最后变成类似:

<?php

namespace TastPHP\App;

use TastPHP\Framework\Event\AppEvent;
use TastPHP\Framework\Kernel;
use TastPHP\FrontBundle\Listener\MiddlewareListener;

class AppKernel extends Kernel
{
    public function __construct(array $values = [])
    {
        $this->registerTwigService(); // 注册TwigService
        parent::__construct($values);
    }
}

2、View层,创建twig文件

tastphp-doc-demo中,找到文件tastphp-docs-demo/web/views/frontBundle/home/index.html.twig

3、Controller层,编写业务代码

tastphp-doc-demo中,找到文件tastphp-docs-demo/src/FrontBundle/Controller/HomeController.php,改下内容类似:

<?php
namespace TastPHP\FrontBundle\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use TastPHP\Common\Controller;
class HomeController extends Controller
{
    public function indexAction()
    {
 //       echo "<br> indexAction ~<br>";
//        return new JsonResponse(['name1'=>'tastphp~',"name2"=>"tastphp!"]);
//        return $this->response("response ok!");
        return $this->render('home/index.html.twig');//这边就会去执行 web/views/frontBundle/home/index.html.twig的文件内容
    }
}

4、测试结果

php -S 127.0.0.1:9999 web/index.php

results matching ""

    No results matching ""