Heim >php教程 >php手册 >如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本

如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本

WBOY
WBOYOriginal
2016-06-13 10:52:26883Durchsuche

等下要去坐车,今天就不继续唠叨开发过程了,来谈一下普遍比较关心的后台语言问题。
学习Ext JS,笔者一直强调学习的中心思路是“界面与数据是分离”。只要好好掌握这个思路,深入了解Ext JS的运作过程,就不会为后台语言使用什么而困扰了。可以说,只要思路明确,要将一个Ext JS项目迁移到不同的后台语言平台,那是轻而易举的事。下面就以本示例做一个简单的讲述。
如 果你放下语言的包袱,坚持把本示例的文章看完,会有一个感觉,就是客户端的脚本文件和后台语言的结合文件,只有一个,就是首页index.cshtml, 如果把该文件里的脚本都抽离出来,基本上,Ext JS与开发语言平台就没任何关系了,把Scripts目录复制到任何语言平台项目,都可以直接使用,修改的地方基本就是地址。如果使用 Ext.Direct,这个就更彻底了,基本不需要做任何修改,后台语言有对应的方法就行了。如果清楚这一点,就好办了。
例如,要将本示例修改为Java版本的,如果Java架构不支持认证的验证,就把首页拆分成两个文件,一个专门是登录用的,一个是登录后跳转到的页面,这种方式估计熟悉Web开发的已经是家常便饭了。
在Ext JS中,主要的数据提交方式有三种:
1.        表 单形式提交,该方式虽然也用Ajax方式提交,但是,后台的处理与基本的表单提交形式是没有任何区别的,因而,后台的数据处理方式,没什么难度,你懂的! 不懂?这……好好补补HTML知识吧。这个最好的示例就是登录窗口的提交,可以尝试用自己熟悉的语言做一下练习。
2.        Ajax形式提交,这里的例子就是用户登录里的重置密码了,虽然数据格式不固定,但是提交参数是自己或项目已经定义好的,后台的数据处理方式与处理表单提交的数据区别不大。
3.        Store 同步数据的提交方式,只要定义好Writer,使用同一种数据提交方式,那么后台数据处理方式是基本一致的。例如用户管理里的添加、编辑和删除操作,提交 的数据都要从data关键字里提取,然后需要通过服务器端JSON对象的parse方法将提交的数据转换为JSON数组,再提取出具体的数据对象处理。 Java的处理基本可以参照书中1.2.6节的方式进行处理。其它语言则可寻找相应的JSON库来处理。
在Ext JS中,数据的返回格式也是基本固定的,在示例中,目前的返回格式是两种:
1、  表单的错误信息:
{
     success : true 或 false,
     errors : {
            field1 : "错误信息",
            field2 : "错误信息",
            ...
     }
}
2、  其它数据
{
     success : true 或 false,
     total : 数据总数,
     data  : [...],
     Msg   : "错误信息"
}
 
在示例中,无论是Store的同步操作还是Ajax数据的提交,都使用了第2种数据的返回格式,该格式基本是通用的。
清 楚了Ext JS数据提交格式和返回格式,就知道如何提取数据和返回数据。只要按格式正确返回数据,Ext JS就能正常运行,不受任何后台语言的影响。至于在后台,使用什么语言,什么数据库,都没问题,这些都是开发人员已经掌握的技术,余下的就是根据格式返回 数据。因而,要修改本示例也不难了。
例如,要显示用户数据,无论数据表格是什么结构,你从数据库中把数据提取出来后,根据格式2组织好数据返回就行了。你说你不懂怎么从数据库提取数据?这……这,我也教不了。
要添加用户,先根据提交格式把数据提取出来,然后使用自己的数据库添加数据方式把数据添加到数据库,根据数据返回格式2,把成功添加或添加失败的信息返回客户端,就是这么简单。编辑和删除的基本步骤也是这样的。
至于权限的控制,各种语言都有自己的方式,最简单的就是在各操作方法头部进行验证,如果验证发现不符合权限要求,那就根据数据返回格式2返回一个success为false,Msg信息为“您没有权限访问”的数据就行了。
数据处理方式清楚后,余下的就是要让Ext JS各操作的数据提交地址与服务器中的方法对应上,这个有Web开发基础的,不会太难。
以上粗略的介绍了将本示例修改为不同语言的版本的方式,如果有什么不明白的地方,欢迎给笔者留言,共同探讨不同语言的开发方式。如果有兴趣将本示例修改为不同语言版本的,而无从下手的,也欢迎与笔者联系,共同把本示例修改为不同语言版本的示例,供大家学习。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn