搜索
首页后端开发php教程mvc 和 ajax 的问题..

前一段时间,我学完php,html,mysql,JavaScript 一些基本的东西后,我在这里问 网页 和 php 实现互交,
也就是前台和后台分开写怎么弄.

有人告诉我用 MVC 有人 跟我说用 ajax,

然后就我自学了ajax,然后一般简单的也会弄了..

我昨天看 mvc 的 thinkphp 教程,看了三集教程后,发现其实很多东西,貌似用 ajax 更简单..,而且ajax 可以提交到多个 *.php 文件, 根据客户端的不同动作事件实时反馈结果..

我问问 mvc 还有必须学习吗?他真正的用途在哪里?

希望跟我说说呗,举个实例什么的,我也不在it行业,我在一个屠宰场上班,要是说的太专业术语化,我也看不懂,希望大家言简意骇的,举个例子说说呗..谢谢了!

回复内容:

前一段时间,我学完php,html,mysql,JavaScript 一些基本的东西后,我在这里问 网页 和 php 实现互交,
也就是前台和后台分开写怎么弄.

有人告诉我用 MVC 有人 跟我说用 ajax,

然后就我自学了ajax,然后一般简单的也会弄了..

我昨天看 mvc 的 thinkphp 教程,看了三集教程后,发现其实很多东西,貌似用 ajax 更简单..,而且ajax 可以提交到多个 *.php 文件, 根据客户端的不同动作事件实时反馈结果..

我问问 mvc 还有必须学习吗?他真正的用途在哪里?

希望跟我说说呗,举个实例什么的,我也不在it行业,我在一个屠宰场上班,要是说的太专业术语化,我也看不懂,希望大家言简意骇的,举个例子说说呗..谢谢了!

这两件事其实一点关系都没有,初学者认为MVC是一种架构方式,但实际上我个人认为这是一种思想。我的理解是这样的:
对于任意交互,都可以简化为一个三步走的过程,即
1- 访问者对服务器发起请求,服务器识别该请求是否有效(就像你到传达室说找xxx,传达室可能告诉你没这个人)
2- 对于有效的请求进行处理
3- 将处理结果反馈给访问者
其中 识别请求有效性,如果有效则处理 属于控制器部分,而具体的处理过程 属于模型,最终反馈的结果通常需要更友好的效果,就是V了(所以一种说法是直接返回json就不需要v了,另一种说法是将数据格式化为json也是一种v的应用)
这个思想是符合迭代的,比如对于一个函数来说,函数的命名就是C,处理过程是M,return是V。

理解该思想的好处是什么?
例如SEO优化,是对C的调整,其余不受影响
例如业务逻辑变更,是对M的调整,其余不受影响
例如UI改善,是对V的调整,其余不受影响
结合前面说到的迭代思想,基于广义MVC编写的代码具有更好的可维护性,如:

<code>class User {
    public function save(array $data) {
        $this->_valid($data);
        $id = $this->_save($data);
        return $this->find($id);
    }
    protected function _valid(array $data) {
        //...
    }
    protected function _save(array $data) {
        //...
    }
    public function find(int $id) {
        $data = ...;
        return $this->_formatData($data);
    }
    protected function _formatData(array $data) {
        //...
        return $data;
    }
}</code>

M 模型,V 视图,C 控制器
ajax 是在V视图中请求C控制器 对前后端进行数据交互
都要好好学习。
顺便问一下,现在屠宰场也要互联网信息化了吗?

我初学时也曾对MVC这个概念相当模糊,但找实习一般都会问:MVC是什么呀?你怎么理解MVC呀?
无奈,只能背下来:M是模型model,用于数据处理,V是试图view,用于展示页面,C是控制器controller,用于进行逻辑处理。。。
后来工作一段时间之后,才对MVC的应用有一点简单的认知。
我们写一个页面,目的是输出一句话:'good good study,day day up!',那么,我们可以新建一个index.php文件,里面写下:

<code>


    <meta charset="UTF-8">
    <title>Document</title>


    <h1><?php echo 'good good study,day day up!'; ?></h1>

</code>

这样,我们的目的就实现了,在这儿,需要所谓的MVC么?不需要!
但是,如果我们需要做一个有很多功能的网站,我们怎么办呢,也像这样一个php文件对应着实现一个网站页面的所有功能?
这个时候,我们就需要对此进行一个技术上的分离(MVC):
假如有一个页面:localhost/article/5,这个页面的作用是展示id为5的文章相关内容,那么,在C(控制层Controller)中,我们需要实现这个请求的逻辑处理,那么请求的逻辑是什么呢:

<code>/*
第一步:获取到文章的id,$id = $_GET['article'];
第二步:获取文章内容,M->get('article',$id);
第三步:展示文章内容,show($data)
*/</code>

M(模型model)层的作用是数据处理,那么,我们可以在M层连接数据库进行一些数据查询处理,然后在C层调用M层的方法获取到我们需要的数据,然后展示出来!
V(试图view)层的作用是展示页面,我们在C层接收到M层处理好的数据,然后这些数据通过V层的一些方法展示到试图模板中的指定位置,然后展示到浏览器!

这么看起来,真是麻烦诶!
可是仔细想一想,如果在一个大项目中,没有合理的结构约束,全是混乱无序的代码,那么以后我们怎么维护?而且一个项目通常是多人合作开发,如果是混乱的代码结构,那么怎么合作?

没有时间了,先写这些,将就看看

无论是mvc还是mmvc等等等,这些设计典范最终的目的就是为了减少代码冗余度,方便扩展与维护。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具