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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
用PHP 4.2书写安全的脚本
Oct 09 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php操作mongoDB实例分析
Dec 29 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 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设计模式 Visitor 访问者模式
2011/06/28 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python编程之属性和方法实例详解
2015/05/19 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python批量修改xml属性的实现方式
2020/03/05 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
百联网上商城:i百联
2017/01/28 全球购物
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
美国零售商店:Blue&Cream
2017/04/07 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
建筑专业自荐信
2013/10/18 职场文书
个人简历中的自我评价范例
2013/10/29 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python