浏览模式: 标准 | 列表分类:PHP Framework
Submitted by gouki on 2008, August 16, 12:16 PM
Copy from framework.zend.com , it's submitted of
and someone were comments for this news,
XML/HTML代码
- This is really great news! I am currently using JSON as the interface format between my Zend Framework and Flex app. This week I've been considering switching to amfphp (Lee Brimelow prepared a screencast http://www.gotoandlearn.com/player.php?id=78), but I didn't want to refactor/change all of my code. Zend_Amf is great news. I can't wait to begin using it. Cheers Adobe!
这样看来,以后ADOBE或许也会主动参与了吧?
Tags: amf, zf, adobe
PHP Framework | 评论:0
| 阅读:21078
Submitted by gouki on 2008, July 30, 11:04 PM
TP的COOKIE类是被封装好的,里面包含了一些常见的操作,set,get,clear等等,其实TP的cookie类与其他的COOKIE有着明显的不同,那就是TP的COOKIE ID是唯一的(不好意思,在我写完这段的时候,为了防止写错,我又重新打开了cookie.class.php,却突然发现,现在的cookie功能与以前的不一样了。)
以前的set函数是类似于这样:
PHP代码
- $_COOKIE[C('COOKIE_ID')][C('COOKIE_PREFIX').$name] = $value ;
如今的又恢复成:
PHP代码
- $_COOKIE[C('COOKIE_PREFIX').$name] = $value;
既然如此,我还是按最新的稍作讲解吧。。。
Cookie类,固名思意,就是把对COOKIE的操作进行了封装,通过定义一个COOKIE名的前缀,以防与其他COOKIE产生冲突,然后加上COOKIE变量的名称,就可以进行赋值、取值等。
Cookie类所有的操作都采用了静态方法,即在实际应用中,只要加载了Cookie类,就可以随时使用了:
PHP代码
- <?
-
- Cookie::get('test');
-
-
- Cookie::set('test','123456');
-
-
对于这些封装,可以方便使用,同样需要注意的是,在Cookie操作时,请不要输出header,否则可能会出现header already send的warning,同时无法写cookie,这点请需要注意。
另外一个需要注意的是,cookie在不同的浏览器下面有着不同的限制,最常见的就是cookie的长度,请尽量不要超过4K的字节。
参考资料:
FF浏览器
- * 一个 Cookie 档案最多只能包含 300 个 Cookies。(这只适用于 Netscape,因为它把所有的 Cookie 都放在一个档案。)
- * 每一个 Cookie 的大小不得超过 4KB。
- * 每一个 URL 路径,最多只能设定 20 个 Cookie。
Tags: thinkphp, cookie, class
PHP Framework | 评论:0
| 阅读:27724
Submitted by gouki on 2008, June 26, 11:02 PM
如果你在使用ThinkPHP框架的时候不想采用TP自带的模版系统,而使用第三方的模版系统,你有很多其他的选择,在这里我仅介绍Smarty这种比较官方,而且比较强大的模版系统。
由于Smarty兼容PHP4,因此,它的效率会相对低一点点,这个低只是相对的,估计等Smarty啥时候正式放弃PHP4的时候,效率可能会上很大一个台阶。
………………………………………………
最多请看全文。
» 阅读全文
Tags: smarty, thinkphp
PHP Framework | 评论:2
| 阅读:34492
Submitted by gouki on 2008, April 23, 9:29 AM
ThinkPHP的模版引擎强大就强大在于它可以使用XML标签来为TP模版引擎进行扩展,因此TP的标签功能就成了TP模版的亮点所在。要想让TP的模版功能更加强大,你就得学会扩展TP的标签功能,即:自定义标签
开发自定义标签功能的时候,有几个注意的地方,
1、文件名的规范性,这个当然是不用多解释了,TagLibInput.class.php
(TagLib加是你定义的标签名,首字符大写,这样你的文件名中的Input就会自动认为你的XML文件名)
2、目录所在:目前暂时还是存放到THINKPHP的核心类库里,目录为:/THINKPHP/Lib/Think/Template
主程序文件放到:/THINKPHP/Lib/Think/Template/TagLib/ 目录下
自定义的XML文件放到:/THINKPHP/Lib/Think/Template/Tags/ 目录下
(自定义的文件是小写的标签名,即刚才类名中的Input的小写)
注意事顶:
如果你发现你自定义的标签没有被解析,请按如下方法进行检查(以input标签为例)
1、查看文件开始的地方是否加载了<tagLib name="cx,html,input" />,同时,请检查是否符合XML规范,如:标签一定要闭合。例:<br />,否则会出现XML解析错误
2、检查文件是否都为UTF-8编码,因为在解析XML的时候,都是采用UTF8编码,如果不是UTF8编码,会出现一些奇怪的解析错误,很多时候都会出现simpleXml解析器错误,如果出现这种错误,请检查文件编码,如果是UTF8编码的文件,请同时检查文件头是否存在BOM标记。
3、自定义的标签中,是否忘了双引号。由于在写HTML的时候,很容易忽略双引号,比如<input type=text name=name>,如果是这样,在被当成XML解析的时候,肯定会报错的,正确的写法应该是:<input type="text" name="name" value="value" />(标签要闭合),如果是自己自定义的标签,则应该这样写:<input:text name="" value="" />
Tags: thinkphp, 标签
PHP Framework | 评论:0
| 阅读:33595
Submitted by gouki on 2008, April 23, 9:13 AM
使用ThinkPHP自带的模版引擎处理模版问题时,一般情况下不会有什么问题。
但是,在处理一些XHTML模版时,可能会遇到以下问题,比如,模版作者在制作模版时,为了规范页面,往往在文件头部加上<?xml version="1.0" encoding="utf-8"?>,表明文件是属于XML规范,所有的标签都必须遵循XML的相关规定。
然而,默认的ThinkPHP模版引擎在处理的时候会出现错误,处理这个错误的情况有以下几种办法。
第一种方法:你尝试关闭PHP的短标签功能
第二种方法:试着用<literal></literal>标签把XML的标签包含起来,即
<literal><?xml version="1.0" encoding="utf-8"?></literal>
第三种方法:修改ThinkPHP/Lib/Think/Template/ThinkTemplate.class.php的compiler函数,在函数的最后一行return $templContent;前加入
PHP代码
-
- $tmplContent = preg_replace('/(<?(?!php|=|$))/i', '<?php echo '\1'; ?>'."n", $tmplContent );
任何一种方法理论上都可以,第一种第二种方法实在不行的时候,再用第三种,毕竟第三种方法是改动核心的,如果以后更新核心库,可能会不当心就覆盖掉了。
不过,流年说过了,他已经更新了模板引擎的解析类,并且专门判断了是否开启了短标签,如果开启的话会自动用第三种方法解析。更新下SVN的ThinkTemplate.class.php 文件就可以了(可能压缩包还没有同步更新[2008-04-22])。
Tags: thinkphp, template, 短标签
PHP Framework | 评论:0
| 阅读:27959