Submitted by gouki on 2009, September 27, 9:44 AM
PHP5.3现在或许有N多人在研究在测试了。虽然那个namespace长的丑了一点。但不影响其他功能对我的影响。
haohappy在这里作了介绍,有部分资料以前介绍过,我这里就不多介绍,我所转的只是我认为的一些新特性
CLASS相关
1、静态类可以动态调用,即类似于 $aa::$bb($cc) 这样的调用方式,以前只能使用call_user_func(array($aa,$bb),$cc)这样的方式来调用
2、静态类增加了 __callStatic,类似于__call,但这是专为静态类使用的。
3、类中增加了__invoke方法(haohappy没有介绍,我也没有翻手册)
Nowdoc,
说这个nowdoc,恐怕很多人不明白,还有heredoc,还是很多人不明白这是什么,如果说到“定界符”,也许会有人记得。这是在国内被翻译的名词吧?
PHP代码
- <?php
- print <<<EOT
- xxxx
- EOT;
关于定界符的功能,我不想多说,可以翻手册,nowdoc,的功能和用法是什么呢?以上面的代码为例,是在第一个EOT处,为EOT加上单引号,即 <<<'EOT',在这样的操作下,整个定界符中的变量将不会被解析,比较适合用来处理大段的 PHP 代码
常量定义方式增加
原来的常量定义是:define("XXX",XXX);如今 又增加了一个新的方法: const XXX = "XXX";
三元运算符增加了一个快捷书写方式: ?:【感觉和以前的那种 for 循环的简写有点类似,忽略部分参数。。。】
原本格式为是(expr1) ? (expr2) : (expr3)
如果expr1结果为True,则返回expr2的结果。
PHP5.3新增一种书写方式,可以省略中间部分,书写为expr1 ?: expr3
如果expr1结果为True,则返回expr1的结果
HTTP状态码在200-399范围内均被认为访问成功
支持嵌套处理异常(Exception)
新的垃圾收集器(GC),并默认启用
Tags: haohappy
PHP | 评论:0
| 阅读:16710
Submitted by gouki on 2009, September 25, 10:59 AM
本文首发在www.ucapi.com,康盛系列中同步登录的注意事项,呵呵。在这里 也留一份啦
康盛目前的产品基本上都使用了ucenter,甚至一些已经卖掉的产品中也有使用ucenter的,比如Ecmall等。
其实很多时候你会发现,你明明在A系统中登录了。但是却没有登录到B系统。这其中有一部分是网页在跳转的时候,代码没有来得及执行完毕导致,但也有一部分是因为这几个系统中的接口有点小小的问题。
现在,我们来还原一下问题产生的情景。
1、到论坛注册一个用户,登录。理论上,这时候康盛所有的产品应该都能够登录了,因此这个注册用户已经在ucenter的用户表中了。
2、打开supesite,你会发现,他会提示您需要登录。再打开uchome,也是如此的提示。一个冷冰冰的登录窗口依然显示在那里。
3、打开ecmall,你会发现,咦,怎么登录了?真奇怪啊。为什么有两个系统没有登录,一个系统登录了?
4、现在,我们重新一一登录supesite和uchome。然后退出系统。再在论坛登录,你会发现,咦。怎么都登录了?原来显示登录窗口的supesite和uchome都已经登录了,这是什么呢?
5、现在我们打开这两个系统的接口仔细分析一下,同时再打开这两个程序的登录程序。突然间,你就恍然大悟。原来这两个系统在登录的时候,都会有一个 判断,如果该系统自身的用户表里没有这条记录,那么他们都会先判断用户是否存在,如果确实存在,则往自身的用户表里插入一条记录。然后再进行登录。
6、然而这两个系统的接口文件uc.php中的同步登录函数中,却没有这一条。而只是仅仅的判断是否存在session库中,来判断是否登录。 supesite中还会注册一个activetyuser这样一个cookie,以期你在打开supesite的时候,如果有这个cookie就自动插入 一条记录【然而,这只是虚晃一枪,根本就没有执行过】
7、再回首,我们看一下ecmall,人家写的就简单了。同样的原理,生成一个cookie,在打开页面时,如果有cookie存在,就生成用户【它是确确实实执行了】。
现在明白问题所在了吧?知道这些问题,你其实可以自己在这个同步登录的函数里加上相应的代码就行了【这里就不写了,看官们,自己练练手吧】
最后再说一点小问题,这个其实说的是uchome,uchome除了用户名密码登录外,还有一个自定义问题。所以即使你同步登录了,但如果设置了自定义问题,进入uchome的时候,还是需要再回答一下这个自定义问题。
Over,全部解释完毕。
Tags: 同步登录, ucapi, 康盛
PHP | 评论:1
| 阅读:19383
Submitted by gouki on 2009, September 24, 9:31 AM
本文首发于www.ucapi.com,下篇预告:supesite与uchome等应用在同步登录时注意事项
原文如下:
如果你写了一个WEB程序,你又想与ucenter共用一个用户库,你会怎么做?
来吧,让我告诉你,只要几个简单的步骤就行了。
1、先到ucenter administrator建一个应用,在应用里配置完你的项目的地址,在UC_KEY那里随便输入一些字符串,越长越好。【在这里有配置通讯文件的名 称,好象是提示你在api目录下,你可以定义一个,默认是uc.php】。然后你会一直发现应用列表中,该应用一直是通讯失败。
2、生成应用后,在应用详情的最下方有一个textarea框,这个就是系统帮你生成的连接ucenter的配置文件 。
3、在您的项目根目录下建立一个api目录,里面放上刚才说的通讯文件,默认是uc.php
在通讯文件里定义一些常量,可以从uchome、supesite、等里面拷贝出来,其实就是一些返回值 的常量。
加载刚才ucenter administrator所生成的配置文件。
到comsenz的任何一个程序中拷贝一下authcode函数(一般在common.inc.php或者global.inc.php中)
写上简单的判断代码:
PHP代码
- $code = $_GET['code'];
-
-
- parse_str(authcode($code, ‘DECODE’, UC_KEY), $get);
-
-
- if(time() – $get['time'] > 3600) {
- exit(’Authracation has expiried’);
- }
-
-
- if(emptyempty($get)) {
- exit(’Invalid Request’);
- }
-
-
- $action = $get['action'];
-
-
- if ($action == ‘test’){
- exit(API_RETURN_SUCCEED);
- }
4、写完这样的代码后,去ucenter管理中心看一下应用列表,是不是通讯成功了?
其实那个通讯成功,就是发送了一个 action = test过来。所以当返回1的时候就直接成功了。
不过,由于exit();函数自身的状态,如果参数是字符串,则会直接输出,而如果参数是整数,则仅仅用来表示退出程序,而整数则代表了error code。
If status
is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.
这时候,你就会发现,你必须得使用exit(”1″);才会真正的输出1。【当然,这是PHP的基础,与通信问题不大,在这里提出来,只是为了防止你明明写了exit(1),却不会输出而在那里拼命调试】
OK,到现在为止,一个简单的通讯就完成了。如果你需要更多的功能,可以参考一下server究竟提供了哪些服务,然后写上针对性的代码和判断就可以了。
本文没图,但我相信,说的应该够明白了吧?
Tags: ucenter, ucapi
PHP | 评论:2
| 阅读:21920
Submitted by gouki on 2009, September 23, 10:43 AM
yhustc一大早就很愤青,那是相当的激动啊。顺便还贴了个地址在群里,然后一时间群内议论纷纷。
看了一下,无非就是两票人干架,一方认为有错应该要改,一方认为小错不伤大雅。于是群起纷争。。
记得以前谁说过?技术的事,来不得半点虚假。买过PHP高级编程,haohappy自建了网站,把堪(?)误都列在上面,以期新版再改进。可看这个留言,就让人吃惊了。
【补充】最早的原文在这里:http://www.javaeye.com/topic/474725
以下为部分内容,更多请查看:Yhustc的收藏箱
要学好一门技术,网上有很多免费的资源,搜刮一点确实能入门。但是个人感觉要学好,还是得看书。毕竟书是作者在自己学习的基础上加上一些个人心得或 技巧编著而成,有一些东西也许网上查不到或者不详细,但是书上是有写的。所以真想把一门技术学好,买大于等于一本的经典教程是很有必要的。
但是国内图书市场的情况我想大家都清楚,太过于功利与浮躁。我借阅过很多书,虽然中文作者写出来的确实有很多不错的书籍,但是还有大量的估计是为了 占市场赶工出来的粗糙货,比如是截图与源码对不上一类的错误一堆。再比如两人合著,前一页还是中文版visual studio,一翻页成英文版的了。也许有人觉得这些事情没什么大不了,但是我想下面这篇转载的作者说的有道理,对老鸟也许啥都不是,但对新手这就是一个 坑。
啥都不说了,但愿写书的人都能赚大钱,出版图书的质量也越来越高。
############### 强大的分隔符 ###############
原文链接:http://hax.javaeye.com/blog/474725
直 到今天中午之前,我并没有打算要站出来炮轰这本《JavaScript征途》。因为在目前的技术出版形势下,原创作者面临了很多困难,出书并不易,而且看 得出该书作者(朱印宏,网名css8)技术还是ok的,长久以来在技术社区里也做了不少传播技术的工作。这年头,积攒人品不容易啊!所以一切原本只是停留 在51js论坛上随性而起的 一 些 评 论 而已。
然而这本书的作者对于善意批评所作出的连番回应,却令我大吃一惊,他对自己犯的多处低级错误不仅不以为耻、百般狡辩,还发出“没有其他意思……不是广告”,还不止一处,连参与讨论的一向儒雅和气的爱民,都唯有疯笑以对。尤其是今天上午因为china-pub上一位“5级评论员”提及了51js上的讨论,这有可能影响到该书的销售前景,于是css8就坐不住了,明着或暗着说我“危言耸听”、“不厚道”、“偏激”、“动机不纯”、“扣硕大的黑帽子”、“无知傲慢”……还大喊冤枉。这种无耻行径使我感到不能不把这个争论公诸于众,以正视听。
既然决定要对作者及其书进行公开批评,不得不牵涉到那些给此书写推荐书评的人。包括:
* 蓝色理想网站站长曾沐阳
* 《JavaScript王者归来》作者月影
* 51js超级版主Winter
------OVER----
Tags: 吵架, 书评
Misc | 评论:2
| 阅读:16976
Submitted by gouki on 2009, September 22, 4:52 PM
鸡肋者,食之无味,弃之可惜。
这是杨修被杀前说的话。
PDF查看插件是最新WPS里提供的,使用后,打开PDF,可以很完整的看到书签,然而,内容却全部变成了乱码。
在使用福昕打开后,一切正常。并没有乱码出现。
由此可见,这个PDF查看的插件,还不如没有。
但是,WPS导出PDF的功能还是不错的。至少我挺喜欢。首先不用担心别人再修改我的文档了:其次,如果按照规范做的文档,还能够按层次自动生成书签。
可惜了这个PDF查看插件。
怎么,不相信?有图为证
WPS截图:
福昕截图:
Tags: wps, pdf, 鸡肋
Software | 评论:0
| 阅读:21479