- 浏览: 1780316 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (641)
- vb2005xu自己动手系列 (174)
- vb2005xu开发文章转摘 (47)
- vb2005xu发发牢骚 (99)
- vb2005xu新技术灌水 (12)
- vb2005xu网络资源集锦 (21)
- vb2005xu软件学习 (60)
- 英语学习 (3)
- JavaScript 学习 (54)
- JAVA OOP 巩固 之 CustomDatabase 的开发 (5)
- 2013年9月之前所在公司 记事 (7)
- FleaPHP/QEEPHP 资料 (87)
- JAVA MAIL 学习篇 (4)
- Python turbogears (5)
- Rails 个人开发四部曲 (3)
- 名人传 (8)
- iwp framework (5)
- 高考零分作文 (5)
- startos (8)
- lua (0)
- 职场 (1)
最新评论
-
hellotieye:
自己 评论 自己 挺嗨呀
Mysql sql查询时 if 的用法 -
igevin:
转载请标明出处,转自Gevin的博客http://blog.i ...
RESTful API 编写指南 -
Theobob:
...
实现简单的ACL -
vb2005xu:
比如 对于 curl 调用就不再需要 加各种if 判断了,
$ ...
搞一个简单的数据打印工具AsDebug の Laravel -
vb2005xu:
http://geekplux.com/wiki/
YII2 模块内自定义错误页
不知道是否是官方的忽略,这里有个很明显的bug.
function FLEA_View_Simple($path = null) { log_message('Construction FLEA_View_Simple', 'debug'); $this->path = $path; $this->cacheLifetime = 900; $this->enableCache = TRUE; $this->cacheDir = './cache'; $viewConfig = (array)FLEA::getAppInf('viewConfig'); $keys = array( 'templateDir', 'cacheDir', 'cacheLifeTime', 'enableCache', ); foreach ($keys as $key) { if (!empty($viewConfig[$key])) { $this->{$key} = $viewConfig[$key]; dump($this->{$key}); } } } $viewConfig = (array)FLEA::getAppInf('viewConfig'); $keys = array( 'templateDir', 'cacheDir', 'cacheLifeTime', 'enableCache', ); foreach ($keys as $key) { if (!empty($viewConfig[$key])) { $this->{$key} = $viewConfig[$key]; dump($this->{$key}); } }
我在外面的配置文件如下:
$viewTplInf = array( 'view' => 'FLEA_View_Simple', 'viewConfig' => array( 'templateDir' => 'exap-tpl/TplEngine/tpl', 'cacheDir' => 'exap-tpl/TplEngine/cache', 'cacheLifetime' => 600 , 'enableCache' => FALSE ) );
写道
if (!empty($viewConfig[$key]))
因为 empty方法,对布尔型的 false 也认为 空
所以 'enableCache' => FALSE,这个根本就传不进去
因为 empty方法,对布尔型的 false 也认为 空
所以 'enableCache' => FALSE,这个根本就传不进去
这个是我改正的,由于不好在源代码上做更改,我建了一个新的类..
<?php /** * TplEngine 实现了一个简单的、使用 PHP 自身作为模版语言, * 带有缓存功能的模版引擎 */ class TplEngine { var $templateDir; //模板文件所在路径 var $cacheLifetime; //缓存过期时间 var $enableCache; //指示是否使用 cache var $cacheDir; //缓存文件保存位置 var $vars = array(); //模板变量 var $cacheState = array(); //保存各个缓存内容的缓存状态 function config($viewTplInf = null){ $keys = array( 'templateDir', 'cacheDir', 'cacheLifeTime', 'enableCache', ); foreach ($keys as $key) { if (array_key_exists($key,$viewTplInf)) $this->{$key} = $viewTplInf[$key]; } } /** * @param string $path 模板文件所在路径 * * @return Simple_View_Engine */ function TplEngine() { $this->templateDir = './tpl' ; $this->cacheLifetime = 900; $this->enableCache = 1; $this->cacheDir = './cache'; } /** * 设置模板变量 * * @param mixed $name 模板变量名称 * @param mixed $value 变量内容 */ function assign($name, $value = null) { if (is_array($name) && is_null($value)) { $this->vars = array_merge($this->vars, $name); } else { $this->vars[$name] = $value; } } /** * 构造模板输出内容 * * @param string $file 模板文件名 * @param string $cacheId 缓存 ID,如果指定该值则会使用该内容的缓存输出 * * @return string */ function fetch($file, $cacheId = null) { if ($this->enableCache) { $cacheFile = $this->_getCacheFile($file, $cacheId); if ($this->isCached($file, $cacheId)) { return file_get_contents($cacheFile); } } // 生成输出内容并缓存 extract($this->vars); ob_start(); include($this->templateDir . '/' . $file); $contents = ob_get_contents(); ob_end_clean(); if ($this->enableCache) { // 缓存输出内容,并保存缓存状态 $this->cacheState[$cacheFile] = file_put_contents($cacheFile, $contents) > 0; } return $contents; } /** * 显示指定模版的内容 * * @param string $file 模板文件名 * @param string $cacheId 缓存 ID,如果指定该值则会使用该内容的缓存输出 */ function display($file, $cacheId = null) { echo $this->fetch($file, $cacheId); } /** * 检查内容是否已经被缓存 * * @param string $file 模板文件名 * @param string $cacheId 缓存 ID * * @return boolean */ function isCached($file, $cacheId = null) { // 如果禁用缓存则返回 false if (!$this->enableCache) { return false; } // 如果缓存标志有效返回 true $cacheFile = $this->_getCacheFile($file, $cacheId); if (isset($this->cacheState[$cacheFile]) && $this->cacheState[$cacheFile]) { return true; } // 检查缓存文件是否存在 if (!is_readable($cacheFile)) { return false; } // 检查缓存文件是否已经过期 $mtime = filemtime($cacheFile); if ($mtime == false) { return false; } if (($mtime + $this->cacheLifetime) < time()) { $this->cacheState[$cacheFile] = false; @unlink($cacheFile); return false; } $this->cacheState[$cacheFile] = true; return true; } /** * 清除指定的缓存 * * @param string $file 模板资源名 * @param string $cacheId 缓存 ID */ function cleanCache($file, $cacheId = null) { @unlink($this->_getCacheFile($file, $cacheId)); } /** * 清除所有缓存 */ function cleanAllCache() { foreach (glob($this->cacheDir . '/' . "*.html") as $filename) { @unlink($filename); } } /** * 返回缓存文件名 * * @param string $file * @param string $cacheId * * @return string */ function _getCacheFile($file, $cacheId) { return $this->cacheDir . '/' . rawurlencode($file . '-' . $cacheId) . '.html'; } }
例子:
$GLOBALS['viewTplInf'] = array( 'templateDir' => 'exap-tpl/TplEngine/tpl', 'cacheDir' => 'exap-tpl/TplEngine/cache', 'cacheLifeTime' => 600 , 'enableCache' => true );
$viewTpl = FLEA::getSingleton('TplEngine'); $viewTpl->config($GLOBALS['viewTplInf']); dump($viewTpl);
发表评论
-
ws-http 最简单轻量的PHP CURL工具库
2016-07-29 20:44 2632欢迎大家拍砖 https://github.com/to ... -
Facade 包装类 -- 解决视图里面长长的命名空间调用问题
2016-04-20 10:48 1750有时候模版里面定义 ... -
PHP单例模式面试注意事项
2015-10-20 09:57 1959最近面了不少PHP从业者,有实习生也有5/6年以上的开发者 ... -
NGINX 配置 SSL 证书 搭建 HTTPS 网站
2015-10-19 19:19 2921下面是详细的配置过程: 1、在服务器上使用 Open ... -
关于php cron任务管理的实现假想
2015-10-17 21:25 1906之前每开发一个计划任务功能均需要在线上操作crontab来新 ... -
修改一些PHP工具
2014-10-24 19:27 1806原来的代码 在非框架下是木有问题的,但是用在框架下就报错, ... -
sublime text linux上中文输入问题的终极解决方案
2014-10-13 11:07 8569我一直在使用sublime text ... -
qeephp3.0 发布了
2014-10-07 17:21 1707QeePHP 是一个快速、灵活的开发框架。应用各种成熟的架构 ... -
swiftmailer 的快捷助手 qser-mailer
2014-09-09 23:52 3595近日在对charsen的修改版上进行了再次的修改与调整,对 ... -
PHP 中简单的伪造IP刷票实现
2014-05-15 17:06 2764一般而言,我们的获取用户真实ip的代码大致是这样... / ... -
PHP5.5 htmlspecialchars 返回null的坑
2014-04-25 12:23 2616昨天在写 PDO数据库封装类的 测试代码时遇到这个问题,取 ... -
PHP 5.5 empty + 魔术变量 的坑
2014-04-16 15:53 1606今天在测试代码时遇到这么一个疑问? dump((in ... -
Aert_Log: 设计一个精简易用的日志
2014-04-13 18:28 2488日志记录对于应用的 ... -
创建一个简单的短链服务类
2013-07-01 18:20 1372整理一个简单的短链算法,整理到自己的代码库中: &l ... -
收集常用的PHP简单代码
2013-06-30 17:53 2060对于日常工作中整理出来的某些功能做个简单梳理: 1 ... -
简易PHP路由,支持正反向url解析支持
2013-06-21 22:23 8233几年前实现了一个简单的正向路由,那时候不会写反向路由解析, ... -
系统学习のCACHE 学习
2012-11-21 13:58 1911http://www.phpfans.net/article/ ... -
YY 下 sql查询封装类 不知道好不好使
2012-07-18 16:44 1337<?php class Pkg_Db_Actor { ... -
生成后台管理菜单 admin_menu 类
2012-05-05 18:27 4655<?php /** * 管理菜单 * */ ... -
抽取个sql生成器工具 -- 摘自 fuelphp1.1 版本
2012-04-25 20:17 1233<?php /** * Sql 创造者类 * ...
相关推荐
Fleaphp的轻量级特性使其在小型项目中表现出色,同时,其灵活的配置和丰富的功能也适用于中大型项目。 二、路由系统 Fleaphp的路由系统允许开发者定义URL到控制器方法的映射,这样可以根据URL请求动态地执行相应的...
在FleaPHP开源应用程序开发框架中,有几个关键的系统方法,它们是开发高效Web应用的基础。下面我们将详细探讨这些方法: 1. **FLEA::initWebControls()**: 这个函数用于初始化WebControls,它返回一个`FLEA_...
2. **MVC架构**:Fleaphp遵循Model-View-Controller(模型-视图-控制器)的设计模式,这是一种常见于Web开发中的架构模式。Model处理数据,View负责显示,而Controller协调这两者之间的交互,帮助开发者实现业务逻辑...
8. **错误处理**:Fleaphp有完善的错误处理和日志记录功能,能帮助开发者在开发过程中快速定位和解决问题。它还支持自定义错误页面,提升用户体验。 9. **安全特性**:Fleaphp关注应用的安全性,内置了防止SQL注入...
### FleaPHP框架学习教程知识点概述 #### 一、FleaPHP框架简介 - **特点**:FleaPHP是一款轻量级的PHP框架,旨在帮助开发者快速、轻松地创建应用程序。该框架简单易懂,拥有丰富的示例和中文文档,支持PHP4和PHP5...
2. **MVC模式**:遵循Model-View-Controller(MVC)设计模式,FleaPHP将业务逻辑、数据处理和用户界面分离,使得代码结构清晰,易于维护和扩展。 3. **路由系统**:FleaPHP拥有强大的路由机制,支持基于URL的动态...
MVC模式是软件工程中的一种设计模式,用于组织代码、分离关注点,它包含模型(Model)、视图(View)和控制器(Controller)三个核心组件。 - Model(模型):负责数据和业务逻辑,与数据库交互,封装数据。 - View...
- **运行与调试**:启动服务器,访问应用,利用Fleaphp提供的错误和日志机制进行调试。 4. **拓展与优化** - **插件与扩展**:Fleaphp允许开发者编写插件,扩展框架功能,或集成第三方服务。 - **性能优化**:...
1. **框架结构**:Fleaphp遵循MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离开来,使得代码组织有序,便于理解和维护。了解框架的基本目录结构和各部分的作用至关重要,例如`app`目录...
在本文中,我们将深入探讨Fleaphp框架中的常见函数,这些函数对于理解和操作数据库至关重要。Fleaphp是一个PHP开发框架,它提供了一系列方便的数据操作接口,使得开发者能够更高效地处理数据。 1. `FLEA_Db_Table...
Fleaphp框架采用MVC(Model-View-Controller)设计模式,使得业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和复用性。在项目根目录下,你会找到`config`文件夹,其中包含各种配置文件,如`database.php`...
2. **MVC模式**:Model-View-Controller(模型-视图-控制器)是FleaPHP的基础设计模式,它将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护性。 3. **路由系统**:FleaPHP拥有灵活的路由规则,可以...
4. **路由处理**:根据解析后的URL和配置中的路由规则,FleaPHP会确定应执行的控制器和方法。路由可以是预定义的,也可以动态生成,以支持RESTful API或其他高级路由策略。 5. **执行控制器**:找到对应的控制器后...
在FleaPHP框架中,单一入口应用程序是一个核心概念,它意味着整个应用程序的所有功能都通过一个单一的入口文件来调用和执行。这种设计模式有利于控制应用程序的流程,提高安全性和可维护性。单一入口应用程序在PHP...
在PHP开发中,FleaPHP是一个轻量级的框架,提供了很多实用的工具和功能,其中就包括方便的分页助手`FLEA_Helper_Pager`。本文将深入讲解FleaPHP分页辅助类`FLEA_Helper_Pager`的使用方法以及相关参数。 `FLEA_...
FleaPHP采用MVC(Model-View-Controller)架构模式,这是一种广泛应用于Web应用开发的设计模式,它将数据处理、业务逻辑和用户界面分离,提高了代码的可读性和可维护性。在FleaPHP中,模型负责处理数据,视图负责...
fleaphp.chm手册
fleaphp框架,国产最好php开发框架
学习FleaPHP必备,强烈推荐!
在FleaPHP中,分页功能主要由`WebControls`组件提供,这个组件包含了处理分页所需的工具和方法。 要使用FleaPHP的分页功能,首先你需要引入`WebControls`组件。在代码中,你可以通过以下方式加载: ```php require...