学习php开源项目的源码指南


Posted in PHP onDecember 21, 2014

一。先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式。

二。浏览源代码的目录结构,了解各个目录的功能。

三。经过以上两步后相信你对这个开源的产品有了一个初步的了解了,那现在就开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。

四。熟悉源代码的代码写作风格,例如缩进方式,排版格式等。

五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。

六。经过以上几步相信大家已经对这份源代码有了更深刻的了解,不过这种了解还只是表面的,下来我们从6个方面具体的去分析它吧:
           1.入口构造以及页面调用方式的具体实现,如果阅读时看到工具类和工具函数,尽量去熟悉一下。这一步的分析可以学习到源代码的系统架构方式。
           2.分析源代码用到的工具类和工具函数,这样可以学到很多程序编写技巧。可以提升自己编程功力。
           3.结合一些安全规则,研究这个源代码是怎样实现安全方面的设计的。这样可以提高自己在安全方面的意识和功力。
           4.如果有模板引擎的话,研究一下源代码的模板引擎。大致从实现方式,效率,易用性等几个方面去考虑。
           5.研究系统的各个功能模块,这样既能学习编程技巧还能打开自己的编程思路,下次遇到类似的东东就心里有谱了。
           6.研究系统所用到设计模式,一样的功能实现,用到的设计模式可能相差很多,对比我们之前所作的东东分析设计模式,是提升我们驾驭代码的不二法门。
           7.研究源代码对访问压力,执行效率,系统效率,数据库查询的优化。

以上是个人的一些经验总结,这里抛砖引玉一下,大家有什么更好的方法,还请告之一下。

PHP 相关文章推荐
php分页函数
Jul 08 PHP
PHP4中实现动态代理
Oct 09 PHP
php 显示指定路径下的图片
Oct 29 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
php发送post请求的三种方法
Feb 11 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
yii2安装详细流程
May 23 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 PHP
php数组添加元素方法小结
Dec 20 #PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 #PHP
php中http与https跨域共享session的解决方法
Dec 20 #PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 #PHP
thinkphp中session和cookie无效的解决方法
Dec 19 #PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 #PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 #PHP
You might like
PHP开发入门教程之面向对象
2006/12/05 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php中filter_input函数用法分析
2014/11/15 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
PHP检测用户语言的方法
2015/06/15 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python复制文件代码实现
2013/12/23 Python
Python定时器实例代码
2017/11/01 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
详解Python3中的 input() 函数
2020/03/18 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
医院总经理岗位职责
2014/02/04 职场文书
英语教师自荐信
2014/05/26 职场文书
锦旗标语大全
2014/06/23 职场文书
个人借款协议书范本
2014/11/17 职场文书
电影建党伟业观后感
2015/06/01 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书