Entries in the ‘PHP相关’ Category:

程序员进阶的建议:多看、多写、多交流

很多初学者都说入门之后不知道该如何提高,我都是告诉他们多实践。最近在我们的团队中建立了一个学生的实习小组,我在和他们讲授程序设计分析的时候,我也给他们了个小建议写代码就是多看、多写,后来又补上一点:多交流。
我认为不管是做什么行业或工作,只要专注都可以有自己不同的成就。因此我觉得做任何事必需要有热情,而且是持续的热情,有一句话说“好的开始是成功的一半,持之以恒是成功的另一半”我很认同,所以自己的认定的事情就应该坚持的去做。我提出了三多:多看、多写、多交流,来将热情付出行动。
这里谈到的是当你入门后怎么使自己不段的提高的一些方法,可能只是一些片面之词,但我相信只要你去做了都会有一些收获。
在 我们开始学习程序,都必须对一些基础知识进行学习,例如语法、常用的内置函数,就PHP来说内置函数有成百上千个(没有统计过),就常用的也有上百个。怎 么才可以对这些逐个掌握?死记硬背?这是一个常人都无法做到的,即使是记住了,通常能否灵活的应用还要打个问号。那该怎么做呢?
首先是多看,看技术文章,看开源代码。
技 术文章应该不必多说,这是学习新技术和积累技术的必备渠道。这里我谈谈该怎么看,很多人包括我自已有时候,只是看一遍就算了,这样的结果一般都是知其然不 知所以然。我认为要把别人的东西变成自己的必须实践。把文章所说的技术通过自己理解的写出来并改进,并在合适的时候尽快应用的你的实际工作中。
再 说看代码,一是一些网友的代码,这里就要有一个观念,就是不能迷信别人的代码,应该客观的去看,学习别人的方法的时候,应该去考虑它是否有问题,应该是辩 证的态度对对待,如果有问题自己试着去解决,并和他们交流。二是看开源项目中的代码,这类就不仅仅是看代码了还有框架、设计思想等。我建议每个人至少看到 1到2套开源代码,因为我认为开源代码对自己的提高比一般的技术文章要快的很多。首先它们都是一些较为成功的项目,在成功项目中其实包含了原作者的经验和 其项目不断改进中产生的非富经验。对于开源项目,我的方法是先从它的入口文件看起一般是index.php看它的整体文件结构,再看它的公共文件里的内 容,具体的一些常用的工具类,这样会对整个项目的结构有一个了解,然后就是你所兴趣的功能的具体实现代码,并详细搞懂他的实现方式和原理。在看的过程中你 肯定可以学到很多有价值的东西。我个人的经验是:看的最多的是DZ的代码,其它项目也很多,但比较全面的还是dz的代码。个人认为看代码还是比较速成的一 种方式,因为别人的走过的路你就不需要再走了,站在巨人的肩膀上总是可以走的更快更远。
关于多写其实 上面也提到了,学习后的东西应该要马上实践,并尽快在合适的时候应用到自己的工作中,这样才能收获的更多更快。另一方面是自己尝试着去写一些小项目,只有 去做一完整性的项目才是最有价值的实践,但在做这些实践中我认为应该严格的要求自己,既然是为了学习,就不是应该敷衍了事,尽可能把所有细节都处理的最 好。还有就是时间一定要要求自己,不能拖,一方面是要给自己压力,二是如果时间拖的太久思路和激情没法持续的话,那你的计划很可能最终会失败并不了了之。
开 篇我提到很多初学者都说入门之后不知道该如何提高,我都告诉他们要多写,为什么会无法提高,我认为是没有目标,只要你给自己定一个目标,然后去实现,完成 后其实也达到自己提高的目的了。例如你去写一个简单的博客程序,在实现的过程中会遇到很多问题,再逐一去解决,这样你就有了学习的方向了,解决问题就是积 累经验和学习的过程。总的来说要给自己设置一个需要完成的目标,这个目标是什么有什么内容,什么时候完成都很清楚。
其实说到这里就可以回答上面该如何去掌握那么多的函数呢,当你看过和写过很多代码后你会发现你所掌握的函数和方法已经很多了,这就是在实践的过程中无形产生的结果。所以什么语法之类的基础的东西是不需要去死亡硬背的,在运用的时候自然就可以对它驾轻就熟。
最 后我认为做技术的交流很重要,因为做技术是个永无止境的学习过程,而交流是一种更有效的学习方式。因为每个人的知识系统都是不同的,每个人掌握的东西不 同,思维方式各异。所以交流就是一个互相学习和促进的过程,当你把自己的想法与别人交流你就会收获更多新的想法。交流是一咱倍速增长的过程,前一段我写了 一篇《当你开启一扇门的时候,很多扇门将为你开启》给我们的团队就是想表达这个想法。
交流有很多的, 有线上的有线下的,大家都有上论坛的习惯,这是一种交流方式,但我认为线下交流更有效,语言的交流比文字的交流方式更直接和全面。因为我是PEA福州的常 委之一,很多线下活动是由我组织的,从参加人数来看并不是很理想,所以我认为做技术的应该更开放一些,多参加类似PEA的这种交流。
交流一定要是开放的,所以在交流中应该是一种包容的心态去面对。也就是说我们是持有自己想法的时候也应该耐心倾听他人的意见,不能认死理。只有站在客观的角度去看问题才能把问题看的更透彻,只有不抵触才能让自己学到更多的东西。
在我们的技术团队中有定期的技术分享会,目的就是为了建立交流的平台,让大家都尝试表达自己的意见,锻炼自己的能力,并可以和更多的人去交流。
最后总结一下,多看,吸收别人的经验转化为自己所用,多写,全面性的锻炼自己的能力,多交流,利用众人的智慧。三多更多的就是去做。
本文投稿在《PHPer》http://www.phpchina.com/phper/25/06.html

Leave a Comment

myois暂不更新 不维护

很多人对myois感兴趣,但由于工作原因myois暂不更新 不维护,请谅解。
还有很多人想和我交流extjs,但我基本没研究了。

Leave a Comment

有事没事微博一下http://t.sina.com.cn/zifa

有事没事微博一下http://t.sina.com.cn/zifa

Leave a Comment

2009的那些事

开始起手写这个日志的时候,特意回顾了一下过去几年写的总结,06,07都写了,但08年没写,看来当时实在是没啥想法,当然本来今年也没什么欲望写的,但是到了最后一天的时候还是颇有感想的。
怎么说呢?(某人口头馋)时间倒回到364天前,但是突然没什么记忆了,时间再往前走,发现8月份前基本没什么事情发生,可能是因为太过于安逸,或者说碌碌无为吧。生活过于平淡看来真是很可怕,《士兵突击》成才说他都回忆不起在军营的事情时候是很痛苦的,我想很多人都有这样的经历。但在8月后发生了很多惊天动地的事情,无论从我个人来说,还是273,当然是273是给我创造了这样的环境。
第一次参加管理培训
8月份的某个周末得到一次参加GC大课培训的机会,主题是《全员现场管理》第一次正面的接触了一些管理的理论知识,课程讲授的不错,感受比较深,对管理也增加了一些认识,当然学习之后的实践要靠自己,我们老总说如果不把自己学到的东西应用到工作中去,那学习是没有意义的,我很认同这个说法。当然一次学习并不能有很大的改变,更多的要自己去实践和领悟。这次也算是启蒙课吧,是一个好的开始。
向陌生人要钱
其实参加培训并不算什么大事,因为在这个过程中有件更加有挑战的事,就是在中午吃饭时老总给我们一个“不可能完成”的任务:向陌生人要10块钱(前提是不能骗人)。我相信很多人都觉得很不可失意,这不是乞丐吗?呵呵,这是一个突破自我的挑战,就看你敢不敢去挑战了。结果让大家失望了,我没要到,但我从不敢开口到找了10几个人去要,已经是有突破,但还是还是很失落,因为我的几个同事都完成任务了要到了。我当时确实想不通为啥就我要不到呢我已经很努力了,我想啊想想了很久,后来老总鼓励我说再去要,在后面的时候我确实去要过一次,但是仍然没有成功。失落中….(未完待续,请耐心往下看)
273精英特训营
要说这个特训营是273的大事可一点都不夸张,这个特别的培训对很多人都起到人很大的影响,对我来说是震撼一点都不夸张,让我相信人都是向上的,只是在什么样的环境下,会有什么人把它给调动起来,人都有是有很大的潜力的,关键就看你怎么去发掘,好马也要有伯乐来发现。现在已经不是酒香不怕巷子深的时候了,有才就要秀出来,只要有机会的时候就应该去争取。
还有就是不抛弃不放弃的精神,人一定要有坚定信念,要有目标,没有目标方向是迷茫的。

再要钱
又来了,还是这件事,刚才说了还没完,痛苦啊,你说烦不烦。
老总请吃饭,看来总有些“好事”,这次没记错的话在第一期特训营后的一天大家一起吃饭,饭吃了差不多后,老总就挑起了一个话题:如果你一个人来到陌生城市(身上没钱)你做的第一件事是什么,这又是一个很有挑战的事,当然我知道是不会实施的,成本太高了!!,这时我就有预感会发生上次那件事。事情还是发生了,要钱这件事,继续吧。
这次我出发就想了,TMD这次一定要要到,要不到就不回去了(绝对真实)。当然这次算是有点经验了,但是还是那么不顺利要了N个人还是没成功,1个多小时过去了,我当时在天峰门口,我想这里进出的人应该不会在意那10块钱的,但是还是碰了很多壁,就在这个时候,开来一辆皇冠,我想啊,有钱人应该有戏,人从车里出来了,我看面相还行,上去和他说“麻烦你能不能帮个忙,我有急事需要10块钱,你能不能给我”,他说:“没带钱”,我想不可能吧,坚持,跟着他,还是说没带,一直到他走进一个卫生所里,我也不知道他在里面说什么,我当时急了,不行还是进去找他,我进去后开口了,这时他脸拉下来了“年纪轻轻的不去工作要什么钱”,当时我就明白了他把我当成骗子了,我很委屈,我说不是。后来怎么说他都不相信,我也很火了,这时候旁边的一个护士有兴趣了,我看到她有意图了解发生了什么事,马上过去和她说了这事,刚开始他也不相信,我这时想:都已经这样了,什么面子都没了一定要坚持下去,在这个过程中那个皇冠男走了,我只能纠缠这个“MM”了,在这个过程中,她工作时我就不打扰,在旁边站岗,他要是回到位置,我就和她扯,说的是“我很需要你的帮助,这10块钱对我很重要,对我会有很大的帮助…”之类的,这个过程持续了快半个小时之久,具体说的东西很多我不记得了,后来她说要下班了,那我就想那我就等你下班,过几分钟后确实有有人接班了,这时他就去找了10块给我,我心里大喜,对她说了很多感谢。拿着这个战果回去汇报了….
这件事总算是完了,不过对我来说真的是很大的突破,我也很高兴,突破自己就是马上行动并坚持到底。
好长是吧,但是已经是精简版了,精彩的故事当然要慢慢的说。这个故事本来想写后来又放弃,今天还是作为重大的事件放在2009年的总结当中,我想现在的读者一定会有感受,那么请留言。
第二期特训营,这里就不重点介绍了,这次由我们中层主管作会务,为我们的员工服务,在会务中我当的是DJ,算是幸运,我的计划就是做DJ然后PK赢了别一个同事,做DJ看似容易其实没那么简单,但是你看着大家在你控制的音乐下,激情高涨的时候是很有成就感的。当然除了DJ,还学到了很多其它的东西,就不在这里细说了。
帮助他人成长
作为一个主管我是很希望大家都能很好的状态去工作,去生活。通过我们用心努力多多少少影响了一些人,帮助了一些人改变了心态,其实人的心态改变是一个飞越性的改变,如果有一个好的心态去对待你的生活,一切都会是往好的方向走的。我确实是用心的去对待我们的团队成员的,看到他们的成长,心情就像是看到自己的孩子成长一样的高兴,至少我是这样的感受。有的时候我们的一点点行为,一点点努力如果能帮助到别人,我觉得确实是非常有意义的事情。

我当讲师
最好的培训是自我培训,学习是自己的事。我们公司举行了一系列的培训课程由各位主管当讲师,你想提高什么就讲什么,这就是自我培训。当时我讲的是《项目管理》,之前关于技术的一些分享也做过,但是这次不同讲的不是技术,学员是我们公司的同事,这次培训算是我第一次上了一次大课,虽然有所不足的地方,但还是有很多收获。
我当主持人
就在前天公司总部的月度大会是我是主持人之一。这个事是我没有想到来的这么快的,而且大家可能都出乎意料。这次是通过我“幸运”的PK获得的机会,当时主持大会的重任落到我们部门,我就让我们的人来推荐,本来我们推荐了另两个同事,后来他们也要推荐我,我就接受了,也没想会当选,大家后来投票却是我高票当选了,我当时想干就干。其实很早我对主持也很兴趣但觉得还需要再锻炼锻炼再去争取这个机会,没想到这么快就来了。这次也发现了我们部门真是人才备出,我们美女设计师当时我都没想到她会愿意做这个主持,不仅她做了,还做的特别好,主持稿基本是他写的,还有就是气氛很好的打电话环节最初创意也是来自她。
这次主持当然还是有不足的地方,总体效果还是很好的,这让我很高兴,特有成就感,第一次做主持就能有这个的效果真是很不容易呀,后来我最深的感受就是其实很多事情没有你想象的那么困难,想到就去做就行了,只要你想做好就一定会往好的方向发展。
——————————————————————————————————–
我相信有些人如果看了这些都觉得我是不是在胡扯,因为大家对我的映象是很内向的是一个人,这都不是我不可能去干的事情,大家都觉得我不爱说话(其实是因为没有能挑起的话题)怎么可能当讲师,怎么能做主持人。其实我回想起来也有点不可思议,这是我吗,我是这样的吗。但这就是真真实发生过的事,这就是我在2009的突破,在沟通上很大的突破,我想现在任何场合让我发表10分钟演讲都是没有问题的,这就是真正的成长,当然还有更多,管理、技术、心态等等很多,最后当然是感谢273给我创造的这么多学习和锻炼的机会,才有今天这样的结果。
今年的展望就是像2009年一样能有比较大的突破,在系统组织能力上提高,宏观规划能力能有提高,接触更多的技术层面,生活更好,更没那么无聊,还有更多…

Comments (1)

5个PHP编程的好习惯

有些人问,优秀程序员和大牛有什么区别,大概有10到20种吧。因为大牛有很好的编程习惯和丰富的经验,所以他们非常的高效。如果不好的编程习惯出现在你的代码里,你的代码效率就会降低。本文阐述一些好的编程习惯,他们可以让你成为更好的程序员。
这些习惯能让你的代码在高效运行的同时提高可维护性。你写代码的时候,可能大部分时间都浪费在维护上了,程序的维护代价很高。培养良好的编程习惯,如模块化设计,可以让你的代码可读性更好,从而容易维护。
代码中的问题往往伴随着不良的编程习惯,而且后者会导致代码不好修改并可能出现新的缺陷。下面有五个好的编程习惯,将帮你避免这些陷阱:

使用友好的命名方式。
使用更精悍短小的代码。
注释你的代码。
编写异常处理。
永远,永远不要复制粘贴.(玉米:我深深的同意这一点)

下面的章节将解释这些习惯。

Comments (2)

一个图片展示页面的优化过程

这个案例说来很简单,但是优化无非就是细节处理,一步一步的改进。
案例地址:http://www.273.cn/sale/attachs.php?id=1389561&objectId=1400535
功能概述:当前大图显示,上一张 下一张  小图列表
1.sql查询优化
原始代码情况:
1.查询列表
2.查询当前图片信息
3.查询上一张
4.查询下一张
原来的代码查询了数据库4次,我们可以考虑下这样做太夸张了,其实2,3,4的信息在1的查询结果中里存在的,也就是说可以直接省去下面三次的查询,通过算法来从1.结果中得到:
具体代码近期公布。
2.页面跳转改成前端js处理
原来的小图链接 上一张 下一张都是链接。也就是每看一张图都要重新请求服务器并查询数据库,所以链接改成js事件处理,这样每看一张图只需要下载大图片就行了,这样如果有四张图,原来4pv就减少为1Pv了。
现在的效果就在这个阶段。
3.生成静态页
因为这个图片信息变化的可能性很小完全可以静态化,具体没啥可说的了。
如果说从最初阶段到最3步优化全部做完,整体性能可以提高500%以上。

Leave a Comment

高效编程所需要做的14件事

计划(Plan)
所谓Plan,其实就是对应于编程中的“设计”阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题:

你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。
需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。
准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。

下面这你因为有“Plan”而得到的好处:

你能够清楚地明白你要做的东西长什么样?
你能清楚知道你要开发的东西要干些什么事?
你能够在开发过程中解决你所有可能发生的难题。

使用伪代码
伪代码是一个非常不错的方式,让你可以看到你要写的程序长什么样?根据 维基百科(Wikipedia),伪代码被写定义成这样:
伪代码是一个紧凑和非正式的从高层描述一个计算机编程算法的结构约定。其主要是为了让人阅读而不是让计算机执行。典型的伪 代码一般会忽略那些算法中不需要人去关心的细节。比如:变量声明,系统调用,或是子程序。在伪代码中,编程语言被自然的人类语言所增强而放大,从而,更方 便,更紧凑。
一些人并不喜欢伪代码,因为他们并不相把同样的代码写两遍,一遍是伪代码,一遍是真代码。其实,这是可以理解的,因为两个copy的东西是比较不好 维护的。但是我想,这是可以权衡的,如果的算法很简单,那么就不需要伪代码了,如果你的算法比较复杂,比较绕,那么,有一个伪代码提纲挈领将会是一件非常 不错的事情,因为他有利于让别人从一个简单的文档来了解一个复杂的算法或系统。这就好像一个电线的布线图一样,你可以很容易地通过一个简单的文档从复杂的 实现中找到头绪。

书写清楚的注释
请在你的代码中书写清楚的程序注释。当然,注释不是越多越好,注释应该是简明扼要的,如果你的程序足够地清楚简单,那么注释就会显的多余。另外,注释应该是注释“原因,理由,目的”,而不是注释“是什么”,在“酷壳”的另一篇文章《惹恼程序员的十件事》中,有一条就是关于坏的注释是多么的另个讨厌。

使用自动的编辑工具
自动的编辑工具有很多,比如 Typinator, 这是一个可以通过设定一些替代的简单代码来实现重复语句的快捷插入,比如你自己的签名、常用的语句等等,通过它可以设定替代的简短代码。还有其它一些代码 自动完成的工具,比如一些VC的插件,还有像Source Insight这样的东西。别小看这一点点时间,如果你每天都在写代码的话,今天一点点,明天一点点,将会为你省出很多的时间。

减少代码
减少代码的数量,坚持DRY(Don’t Repeat Yourself) 和KISS(Keep It Simple & Stupid) 原则。这样可以有交物减少代码的复杂度,提高程序的易读性和可维护性,同时也能增加代码的质量。

代码重用
DRY (don’t repeat yourself) 原则就是告诉我们需要重用现有的代码。这样,你才能够站在巨人的肩膀之上,从而可以更多的关注和自己所要处理业务的逻辑。编程的最高境界就是写出来的代码是可能被重用的,重用和泛型这是编程里始终在追求的目标。

代码重构
一些老的代码可能已经不合时宜了,比较以前老的C++的STL库在多线程下可能会出现很多问题。所以,我们自己的代码也是一样的,每过一段时间,我 们需要把这些代码回收再利用,这就是软件的重构。重构代码所追求的并不是要提供更多的功能,而是让老的代码更有生命力,让老的代码跟上时代,更具扩展性, 灵活性。

使用设计模式
设计模式是一种从代码级解决某一些问题的方法论。这个世界上有很多很多的设计模式,比如MVC,单实例,工厂,观察者等等,等等。使用好的设计模式可以让你的代码更具重用和扩展性。关于设计模式,请参看本站的另一篇文章《101个设计模式》

使用程序框架Framework
Frameworks 是一份给程序员的礼物,他们帮助你完成了很多很细节的事情,他们有可能是一个lib库,你需要进行简单的拼装,一个几乎完成了的软件框架就已形成。这是一 个能够给开发工作提速的东西。只要上网随便搜一搜,你可以看到太多太多的框架了。形形色色,几乎都是开源社区贡献的。

泛型编程
如果抽像出一些程序中相似的东西,然后把这些相似的东西用一个标准的东西实现,这也是编程所追求的最高境界之一,像诸如C++中的STL之类的东西就是此类东西的最佳体现。灵活之及,几乎都快放之四海皆准了。

使用开源的代码
这个世界上有太多太多开源的代码了。学会利用他们可以让你更节省时间和精力,因为我们完全没有必要把相当的东西实现若干次,学会使用开源的代码不但是一个学习的过程,同样也是一个增加编程效率的事情。

完善开发环境
开发环境非常重要,因为好的开发环境可以让你事倍功半。他们可以让你不需要关注别的东西,比如,我曾看过某程序员在调整编辑器的字体和高亮上花费了不少工夫。是的,这是值得肯定了,只有把开发环境变得舒服,才能让自己更好的编程。

使用调试器
学会使用调试器来调试代码,单步跟踪,变量值跟踪,内存,堆栈等等。熟练地使用调试器可以让你更好的查找程序的问题,以得到最优的代码。

使用版本管理工具
版本管理工具应该是任何程序员都应该要去学会使用的东西,特别在一个团队中,如何管理程序的不同版本,如何维护,存放代码,版本管理工具绝对是开发过程中不可少的东西。其意义绝对不只代码备份和共享那么简单。下面是一些开源的管理管理工具:Git,SVN,CVS和Bazaar。

Leave a Comment

老人言

《The Elements of Programming Style 》是一本很古老的书。尽管 Fortran 我们不太使用,尽管新奇的语言层出不穷,但这些,30 年的岁月依旧无法掩盖其中的真知灼见。
英文版的 google 一下到处有,云风试着摘译几条。
* 把代码写清楚,别耍小聪明。
* 想干什么,讲的简单点、直接点。
* 只要有可能,使用库函数。
* 避免使用太多的临时变量。
* ”效率“不是牺牲清晰性的理由。
* 让机器去干那些脏活。
* 重复的表达式应该换成函数调用。
* 加上括号、避免歧义。
* [...]

Comments (2)

PHPExcel常用方法汇总

PHPExcel官網:http://phpexcel.codeplex.com/

<?
//设置PHPExcel类库的include path
set_include_path(’.’. PATH_SEPARATOR .
‘D:\Zeal\PHP_LIBS’ . PATH_SEPARATOR .
[...]

Leave a Comment

BugFree和SVN的整合

目前我使用的代码管理工具,转过来分享。
—————————————————————————————————————————————
Subversion是目前主流的版本管理工具之一,在很多项目的开发中我们都可以看到它的身影。
每次fix bug并提交代码到SVN,必然会有一些文件更新(或增加、或删除),那么如何将这些文件的更新信息同BugFree中被fix的Bug有机的结合起来呢?下面的内容能够帮助你实现这一目的。
一、准备工作

安装/升级至BugFree2.0.2
在Subversion的服务器上安装php
安装 ViewVC(一种web端浏览Subversion的工具)。如果没有比较版本历史差异的需求,可跳过此步骤
下载BugFreeforSVN.tar.gz

BugFreeforSVN.tar.gz中的文件说明:

svn_ci.php :用于向BugFree提交svn信息的php脚本。你可以将此文件放置在Subversion服务器的某个目录,如:/somwhere/svn_ci.php
post-commit:svn每次成功提交后触发的钩子脚本。应将此文件放置在代码库的hooks目录中,如:/home/svnadmin/repos/yourproject/hooks/。一般情况下,你应该给该文件设置可执行权限。
cd /home/svnadmin/repos/yourproject/hooks/
chmod +x post-commit

post-commit.bat:功能同上,用于windows平台
class.http.php:第三方的http类文件。你也可以到 http://www.phpfour.com/lib/http 自行下载

二、修改配置
修改svn_ci.php:

define(’API_NEWLINE’, chr(0×03));  // API行分隔符,默认不用修改
define(’API_DEVIDER’, chr(0×04));  // API列分隔符,默认不用修改
define(’API_KEY’, ‘YOUR_KEY’);     // API加密KEY,请参考BugFree的Include/Api.inc.php中的值进行修改
define(’API’, “http://127.0.0.1/bugfree/api.php”);  // BugFree的api地址
define(’USER_NAME’, ‘admin’);    // 用于向BugFree提交svn信息的用户名(建议设为管理员之一,这样可以修改所有的Bug)
define(’USER_PASSWORD’, ‘e10adc3949ba59abbe56e057f20f883e’); // 用户加密后的密码(默认是md5(原始密码))
define(’VIEWVC’, ‘http://bugfree.svn.sourceforge.net/viewvc/bugfree/’); // ViewVC查看代码的根地址

修改post-commit:

PHP_EXE=’/phppath/php’  #php可执行文件的路径
CHECK_IN_PHP=’/somwhere/svn_ci.php’    #svn_ci.php的路径
SVN_LOOK_EXE=’/svnpath/svnlook’   #svnlook可执行文件的路径

windows平台下post-commit.bat的修改可参考post-commit
三、如何使用
每次提交代码时,在注释里填写含有” fix bug #123” 等类似格式的信息,就会把相应的文件更新信息提交到BugFree中。
例:

修改文件branch/BugFree2.0_demo/Bug.php
提交修改,假设此次fix的Bug号为123: svn ci -m ‘ fix bug #123 ‘
查看BugFree中Bug号为123的Bug,则会发现其多了一行类似以下格式的注释:

2008-08-08 08:08:08 Edited by admin
Changeset [559] by leeyupeng, 2008-08-08 08:08:08 +0800 (Fri, 8 Aug 2008)
U   branch/BugFree2.0_demo/Bug.php  [diff]

注释说明:

[559]:提交后的版本号
leeyupeng [...]

Comments (1)