怎样去阅读一份php源代码


Posted in PHP onAugust 21, 2009

一份好的源代码例如 dz的论坛,wind论坛,帝国cms,dedecms等,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判。一句话就是“以学习和批评的辩证思想去看待”。
好吧!我们就开始吧!
那具体的我们怎样去阅读一份php的源代码呢?
一。先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式。
二。浏览源代码的目录结构,了解各个目录的功能。
三。经过以上两步后相信你对这个开源的产品有了一个初步的了解了,那现在就开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。
四。熟悉源代码的代码写作风格,例如缩进方式,排版格式等。
五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。
六。经过以上几步相信大家已经对这份源代码有了更深刻的了解,不过这种了解还只是表面的,下来我们从6个方面具体的去分析它吧:
1.入口构造以及页面调用方式的具体实现,如果阅读时看到工具类和工具函数,尽量去熟悉一下。这一步的分析可以学习到源代码的系统架构方式。
2.分析源代码用到的工具类和工具函数,这样可以学到很多程序编写技巧。可以提升自己编程功力。
3.结合一些安全规则,研究这个源代码是怎样实现安全方面的设计的。这样可以提高自己在安全方面的意识和功力。
4.如果有模板引擎的话,研究一下源代码的模板引擎。大致从实现方式,效率,易用性等几个方面去考虑。
5.研究系统的各个功能模块,这样既能学习编程技巧还能打开自己的编程思路,下次遇到类似的东东就心里有谱了。
6.研究系统所用到设计模式,一样的功能实现,用到的设计模式可能相差很多,对比我们之前所作的东东分析设计模式,是提升我们驾驭代码的不二法门。
7.研究源代码对访问压力,执行效率,系统效率,数据库查询的优化。
方法只是途径和工具,具体实践还需要大家的努力。自己的感想是不要着急,认真分析,把分析心得用到自己的具体项目上,呵呵!

PHP 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
Php header()函数语法及使用代码
Nov 04 PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 PHP
php递归遍历删除文件的方法
Apr 17 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
php图像验证码生成代码
Jun 08 PHP
实例解析php的数据类型
Oct 24 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
php win下Socket方式发邮件类
Aug 21 #PHP
Discuz 模板语句分析及知识技巧
Aug 21 #PHP
php 分页原理详解
Aug 21 #PHP
PHP nl2br函数 将换行字符转成 <br>
Aug 21 #PHP
PHP 各种排序算法实现代码
Aug 20 #PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 #PHP
数据库查询记录php 多行多列显示
Aug 15 #PHP
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
用PHP函数解决SQL injection
2006/10/09 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
对python字典过滤条件的实例详解
2019/01/22 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
一些PHP的面试题
2015/05/06 面试题
儿子婚宴答谢词
2014/01/09 职场文书
周年庆典主持词
2014/04/02 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
物业工程部岗位职责
2015/02/11 职场文书
八年级作文之感恩
2019/11/22 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
图文详解Nginx版本平滑升级方案
2021/09/15 Servers