作者HuangJC (吹笛牧童)
看板PHP
标题Re: [CakePHP] 请问 $session 怎麽产生的?
时间Mon Jul 14 02:02:26 2008
谢谢大家
有时我会绕远路
奇怪的是,不绕一下远路还搞不懂原来这是远路 :P
就算同事说'你应该先看XXX',我还是看不下去
觉得根本无法建立整体印象
: trace CakePHP 时,第一步就被它卡死了 ~^_^~
:
: $session->read
为什麽我要找这个函式呢?
而後来我又发另一篇 POST
说我伪造了这个函式,做出我要的东西
其实,後来我走了捷径
直接 print_r 结果;整句应该补完来讨论
$user = $session->read('user');
print_r($user);
好,其实这是一个网页的帐号登入部份
最後我自己比对资料库,自己把帐号伪造出来了
一开始其实我是想抄,看能不能找到函式就抄来用
(前情提要:同事写了整个程式,但我不能从他的程式进入点进去,却要做到相同的事
我可以看到资料库,所以我可以直接从资料库拿我想要的东西)
捞资料库的程式我不熟,所以想抄一段
最後还是觉得自己写比较快,我根本没空 Trace 庞大的 CakePHP XD
不过,随着时间推移,迟早 Cake 部份会有更多工作交给我
所以我必需争取时间学习,这一点也没错
那我绕了什麽远路呢?
其实只要 print_r 就可以查到 $session 是什麽 class
然後全域搜寻 function read,再辅以 class name 应该就搞定了
何必在乎 caller..(但我陷进去了,忘了重点)
不过学了 XDebug 後,它还是很有帮助 XD
明天再来拼
class::read 这个函式的内容,猛然一看,仍然没做到 database access
看来还有一段路要 trace
不过我已经把手上的程式毁了,没有备份
所以明天进公司还原後再继续学习吧~
绕这麽一大圈,我还是没很了解,cake 可以帮我省下什麽
虽然说它是 framework
这样说吧,VC++ 上的 MFC 我已经用很久了
一但启用它,我就拥有开档,存档,分页(MDI),而还不必自己动手写程式
这个叫 Document-View 架构
就是一个 Document 可能用很多不同的 Viewer Class 去看它
所以才要这样切
(有些书一直教'怎麽做',却没教它的目的,所以我摸熟後才体会到的
我也另外学过 BCB,它就没这种架构,它以 View 为主
由 VC 转过去的工程师会很习惯的先产生一个 data class,其实就是 Document
但如果是由 BCB 学起,很容易会把 data 放在第一个 View
而其他 View 就一直用指标去第一个 View 里捞资料,切不乾净但也写得出程式
它的问题是:假设今天第一个 View 用不到,也不能 delete 它,只能 hide
因为它事实上保存资料;然後我们当然会想把 data 移出 View 另外保管
自然自己也进化出了 Document-View 架构了;其实很自然)
那 cake 的 MVC,我还没体会到为什麽是切成三块,M/V/C
我主要是从 phpbb2 学起
它也有 template 要代换,也有资料库要使用
我会觉得程式切成 templte & data base 很自然
也就是论譠的资料管理及画面展现,当然应该切成两块
这就很像 VC 的 Document-View
那..为什麽现在是 M/V/C :P
我想到很久以前,另一个同事放的大绝,不知是不是该用在这里:
其实有很多种架构,并不只 Document-View
只不过 VC 主推这种,我们又用 VC,所以我们就变这种
好,那其实现在是不是说,因为 Cake 很好用,我们选了 Cake
而 Cake 主推 MVC,所以我们就变 MVC :P
如果这就是答案
那就是:这种资源存在得多,所以我们用了
不过我还没进入 MVC 的世界,嘿..
也许 MVC 自己就写得出一套 bbs
那我干麻这麽辛苦去看 phpbb2 咧.. XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.179.152
※ 编辑: HuangJC 来自: 61.59.179.152 (07/14 02:05)
耶,懂了,谢谢~
Win AP 是单人单机程式,所以对资料库的要求并不大
但是网页是多人多机程式,资料库就显得重要
敝公司曾经写过类似 iPod 的音乐资料库管理
当时就在程式内加载了一个资料库
我曾经问:file access 自己管管音乐及子目录就好,为什麽要有资料库?
答案是:歌曲太多,自己管歌曲不如叫资料库来管
当资料量多,资料库变得重要
Document 就可以进一步区分成 Control & DataBase,
而这里 DataBase 被称为 Model
我记得 phpbb2 里,有一段 class 很漂亮
就是它可以适应四/五套不同的资料库套件
而像我是用 mysql,那它就用 $db=new mysql4; 产生一个物件
这样就可以利用 class 的特性,轻易的相容於不同的 database 指令间
....但难道我要说 phpbb2 已经是 MVC 了吗? XD
也许有程度上的差别吧!
不过的确一切开就漂亮了
※ 编辑: HuangJC 来自: 61.59.179.152 (07/14 02:37)