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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
PHP文件读写操作之文件写入代码
Jan 13 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
PHP将字符串首字母大小写转换的实例
Jan 21 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
PHP中危险的file_put_contents函数详解
Nov 04 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 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错误提示及查错方法
2015/07/14 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
javascript常用的方法分享
2015/07/01 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python如何实现反向迭代
2018/03/20 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python tkinter组件使用详解
2019/09/16 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python函数式编程实例详解
2020/01/17 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
商业活动邀请函
2014/02/04 职场文书
学校献爱心活动总结
2014/07/08 职场文书
新郎新娘答谢词
2015/01/04 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
运动会5000米加油稿
2015/07/21 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python