带有Flow3的PHP模板

带有Flow3的PHP模板,php,template-engine,typo3-flow,Php,Template Engine,Typo3 Flow,使用Flow3进行模板制作是使用 是否有一个集成/简单的解决方案来替代PHP模板?(无需自己编写模板渲染器) (为了避免误解:PHP模板指的是混合了PHP的HTML代码)fluid的全部目的不是这样做。您可以为此编写自己的ViewHelper 一个快速的解决方法是编写一个使用eval()的php viewhelper。但从安全的角度来看,这将是非常糟糕的。流体的全部目的不是这样做。您可以为此编写自己的ViewHelper 一个快速的解决方法是编写一个使用eval()的php viewhelper

使用Flow3进行模板制作是使用

是否有一个集成/简单的解决方案来替代PHP模板?(无需自己编写模板渲染器)


(为了避免误解:PHP模板指的是混合了PHP的HTML代码)

fluid的全部目的不是这样做。您可以为此编写自己的ViewHelper


一个快速的解决方法是编写一个使用eval()的php viewhelper。但从安全的角度来看,这将是非常糟糕的。

流体的全部目的不是这样做。您可以为此编写自己的ViewHelper


一个快速的解决方法是编写一个使用eval()的php viewhelper。但从安全角度来看,这将非常糟糕。

您的控制器有一个受保护的属性,默认为Fluid,将其更改为其他属性非常容易:

    protected $viewFormatToObjectNameMap = array('json' => '\TYPO3\FLOW3\MVC\View\JsonView');
现在查看同一目录下的EmptyController:\TYPO3\FLOW3\MVC\View\

你可以用这个作为开始。基本上你需要做的是满足一个赋值方法,这是你如何将变量转移到你的主题的方法

接下来,提出一些标准化(例如,模板文件必须位于文件夹\Resources\Private\Templates\ControllerName\ActionName.phtml中,请注意文件扩展名),并说明哪些变量将在那里可用(例如$view)

现在一个非常基本的方法是:

    protected $view = array();

    public function assign($key, $value) {
        $this->view[$key] = $value;
    }

    public function render() {
        $this->controllerContext->getResponse()->setHeader('Content-Type', 'text/html');

        $view = $this->view;
        ob_start();         

        include_once($this->getTemplatePathAndFilename());
        $output = ob_get_contents();
        ob_end_clean();
        return $output;
   }
}
对于$this->getTemplatePathAndFilename()函数,可以使用TYPO3\Fluid\View\TemplateView->getTemplatePathAndFilename()方法中的代码,并根据需要进行调整

在模板文件中,现在可以使用$view变量


我在我父母家过复活节,他们缺少运行时环境,所以这没有经过测试,你可能会遇到问题,但这应该让你开始

您的控制器有一个受保护的属性,默认为流体,将其更改为其他属性非常简单:

    protected $viewFormatToObjectNameMap = array('json' => '\TYPO3\FLOW3\MVC\View\JsonView');
现在查看同一目录下的EmptyController:\TYPO3\FLOW3\MVC\View\

你可以用这个作为开始。基本上你需要做的是满足一个赋值方法,这是你如何将变量转移到你的主题的方法

接下来,提出一些标准化(例如,模板文件必须位于文件夹\Resources\Private\Templates\ControllerName\ActionName.phtml中,请注意文件扩展名),并说明哪些变量将在那里可用(例如$view)

现在一个非常基本的方法是:

    protected $view = array();

    public function assign($key, $value) {
        $this->view[$key] = $value;
    }

    public function render() {
        $this->controllerContext->getResponse()->setHeader('Content-Type', 'text/html');

        $view = $this->view;
        ob_start();         

        include_once($this->getTemplatePathAndFilename());
        $output = ob_get_contents();
        ob_end_clean();
        return $output;
   }
}
对于$this->getTemplatePathAndFilename()函数,可以使用TYPO3\Fluid\View\TemplateView->getTemplatePathAndFilename()方法中的代码,并根据需要进行调整

在模板文件中,现在可以使用$view变量


我在我父母家过复活节,他们缺少运行时环境,所以这没有经过测试,你可能会遇到问题,但这应该让你开始

当然流体的作用不是这样,但我不想用流体。。。例如,Zend Framework允许使用PHP作为模板引擎生成视图:。您必须创建一个新的视图类,因为FLOW3没有附带PHP视图类:好的,太糟糕了,没有做任何事情,感谢您提供的链接它很有帮助当然流体的目的不是这样做,但我不想使用流体。。。例如,Zend Framework允许使用PHP作为模板引擎生成视图:。您必须创建一个新的视图类,因为FLOW3没有附带PHP视图类:好的,太糟糕了,没有做任何事情,谢谢您的链接,这很有帮助