首页
版块
教程
交流
话题
官网
搜索
登录
注册
首页
>
服务器运维
>
PHP搅拌机
>
PHP自定义框架增删改查范本
回复
« 返回列表
切切嘶语
U声U色
UID
72386
粉丝
1
关注
0
发帖数
1
铜币
12枚
威望
12点
贡献
0点
加关注
写私信
阅读:
2176
回复:
0
PHP自定义框架增删改查范本
楼主
#
更多
只看楼主
倒序阅读
发布于:2014-02-16 11:08
数据库
控制器
第三方
数据表
action
保存
任何一个MVC结构都有运用的套路,或许称为流程。了解这个套路是应用结构进行疾速开发的条件。假如要运用一个没有运用过的结构开发,最佳做一个增修改查程序来先摸透这个结构的套路。
以下是一个自定义结构的增修改查版别,这个范本做的数据处理略微杂乱,所以也比通常的增修改查要杂乱。这儿记载一下范文,用于将来备用。
结构首要进入view目录依据mod定位类,然后依据act调用视图办法,在这个办法中能够依照套路调用相对应的action,action再去调用相对应的model。(这儿的View实习即是控制器人物,不过命名为View,实习混淆了控制器和视图)。这儿的Action和Model实习都是MVC中的M,M归于事务逻辑,依据实习,M能够有多种完成方法,TableGateway的方法是最常见的,这儿的Action即是事务逻辑,Model即是TableGateway,Action需求和数据库交互时,需求调用TableGateway进行操作,这个方法通常要求数据表和TableGateway有一个对应联系,TableGateway只专心于和数据库的交互逻辑(也包括和第三方API交互)。具体来说,比如更新 和 刺进操作,控制器接纳数据,能够做一定的底子处理,提交给Action,Action做逻辑处理,调用Model更新或刺进数据,然后回来成果给控制器,控制器依据成果和视图交互。理论上,数据提交到Action是应当由控制器来负责的,可是实习上为了便利,通常在Action中直接接纳来自客户端的数据(比如$_GET $_POST),这个行动实习上严重破坏了Action层,使得Action很难或许底子无法重用,假如这么操作,还不如直接在控制器中完成,底子不需求绕个圈。
Action和Model都是MVC中的M,所以在控制器中运用Action和Model都是合理的。因为有些数据的获取,不一定非要通过Action,只有需求对数据进行加工处理时(事务逻辑)才需求通过Action,Model虽然应当专心于和数据库的交互逻辑,可是也能够参加一些其它的底子逻辑,特别是很简单的数据,底子不需求绕个圈通过Action来完成。由此可见,代码安排可能会引进紊乱。事务逻辑能够写在控制器中,也写在Action中,也写在Model中,看来,开发标准的问题是需求强制性要求才能够……
每个View类从BaseView继承:
[td]标题:[/td]
[td]
类目:
{foreach $cateList as $iid=>$cca}
请选择
{foreach $cca as $cidx=>$cvle}
{$cvle['name']}
{/foreach}
{/foreach}
[/td]
[td]平台站点:
选择站点
{foreach from=$platformSiteView key=k item=val}
{$val}
{/foreach}
[/td]
[td]
添加
[/td]
[td]序号[/td]
[td]标题[/td]
[td]子类目[/td]
[td]站点[/td]
[td]操作[/td]
{if count($list) > 0}
{foreach from=$list key=ikey item=ival}
[td]{$ikey+1}[/td]
[td]{$ival['title']}[/td]
[td]{$ival['erpCates']}[/td]
[td]{$ival['sites']}[/td]
[td]编辑 -- 删除[/td]
{/foreach}
{/if}
[td=4,1]{$show_page}[/td]
#############################
##title_add.html
[td]
标题:
[/td]
[td]
类目:
[/td]
[td]
站点:
{foreach $platformSite as $idx=>$pval}
{if $idx == 0}
[*]全选
{else}
{foreach $pval['site'] as $pidx=>$pidv}
{if $pidx == 0}
[*]{$pval['name']} -- 全选
{else}
[*]{$pidv['name']}
{/if}
{/foreach}
{/if}
{/foreach}
[/td]
[td]
[/td]
###############################
##title_modify.html
[td][/td]
[td]
类目:
[/td]
[td]
{foreach $sites as $idx=>$pval}
{if $idx == 0}
[*]全选
{else}
{foreach $pval['site'] as $pidx=>$pidv}
{if $pidx == 0}
[*]{$pval['name']} -- 全选
{else}
[*]{$pidv['name']}
{/if}
{/foreach}
{/if}
{/foreach}
[/td]
[td]
[/td]
这里需要注意的是,GET 和 POST过去的数据,对应g_xxx和p_xxx这样的形式返回到模板,可以使用它们填充表单,不过面对复杂数据时(比如单选 和 多选,还是自己处理为好,参考以上的数据回显)。
BaseView中定义了view_updateData,view_addData,view_delData,view_getSingleData对应了Action的同名方法(需要自定义),在这些方法中接收参数,调用Model处理数据,数据返回到View方法中,在View方法中再次对这个结果进行JSON封装输出,参考以上的示例,这个是为Ajax方法的交互做准备的。
喜欢
40
评分
0
最新喜欢:
回复
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
返回顶部
关闭
最新喜欢