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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
php 中英文语言转换类代码
Aug 11 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
如何用php获取程序执行的时间
Jun 09 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
PHP生成plist数据的方法
Jun 16 PHP
PHP邮箱验证示例教程
Jun 01 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 PHP
WordPress多语言翻译插件 - WPML使用教程
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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
php自定文件保存session的方法
2014/12/10 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
php简单中奖算法(实例)
2017/08/15 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
JS中作用域以及变量范围分析
2020/07/18 Javascript
学习python的几条建议分享
2013/02/10 Python
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
tensorboard显示空白的解决
2020/02/15 Python
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
职务聘任书范文
2014/03/29 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
导师就业推荐信范文
2014/05/22 职场文书
体育专业自荐书
2014/05/29 职场文书
刑事代理授权委托书
2014/09/17 职场文书
立春观后感
2015/06/18 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
图文详解nginx日志切割的实现
2022/01/18 Servers