PHPCMS的使用小结

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

定义根目录,定义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,弥补了缺点,总体来说架构和思路相当不错,值得学习和二次开发!

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
在开发项目中经常碰到二级目录形式。比如文章模块、产品模块,很多应多都基于两级分类形式。而普通的解决排序方案,不管是一级分类,还是多级分类,都是由管理员在后台手动编辑同级分类排序的值来设置排序,根据该值的大小决定显示的顺序。这样的操作方式比较烦琐。jQuery有对于排序采用拖拽方式来实现排序,从用户层面,这样的操作非常直观,操作简便。曾经在一个项目中,产品分类采用的是两级分类,显示 如下图所示: 在排序问题上,决定使用jQuery的拖拽插件来实现:拖拽一级分类时,对一级分类进行排序;拖拽某一级分类下面的子分

PHP文件读取功能的应用实例 - 2015-06-05 09:06:19

PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数。 读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下: 1、打开文件(文件操作函数:fopen) 2、文件数据读取(文件操作函数:fgets、file、readfile、feof等) 3、关闭文件(文件操作函数:fclose) 下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取操作函数的

php使用GD实现颜色渐变实例 - 2015-06-05 06:06:37

本文实例讲述了php使用GD实现颜色渐变的方法。分享给大家供大家参考。具体实现方法如下: ?php$im = imagecreate(255, 255);$bg = imagecolorallocate($im, 0, 0, 0);for ($i = 255; $i = 0; $i--) { $color = imagecolorallocate($im, $i, $i, $i); imagefilledrectangle($im, 0, $i, 255, 1, $color);}header("Cont
作为一种常用的设计模式,单例模式被广泛的使用。那么如何设计一个单例才是最好的呢? 通常我们会这么写,网上能搜到的例子也大部分是这样: 复制代码 代码如下: class A { protected static $_instance = null; protected function __construct() { //disallow new instance } protected function __clone(){ //disallow clone } public function getIn
So, your jQuery might be something like..... 复制代码 代码如下: $.ajax({ url: 'query.php', data: {id:10}, datatype: json success: function(results) { if (results.msg == 'success') { for (var i in data) { $('#content').append( 'id = ' + results.data[i].id + ', desc
/** * 将数组的内部指针倒回一位 * @param array $arr * @return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE * 如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE * 要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数 */ mixed prev(array $arr); ?php $transport = array('foot', 'bike', 'car', 'plane'); $mode =
对象的赋值与复制: 赋值:通过“ = ”运算符重载 User a(10),b; b = a; 复制:调用复制构造函数 User b; User a(b); 或者 User a = b;//相当于User a(b); 与赋值的区别,赋值是对一个已经存在的对象进行赋值(已经实现定义了被赋值的对象),而复制是从无到有建立一个新的对象,并使它与已有的对象相同。 浅复制与深复制: 若对象中有指针成员,在复制时,只会将该指针成员的地址复制给新建立的对象,因此,两个对象中的指针成员都指向了同一块内存区域,在释放时会出现重
本文详细讲述了PDO防注入原理分析以及使用PDO的注意事项,分享给大家供大家参考。具体分析如下: 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么? 一、为何要优先使用PDO? PHP手册上说得很清楚: Prepared statements and stored procedures Many of the more mature databa

yii实现创建验证码实例解析 - 2015-06-04 20:06:49

本文以实例形式讲述了yii创建验证码的方法,具体步骤如下所示: 一、在SiteController action()下添加如下代码: return array( // captcha action renders the CAPTCHA image displayed on the contact page 'captcha'=array( 'class'='CCaptchaAction', 'backColor'=0xFFFFFF, ), // page action renders "static"

php编写的一个E-mail验证类 - 2015-06-04 20:06:38

这个类可以用来检查电子邮件是否有效使用SMTP协议。 它可以连接到由地址的域名来验证的MX记录中定义的SMTP服务器。 并且模拟消息的传递,以查看是否在给定的收件人地址被接受为有效。 !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"html head meta http-equiv="Content-Type" content="text/html; charset=UTF-8" titleSample/title /head bo