摘要: 【转载 FROM】http://www.oschina.net/question/1579_472311.不要使用相对路径常常会看到:require_once('http://www.cnblogs.com/lib/some_class.php');该方法有很多缺点:它首先查找指定的php包含路径, 然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录.另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了.因此最佳选择是使用绝对路径:define('ROOT' , '/var/www 阅读全文
posted @ 2013-04-03 17:02 yuanwangwu 阅读(121) 评论(0) 推荐(0)
摘要: 安装PEAR 阅读全文
posted @ 2012-08-02 15:22 yuanwangwu 阅读(388) 评论(0) 推荐(0)
摘要: mysql> create table jackbillow (ip int unsigned, name char(1));Query OK, 0 rows affected (0.02 sec)mysql> insert into jackbillow values(inet_aton('192.168.1.200'), 'A'), (inet_aton('200.100.30.241'), 'B');Query OK, 2 rows affected (0.00 sec)Records: 2Duplicates: 阅读全文
posted @ 2012-08-02 11:21 yuanwangwu 阅读(147) 评论(0) 推荐(0)
摘要: 坏味常用重构重复,p76Extract Method(110),Extract Class(149),Pull Up Method(322),,Form Template Method(345)过长函数,p76Extract Method(110),Replace Temp With Query(120),Replace Method with Method Object(135),Decompose Conditional(238)过大的类,p78Extract Class(149),Extract Subclass(330),Extract Interface(341),Replace D 阅读全文
posted @ 2012-05-03 13:26 yuanwangwu 阅读(335) 评论(0) 推荐(0)
摘要: 思维导图点击下图,查看大图。介绍条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们。全文简述(你可直接跳过下面的内容) 核心重构:Decompose Conditional——分离”转辙逻辑“(switching logic)和”操作细节“(details)分离。 多处测试有相同结果:Consolidate Conditional Expresssion 条件代码中去掉重复成分:Consolidate Duplicate 标识特殊情况:Replace Nested Conditional with Guard Clauses 去除讨厌的控制标记:Remove Con... 阅读全文
posted @ 2012-05-03 09:28 yuanwangwu 阅读(195) 评论(0) 推荐(0)
摘要: 思维导图介绍 前几篇系列文章,我比较关注的是<PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一、二。 今天谈得是“接口”,此接口非“Interface”,而是一个统称。我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口。——可能还有别的意思,毕竟我现在还属于“菜鸟”,如果有理解上的错误,请指正。 我们知道“容易被理解和被使用的接口”,是开发良好面向对象软件的关键。——本文将介绍“使接口变得更 阅读全文
posted @ 2012-05-03 09:28 yuanwangwu 阅读(142) 评论(0) 推荐(0)
摘要: 思维导图介绍承接上文的PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数继续重构方面的内容。这章主要针对数据的重构。1、争论的声音——直接访问Field还是通过函数(Accessor)访问Field2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象。——数据结构更清晰。专业术语accessor:访问者,存储器——在本文翻译为“函数”dumb:哑domain class:用以处理业务逻辑presentation class:用以处理”数据表现形式“business logic: 阅读全文
posted @ 2012-05-03 09:27 yuanwangwu 阅读(142) 评论(1) 推荐(0)
摘要: 思维导图索引:ØMove Method(搬移函数)Ø Move Field(搬移值域)Ø Extract Class(提炼类)Ø Inline Class(将类内联化,就是把当前的类合并到其他类中)Ø Hide Delegate(隐藏委托关系)Ø Remove Middle Man( 移除中间人)Ø Introduce Foreign Method(引入外加函数)Ø Introduce Local Extension(引入本地扩展)介绍承接上文PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数,继续说重构 阅读全文
posted @ 2012-05-03 09:26 yuanwangwu 阅读(152) 评论(0) 推荐(0)
摘要: 点击下图,可以看大图。介绍我把我比较喜欢的和比较关注的地方写下来和大家分享。上次我写了篇《php 跟老大的对话》。还是有很多疑问,这书帮了我不少的忙。如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的。你可以通过比较截图中的代码就能知道孰优孰劣了。代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服。专业术语我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性。以下的英文单词,你如果掌握了,与其他coder交流的时候会更直接,更专业。——臭显摆一下吧,呵呵。“*”表示文中经常提到的inline:内联function: 阅读全文
posted @ 2012-05-03 09:25 yuanwangwu 阅读(160) 评论(0) 推荐(0)
摘要: 本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美文。最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过 阅读全文
posted @ 2011-12-07 18:18 yuanwangwu 阅读(702) 评论(0) 推荐(0)