PHP 板


LINE

看板 PHP  RSS
※ 引述《tkdmaf (皮皮快跑)》之铭言: : 至於这个外挂什麽时候会开始释出beta版我还在思考中。 : 毕竟挂上去时会改变不少ci的特性。 : 虽然用意是希望让ci变得更好用,更严谨,也更安全些。 : (也解除了部份不需要安全的请求,原本被强制处理的问题) : 估计等我解决了restful_controller的xml格式吧。(json格式已做) : (还有要重构以及处理一些用不到的code) 目前的改革进度变这样了,当然都还是实验阶段。 较新的进度是重新修改了资料夹的路径 在application底下新增了app资料夹 结构: app -controllers -dispatchers -models -views -widgets routes.php 说明: controllers <==就是原本的controllers,预设先找这一层,找不到就会去 原本的controllers找 dispatchers <==本来想用viewcontrollers,但是没有底线怪怪的。 view_controllers感觉更怪。 於是想到用这个,就有点类似控制、调度的意思。 不过本意是因为disp像是display的缩写。 models <== 我想不用多做解释了吧。只是要注意写在这里就得挂上namespace。 views <== 这应该也不用解释了。 widgets <== 新做的功能,新的位置。 关於这个dispatchers我得好好来说明了。 它跟controllers不同在於原本的controllers只视为功能性的控制。 而disptchers则是view_controller。 二者继承的对象也不同,controllers继承BaseController 而disptchers则是继承ViewController(同功能可继承的还有ViewDispatcher,因为 我还拿不定主意要留那个名称) 用途也不同,继承自ViewController的话,你就必须给予layout的档名。 事实上…这是一个controller对应一个layout view的具体实现。 重点是他主要切开一个画面中可能有多个资料实现的混杂情形。 虽然很多人可能又把很多流程或资料写在model,但怎麽都觉得混乱。 一个明白的例子像这样: 结构: app -dispacthers -front -demo file:DemoDispacther.php file:DemoLayout.php file:DemoModel.php <?php use app\dispatchers\front\demo\DemoModel; class DemoDispatcher extends ViewController { protected $_view = 'front/demo/DemoLayout'; function index($id){ $this->id = $id; } function _model_row() { return DemoModel::find($this->id); } function _model_query() { return DemoModel:all(); } } 如上述这样设置的话。 你在DemoLayout.php这个view档案将可以直接取得$row和$query 系统本身会过滤带有_model_的函式并将後续的名称转成变数放进view(应该称layout)。 另外关於url的部份,如果你的index未带参数就可以省略index 要注意的是在dispatchers中。index是必定被执行的对象。 当然,在index中return的资料必须是阵列,而且会原原本本的反应在view。 这个具体的要求只有一点:一个controllers的layout只对应一个layout view。 我知道可能有些是把参数填写函式,以参数名来决定view。 但这种使用的情况绝少,真有这种情形建议使用controller当做特殊流程处理。 大多数的时候,不同的view要载入的资料根本上也是不同的。 其中要注意一点就是关於ViewLayout并没有放在View资料夹这件事。 我会告诉你其实model的档案你也不一定要放在models中 如果你的MVC是一个模组化的整板面的功能。 我反而不建议分开来放。 我自己的心得常常就是明明就只是单纯同一个模组下的单一MVC结构。 却要把controllers、models、views分的大老远。 何必如此? 而且这样的好处是如果你这个模组结构是可以套给另一个专案使用你只要整个资料 夹复制过去再来改一改就好了。而不用一个档案一个档案去找对应的放置位置。 当然,原本的$this->load->model(),$this->load->library() 或是常常用的$this->input->post()之类的是可以正常使用的。 再来就是routes.php我将他复制到app底下了。 因为外挂本身已经锁定原本的url呼叫controller是行不动的。 所以会很频繁的设置routes 不过有一个很重要的改变就是 $route['default_controller] = 'main'; 如果你这样设,但是并没有main这个controller时 他会自动去找$route_controller的设定如下: $route_controller = [ 'main' => 'front/MainController' ]; 并且自动对应。 其他的models和views用法基本上就没什麽不同。 只是在这边models必须使用namespace才能取得正确的model路径这一点要注意。 widgets目前我资料夹移过来了但功能还没移。 这几天会改过来。 其他的功能还在陆陆续续边想边实现中。 一些觉得怪怪的东西也会持续修正。 同样希望大家有什麽意见或建意请给予指教。 (先存档,文章可能会有修正) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.204.102.32
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1445016786.A.B4D.html ※ 编辑: tkdmaf (123.204.102.32), 10/17/2015 01:45:34







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP