手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP Framework

Yii documents

这两天一直在看Yii框架,也下载了一份API手册,却发现API手册里只有方法的介绍,却没有具体的调用方法,如果是纯方法的话,说实话,我还情愿用IDE的自动完成来查看呢。当然有个API手册在查询的时候会比较方便一点。

那么,有没有真正的manual呢?到官网的documentation分类去看了一下,NND,一堆 英文,不过,在我犀利的眼神下,还是发现了这玩意:The Definitive Guide to Yii ,点开一看,原来这才是类似于PHP手册的manual呀。可惜能够下载的只有PDF版本。更可恨的是,也只有英文版的,算了,将就点吧。。。虽然英文烂了点,一些简单的东西还是能够看得懂的。

如果初学Yii,还是建议看一下这个guide:The Definitive Guide to Yii ,它,有中文版,在:http://www.yiiframework.com/doc/guide/zh_cn/index

左边的树的目录也很清晰,值得一观,不过更建议的是多看一下:http://www.yiiframework.com/doc/guide/zh_cn/basics.application,我最初就是没看这个,一下子不知道如何调用Cache,都想在代码 new Cache之类的了。

--EOF--

后记:感谢烂桔推荐的:http://dreamneverfall.cn/yiidoc/index.htm,烂桔的网站为:http://iorange.cc

Tags: yii, 重构

Yii 笔记二

Yii的用户登录,如果不算上权限的话,恐怕真的是很简单的登录。
简单的判断,简单的处理一下就完事了。
但我今天还真的被简单的折腾了一下。
User登录,需要写几个地方
1、components目录下的UserIdentity.php中,需要加一个判断用户的方法,返回errorCode,当然没有错的话就返回0,这是常用ERROR_NONE
2、model目录下的loginForm,里面有简单的判断处理,如果登录成功,调用CWebUser中的login方法。起初的时候,我一直没找到Yii::app()->user是哪个类。。
3、由于Yii::app()->user->login方法的特殊性,因此,必须要在UserIdentity.php中设定好getId,getName,和states变量。当然最简单的就是判断是否取到用户数据,如果取到的话,直接$this->setPersistentStates($usermodel->getAttributes());如果没有id,name的变量,那么即使你登录了,还是会显示没有登录的。我就是在这里被折腾了好久。

over。。。

Tags: yii, 重构

初用Yii

Yii是在iorange的推荐下使用的,这两天我才刚刚在使用。做点笔记而己,没有其他

1、就象我在neatcn.com写的,创建项目非常简单,yii.bat这个命令就可以完成了。详细就在http://www.neatcn.com/show-57-1.shtml

2、项目目录中components中的文件,会在autoload中被引用,也只有这一个目录下的会被autoload,其他的都是有固定规范的。(不知道有没有理解错)

3、model目录下居然是tablemodel和form两种的集合,有点乱(官方的例子是这样的),不过想着form的validation也是用tablemodel来完成的,又能够理解这种做法,普通的tablemodel类继承cActiveRecord。

4、Controllers目录下是控制类,默认是SiteController,和其他框架默认是indexController有点不一样。继承自CController类。controller类中有一个layout的变量,可以设定layout。一般可以手工指定,如果同一个类里有不同的layout,估计还是要写个方法才行

5、Model的activeRecord返回的是对象,而不是象其他框架默认返回数组,因此取集合时要用getAttributes方法,当然,如果是只有一条数据,也可以直接$model->fieldname这样的方式来获取值 。

才学了这么一点,慢慢来吧。。重构路是漫长的。

Tags: yii, 重构

ThinkPHP经常会遗忘的事

使用THinkPHP框架开发程序,经常容易遗忘的事是什么呢?
1、app runtime没有及时更新
2、datamodel 缓存在更改表结构后没有刷新
3、数据缓存设定的时间太长。而在更改数据后没有主动刷新

4、模版缓存中的 include file 一般不会强制刷新。。

以上是开发注意事情,如果你发现改了一些设置或者其他什么后,死活不正常,请先检查以上四样。

thinkPHP与Ucenter的连接注意事项

这其实是一个老问题,凡是使用ThinkPHP与Ucenter通讯的程序都需要注意一点。。

ThinkPHP定义了一个基类为Base类,而Ucenter也同样定义了一个基类Base类。
ThinkPHP一开始就加载了BASE类,而Ucenter在使用mysql连接的的时候,就会加载BAse类。因此,凡是使用thinkphp的程序,请把ucenter的连接方式从mysql改为空,即,改用post方式通信 。

Over

其实,关于这个BUG,我很早就在discuz论坛提过了。当然也在ThinkPHP论坛提过。但事实上,都没有什么解决方案。而我更推崇的应该是ucenter进行变化。。呵呵

原文我发在了:UCAPI.COM,然后我再去挖挖坑,看看DZ和TP论坛以前是怎么回复的。。

原来,在DZ,根本就没有人理我:http://www.discuz.net/thread-1204869-1-1.html,这是当时说的两个BUG:

http://www.discuz.net/thread-1204869-1-1.html
  1. 1、1.5版的XML解析器可能有问题,我在使用uc_user_login的时候,无法解析,把老版的xml.class.php拷进去,问题解决。也没有仔细看问题在何处。  
  2.   
  3. 2、不算BUG的BUG,由于我使用框架进行开发,自己有个基类为base,在使用MYSQL通讯的时候,它默认加载了uc_client库中的base类,造成类重载错误  
  4. 建议uc_client中的所有类以“uc_”开头,避免与其他系统产生冲突。  

TP论坛我是在群里提的。。。没记录了。唉。。