Web基础开发要解决的问题,往往也就是那些框架出现的目的 - 要解决问题。

1. 便捷的Db操作;

2. 高效的表单处理;

3. 灵活的Url路由;

4. 合理的代码组织结构;

5. 架构延伸 缓存、安全、DB扩展等

6. 丰富的类库;

每种框架的哲学,决定了它最终的用户群体。

其中关于表单处理,因为同时涉及前后端编码,往往是开发中最繁杂、最耗时的工序。

因此,很多人想办法封装了前后端表单验证规则、甚至于表单控件,以便减少繁琐与重复的编码。常见的解决方案有:

1. Pear QuickForm

2. Zebra From

3. Yii Model

4. 其他各种框架内置Form处理

第一二两种是集成式方案,完全通过PHP构造表单元素及对应的验证规则 - 当然也是可以自行定制前端显示方案的,实现一次编码,前后端通用,已经是了不起的设计了。

但感觉耦合度还是有点高,而且表单数据的收集往往是为了跟数据库产生交互,也就是说表单中的数据一般还要用于DB操作。表单数据处理完了,不代表就能直接用到DB操作中。

Yii的这种方案,尤其是它的AR方案:以后台数据库端为起点,对使用场景进行倒推。通过它的Gii工具,根据数据库结构生成DB模型,DB的各种规则自动被映射到模型类中。字段验证规则与对应的ActiveForm挂件结合,实现前后端同步验证,而且耦合度很低,前端界面可完全自定义。基础的验证规则按照统一的规范,可自行扩展,同时确保每种验证规则都具有高度的复用性。

应该来说,这是我目前见到过的最合理的解决方案。

其他不再多说,主要是做一个思路上的小结。

Web基础开发最核心要解决的问题的更多相关文章

  1. 《JavaScript & jQuery交互式Web前端开发》之JavaScript基础指令

           在本节中.你将開始学习阅读和编写JavaScript代码,还将学习怎样编写Web浏览器可以遵照运行的指令.在開始学习后面章节中的更复杂的概念之前.我们先学习语言的一些核心部分,然后看看怎 ...

  2. 零基础学习Web前端开发

    目录 技术背景 开发环境 学习过程 参考资料 结束语 技术背景 什么是前端开发? 前端开发是创建Web页面或App等将界面呈现给用户的过程.通过使用 HTML,CSS,JavaScript,以及它们衍 ...

  3. WEB前端开发CSS基础样式全面总结

    Web前端开发css基础样式全面总结 颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-2 ...

  4. Web前端开发基础 第一天(Html和CSS)

    学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户 ...

  5. 网络统计学与web前端开发基础技术

    网络统计学与web前端开发基础技术 学习web前端开发基础技术(网页设计)需要了解:HTML.CSS.JavaScript三种语言.下面我们就来了解一下这三门技术在网页设计中的用途: HTML是网页内 ...

  6. 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)

    原文地址:http://www.larryullman.com/2009/10/15/understanding-mvc-part-3/ 全系列INDEX [原创翻译]认识MVC设计模式:web应用开 ...

  7. Repractise基础篇:Web应用开发七日谈

    Repractise基础篇:Web应用开发七日谈 本来想的仅仅是画一个例如以下的七日图来说说Web开发的.随后又想了想这似乎是一个非常棒的Web开发相关的知识介绍.应用开发是一个非常有意思的循环,多数 ...

  8. Web前端开发工程师需要掌握哪些核心技能?

    Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢? 1.开发语言 HTML发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又 ...

  9. (数据科学学习手札102)Python+Dash快速web应用开发——基础概念篇

    本文示例代码与数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的新系列教程Python+Dash快 ...

随机推荐

  1. QQ空间直播秒开优化实践[读]

    http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=2649796799&idx=1&sn=42061b7d021b8d8 ...

  2. [Compose] 21. Apply Natural Transformations in everyday work

    We see three varied examples of where natural transformations come in handy. const Right = x => ( ...

  3. C# Use Pop3Client to read gmail

    host = "pop.gmail.com" user = "xxxxx@gmail.com" password = "xxxx" port ...

  4. C# 向Http服务器送出 POST 请求

    //向Http服务器送出 POST 请求 public string m_PostSubmit(string strUrl,string strParam) { string strResult = ...

  5. 读写文本(.txt)文件 .NET

    http://www.cnblogs.com/jx270/archive/2013/04/14/3020456.html (一) 读取文件 如果你要读取的文件内容不是很多,可以使用 File.Read ...

  6. C# barcode生成代码

    protected void Page_Load(object sender, EventArgs e) { string code = Request.Params["code" ...

  7. 带着问题学 Spring MVC 源码: 一、概述

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 简单就好,生活可以很德国 Q:什么是 Spring MVC ? ※ Spring MVC 是 S ...

  8. BeginInvoke与Invoke的区别

    简单的讲就是 BeginInvoke不需要等待方法运行完毕,就会继续执行下面的代码 Invoke则必须等待Invoke中的代码运行完毕,才会继续执行下面的代码. 可以通过下面的项目测试上面所描述的观点 ...

  9. Win7“当前用户没有安装Microsoft Office"

    故障:在win7 win10系统已安装office2007~但打开word excel应用程序时提示"当前用户没有安装Microsoft Office". 原因:office200 ...

  10. JavaScript进阶内容1:各种对象类型判断

    该文章主要用来介绍JavaScript中常用的一些对象检测判断方法,整理资源来自书本和网络,如有错误或说明不详之处,望评论提出,本菜定提名感谢……(本文章知识比较基础,大牛请提些意见再绕道,三克油^_ ...