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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 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模板技术[转]
2007/01/04 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
js日历功能对象
2012/01/12 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
编写Python CGI脚本的教程
2015/06/29 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
深入了解Python数据类型之列表
2016/06/24 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
化工专业个人的求职信范文
2013/11/28 职场文书
公司借条范本
2015/05/25 职场文书
导游词之南京栖霞山
2019/10/18 职场文书