yaf twig配置
1.安装 TWIG
composer require twig/twig
2.COMPOSER自动加载的引用
修改 BOOTSTRAP.PHP 增加
public function _initAutoload() {
require __DIR__ . "/../vendor/autoload.php";
}
3.新建ADAPTER
任意命名 需要实现Yaf_View_Interface接口
class Template_Adapter implements Yaf_View_Interface
{ private $vars;
private $path_view; private $twig;
private $loader;
private $extraParams; public function __construct($tmplPath = null, $extraParams = array())
{
if ($tmplPath) {
$this->path_view = $tmplPath;
}
$this->extraParams=$extraParams; } private function f()
{
if (!$this->loader) {
$this->loader = new Twig_Loader_Filesystem($this->path_view);
$this->twig = new Twig_Environment( $this->loader , $this->extraParams);
} } public function assign($spec, $value = null)
{ if (is_array($spec)) {
$this->vars = $spec;
return;
} $this->vars[$spec] = $value; } public function display($tpl, $tpl_vars = null)
{
if (!is_null($tpl_vars) && is_array($tpl_vars)) {
$this->vars = $tpl_vars;
}
$this->f();
echo $this->twig->render($tpl,$this->vars); } public function render($tpl, $tpl_vars = null)
{
$this->display($tpl, $tpl_vars);
} public function setScriptPath($template_dir)
{
if ($template_dir) {
$this->path_view = $template_dir;
} } public function getScriptPath()
{
return $this->path_view;
} }
4.BOOTSTARP中增加TWIG引用
public function _initView(Yaf_Dispatcher $dispatcher){
$dispatcher->autoRender(false);
$ve= new Template_Adapter(APPLICATION_PATH.'/view/',
[
'path_cache' => APPLICATION_PATH.'/viewcache/'
]);*/
require 'Template_Adapter.php';
$ve= new Template_Adapter(APPLICATION_PATH.'/view/',[
'debug' => false,
'charset' => 'UTF-8',
'base_template_class' => 'Twig_Template',
'strict_variables' => false,
'autoescape' => 'html',
'cache' => APPLICATION_PATH.'/viewcache/',
'auto_reload' => null,
'optimizations' => -1]);
Yaf_Dispatcher::getInstance()->setView($ve);
}
5.控制器中调用
$this->getView()->display('a.html');
yaf twig配置的更多相关文章
- php扩展yaf 按照配置
Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...
- yaf路由配置规则
使用框架的默认路由来访问的时候,会遇到一些困扰,这部分无法查看源代码,只能通过猜测来分析. 如果项目有多个模块,显然使用yaf的默认的静态路由是无法满足需求的. yaf默认的配置是着这样的: appl ...
- yaf框架安装配置
YAF中文文档:http://www.laruence.com/manual/index.html 1 YAF框架是用C开发的,属于PHP的扩展框架: 2 YAF的性能相对于源生PHP,性能只降低不到 ...
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
- yaf学习之——yaf安装
yaf的github源码地址 https://github.com/laruence/yaf 第一步: 下载dll扩展: http://pecl.php.net/package/yaf/2.3.5/w ...
- php中yaf框架的服务器配置
1 yaf 扩展 wget http://pecl.php.net/get/yaf-3.0.4.tgz /usr/local/php/bin/phpize ./configure --with-ph ...
- windows下扩展yaf,并生成yaf框架文件
YAF中文文档:http://www.laruence.com/manual/index.html 1 YAF框架是用C开发的,属于PHP的扩展框架: 2 YAF的性能相对于源生PHP,性能只降低不到 ...
- php拓展安装
Yaf安装配置:http://www.laruence.com/manual/yaf.install.html#yaf.installation.linux 下载Yaf的最新版本, 解压缩以后, 进入 ...
- Yaf框架的配置
http://www.laruence.com/manual/yaf.ini.html //先看一下惠新宸鸟哥yaf官网的配置说明 我们可以在php.ini中定义开发环节配置项,把本地开发设置成dev ...
随机推荐
- web中的请求:get 与 post
web中get与post请求的区别:1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表 ...
- 洛谷P1993 小K的农场
思路是差分约束+dfs版SPFA. 首先来思考差分约束的过程,将题目给出的式子进行转化: 农场a比农场b至少多种植了c个单位的作物, SPFA我们考虑跑最短路,那么要让SPFA中满足的式子就是if(d ...
- 蓝图Blueprint
---恢复内容开始--- 蓝图: flask模块化处理操作和URL的方式 作用: 将不同的功能模块化,实现模块化应用 构建大型应用 优化项目结构 使用步骤 创建蓝图对象 对蓝图对象进行操作(注册路由; ...
- Unity 关于AssetBundle读取场景
一. 1.关于如何打包成ab包,就不多说了,网上很多教程,siki学院也有siki老师的免费视频教程挺详细的,可以看看 http://www.sikiedu.com/my/course/74 2.为了 ...
- 递归实现列出当前工程下所有.Java文件
package com.lanxi.demo2_3; import java.io.File; import java.util.ArrayList; import java.util.List; / ...
- [转]MYSQL 创建存储过程
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- Mantis:Mantis rest api url 404 Not Found.解决过程纪录
测试Mantis rest api时碰到的问题:404 Not Found. 根据文件,Mantis rest api的预设url是{{url}}/api/rest/{{controller}}. 其 ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
- unity UI如何开启(显示)或者关闭(隐藏)Panel界面最好?
https://segmentfault.com/a/1190000012357091 unity UI如何开启(显示)或者关闭(隐藏)Panel界面,相信大家都是知道的,但是如何做最好呢? 可能大家 ...
- java第六周作业
1 JSF请求处理生命周期的高度概述 从历史上看,Web应用程序必需的大部分开发,主要是处理Web客户端的HTTP请求.随着Web从传统的静态文档传送模型(在这种模型中,只请求静态Web页面,没有参 ...