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


Posted in PHP onDecember 21, 2014

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

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

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

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

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

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

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

PHP 相关文章推荐
PHP的FTP学习(一)[转自奥索]
Oct 09 PHP
PHP在Web开发领域的优势
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP7内核之Reference详解
Mar 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的session过期设置
2013/06/29 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Python pymongo模块用法示例
2018/03/31 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
北京奥运会口号
2014/06/21 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
招商银行收入证明
2015/06/17 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
MySQL学习之基础命令实操总结
2022/03/19 MySQL
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers