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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
PHP 替换模板变量实现步骤
Aug 24 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
对于PHP 5.4 你必须要知道的
Aug 07 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
php获取301跳转URL简单实例
Dec 16 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
php商品对比功能代码分享
Sep 24 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
php实现微信企业转账功能
Oct 02 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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/01/12 PHP
YII中assets的使用示例
2014/07/31 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
php读取本地json文件的实例
2018/03/07 PHP
js传值 判断
2006/10/26 Javascript
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
Python装饰器基础详解
2016/03/09 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
pytorch 数据集图片显示方法
2018/07/26 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python如何重新加载模块
2020/07/29 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
利用python爬取有道词典的方法
2020/12/08 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
五五普法心得体会
2014/09/04 职场文书
红色经典观后感
2015/06/18 职场文书
新郎结婚感言
2015/07/31 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android