PHPCMS的使用小结_php技巧

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

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

时间: 2024-11-27 05:45:50

PHPCMS的使用小结_php技巧的相关文章

PHP 程序员的调试技术小结_php技巧

本文介绍调试 PHP 应用程序的各种方法,包括在 Apache and PHP 中打开错误报告,以及通过在一个简单的 PHP 脚本中放置策略性的 print 语句,找到更困难的 bug 的源头.还会介绍用于 Eclipse 的 PHPEclipse 插件,这是一个灵活的开发环境,具有实时语法解析能力,还会介绍 PHPEclipse 的 DBG 调试器扩展. 简介 有许多 PHP 调试技术可以在编码的时候节约大量时间.一个有效却很基本的调试技术就是打开错误报告.另一个略微高级一点的技术包括使用 p

常见的PHP五种设计模式小结_php技巧

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 "四人帮").所介绍的设计模式背后的核心概念非常简单.经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板.使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物.同样的概念也适用于软件. 设计模式不仅代表着更

PHP几个实用自定义函数小结_php技巧

本文实例总结了PHP几个实用自定义函数.分享给大家供大家参考,具体如下: 最近在看代码,发现以下是几个比较实用的函数. 1.取客户端IP function getOnlineIp() { $strOnlineIp = ""; if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } el

php时间计算相关问题小结_php技巧

本文实例总结了php时间计算相关问题.分享给大家供大家参考,具体如下: 1. php获取三个月前的日期 <?php header("content-Type: text/html; charset=utf-8");?> <?php $s_sdate=date("Y-m-d"); //当前时间 $moth_day=90; //月份 (转为天数) $s_edate=date("Y-m-d",(strtotime($s_sdate)-

PHP中功能强大却很少使用的函数实例小结_php技巧

本文实例讲述了PHP中功能强大却很少使用的函数.分享给大家供大家参考,具体如下: call_user_func_array - 让参数以数组的形式调用一个函数 call_user_func - 调用一个存在的函数 create_function - 建立一个函数 func_get_arg - 获取函数中某个参数的值 func_get_args - 获取函数的所有参数并组成数组 func_num_args - 获取一个函数的参数个数 function_exists - 判定一个函数是否存在 get

php文件系统处理方法小结_php技巧

本文总结分析了php文件系统处理方法.分享给大家供大家参考,具体如下: 文件类型 以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型 在Linux/Unix下, block, char, dir, fifo, file, link, unknown7种型 block :块设置文件,磁盘分区,软驱, cd-rom等char: 字符设备,I/O (输入输出中)以字符为单位的设备, 例如键盘,打印机等dir:  目录也是文件的一种/目录文件fifo: 信息管道,

php跨服务器访问方法小结_php技巧

本文实例总结了php跨服务器访问方法.分享给大家供大家参考.具体分析如下: 近来项目中遇到跨服务器访问的问题,研究了好些日子,总结如下: 1.用file_get_contents方法 $host = 'url'; $randomNumber=file_get_contents($host); echo $$randomNumber; 2.用Curl $host = 'url'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); //

PHP常见数组函数用法小结_php技巧

本文实例讲述了PHP常见数组函数用法.分享给大家供大家参考,具体如下: 1.array array_merge(array $array1 [, array  $array2 [, $array]]) 函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方

优化PHP代码技巧的小结_php技巧

优化PHP代码技巧的小结1. 如果一个方法能被静态,那就声明他为静态的,速度可提高 1/4;2. echo 的效率高于 print,因为 echo 没有返回值,print 返回一个整型;3. 在循环之前设置循环的最大次数,而非在在循环中;4. 销毁变量去释放内存,特别是大的数组;5. 避免使用像__get, __set, __autoload 等魔术方法;6. requiere_once()比较耗资源;7. 在 includes 和 requires 中使用绝对路径,这样在分析路径花的时间更少;