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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
php4的彩蛋
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
Java中final关键字详解
Aug 10 PHP
微信支付开发交易通知实例
Jul 12 PHP
php微信支付接口开发程序
Aug 02 PHP
Zend Framework前端控制器用法示例
Dec 11 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
PHP解决高并发问题
Apr 01 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
Python入门篇之正则表达式
2014/10/20 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Python 下载及安装详细步骤
2019/11/04 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
Python执行时间的几种计算方法
2020/07/31 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
护理自荐信范文
2013/10/05 职场文书
优秀员工表扬信
2014/01/17 职场文书
英语导游欢迎词
2015/09/30 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS