PHPCMS的使用小结


Posted in PHP onSeptember 20, 2010

下面我讲讲关于这套系统的加载流程

定义根目录,定义include目录
加载核心文件
配置文件'config.inc.php'
全局函数'global.func.php'
目录操作函数'dir.func.php'
url相关函数'url.func.php'
数据输出相关类'output.class.php'
权限类'priv_group.class.php'
时间处理类'times.class.php'
加载语言数组'phpcms.lang.php'
加载数库存类'db_mysql.class.php'
定义常量,大部分我们常用的信息如IP,HTTP_REFERER,SCRIPT_NAME...一律用常量
获得变量,从$_POST,$_GET,$_COOKIE,-> extract
读取CACHE,cache_read函数大部分都是读取的一些数组文件,然后extract (extract每个数组都别忘了unset)
获得当前$mod,默认是PHPCMS
判断用户是否登录
读取会员组权限
读取模板文件,通过template函数
首先会读取根据参数生成cache模板php文件
判断是否存在该文件并且该文件 TPL_ROOT.TPL_NAME.'/'.$module.'/'.$template.'.html'生成日期是否等于TPL_CACHEPATH.$module.'_'.$template.'.tpl.php',否则重新编译和生成tpl文件
读取tpl文件

这套CMS的优点在于程序与模板分离,将常用的数据通过以数组形式存取在文件上面,提升了很高的性能,不用每次都从数据库来读取,然后就是template,通过自带的语法函数编译后存取为tpl增加了模板的灵活性,美工不用懂得PHP语法,也能灵活的写布局;里面自带的TAG功能也不错。

缺点在于,一次性加载了太多的不需的文件在内存中,尤其是都是以变量和数组形式,不管是否用得着。

亮点在于,可以很方便生成HTML,弥补了缺点,总体来说架构和思路相当不错,值得学习和二次开发!

PHP 相关文章推荐
php预定义常量
Dec 25 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
Yii rules常用规则示例
Mar 15 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 #PHP
zen cart新进商品的随机排序修改方法
Sep 10 #PHP
php表单转换textarea换行符的方法
Sep 10 #PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 #PHP
php下使用curl模拟用户登陆的代码
Sep 10 #PHP
PHP获取表单textarea数据中的换行问题
Sep 10 #PHP
php header示例代码(推荐)
Sep 08 #PHP
You might like
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
基于php 随机数的深入理解
2013/06/05 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
jQuery实现手势解锁密码特效
2017/08/14 jQuery
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
python变量不能以数字打头详解
2016/07/06 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
快速了解Python相对导入
2018/01/12 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
青年文明号口号
2014/06/17 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript