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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
如何在php中正确的使用json
Aug 06 PHP
php构造函数实例讲解
Nov 13 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
PHP会话处理的10个函数
Aug 11 PHP
php正则表达式学习笔记
Nov 13 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 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
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
在Python中使用__slots__方法的详细教程
2015/04/28 Python
python编程线性回归代码示例
2017/12/07 Python
python web基础之加载静态文件实例
2018/03/20 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
幼儿园家长评语
2014/02/10 职场文书
工会主席岗位责任制
2014/02/11 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript