MVC架构学习之EasyFirst——快点夸我爱学习~

iMooc上的MVC教程练习。

MVC是PHP基础和进阶的分界点吧应该说是

一、准备

工欲善其事~

个人环境:windows10+wamp2.5+ZendStudio12;

项目名称:MVCEasyFirst;

文件命名:testController.class.php

             文件名 控制器     类文件类型

代码标准:PSR-2;

二、搭建

Controller

 1 <?php
 2 namespace MVCEasyFirst\Controller\test;
 3
 4 use MVCEasyFirst\Model\test\testModel;
 5 use MVCEasyFirst\View\test\testView;
 6 //控制器是唯一需要和用户进行连接的地方
 7 //控制器“承上启下”
 8 //控制器负责:1、接收指令;2、调用模型并接收模型处理好的数据;3、调用视图(传递数据给视图)
 9 class testController
10 {
11     public function show()
12     {
13         $testModel=new testModel();
14         $data=$testModel->get();
15         $testView=new testView();
16         $testView->display($data);
17     }
18 }

Model

 1 <?php
 2 namespace MVCEasyFirst\Model\test;
 3
 4 //模型负责:1、接收指令;2、处理并返回数据
 5 //双向,但仅与控制器相连接
 6 class testModel
 7 {
 8     public function get()
 9     {
10         return "Hello world!";
11     }
12 }

View

 1 <?php
 2 namespace MVCEasyFirst\View\test;
 3
 4 //视图负责:1、接受指令;2、显示相关结果给浏览器/用户;
 5 //单向通路,C->V->User
 6 class testView
 7 {
 8     public function display($data)
 9     {
10         echo $data;
11     }
12 }

三、调用

 1 <?php
 2 use MVCEasyFirst\Controller\test\testController;
 3 require_once ‘testController.class.php‘;
 4 require_once ‘testModel.class.php‘;
 5 require_once ‘testView.class.php‘;
 6 //MVC大量依赖引入,推荐require,和我之前想的不太一样
 7 //其实这个问题我个人觉得还是要分情况来说的,看是什么需求,需要运行(警告)还是发现问题所在(错误)
 8
 9 $testController=new testController();
10 $testController->show();

四、小结

简单的小例子,直观的了解MVC模型!!!

注意区分清楚各个模块的“职责”!

再有就是规范开发的情况:

五、入口程序与系统目录的规范化

把 MVC应用到生产中;

单一入口机制:在一个web应用中,所有的请求都指向一个脚本文件,比如alksdjfklajfklj.php,也就是说,所有对程序的访问都是必须通过这个入口。

优点:得以实现MVC;对什么安全什么的也似乎比较方便控制。

系统目录的规范化

我就打算先这么干,至于以后那再说。

六、简化M\V\C调用

前面说过,MVC大量以来引用/调用,所以对于调用,不如写一个函数来集成/封装

 1 <?php
 2 namespace MVC\func;
 3 //一些框架中简化用到的函数
 4
 5 function C($name,$method)
 6 {
 7     require_once ‘/libs/Controller/‘.$name.‘Controller.class.php‘;
 8     //eval(‘$obj=new ‘.$name.‘Controller();$obj->‘.$method.‘();‘);
 9     $controller=$name.‘Controller‘;
10     $obj=new $controller();
11     $obj->$method();
12 }
13
14 function M($name)
15 {
16     require_once ‘libs/Model/‘.$name.‘Model.class.php‘;
17     $model=$name.‘Model‘;
18     $obj=new $model();
19     return $obj;
20 }
21
22 function V($name)
23 {
24     require_once ‘libs/View/‘.$name.‘View.class.php‘;
25     $view=$name.‘View‘;
26     $obj=new $view();
27     return $obj;
28 }

其中,eval函数我也是第一次用,视频中讲不安全,就换成下面这些就好。

1 <?php
2 require_once ‘func.php‘;
3
4 \MVC\func\C(‘test‘, ‘show‘);
1 <?php
2 class testController
3 {
4     public function show()
5     {
6         echo "hello";
7     }
8 }

--------4/28更新---------------

我的环境问题或者其他什么,动态实例化类不可行,暂时放弃了,有哪个大师知道为什么,烦请告知啊~

环境:zend12+PHP5.5

这部分暂时这样,下一部分是smarty

时间: 2024-10-20 09:39:06

MVC架构学习之EasyFirst——快点夸我爱学习~的相关文章

MVC架构学习

作为一名小小的GreenBird,学习MVC呢,已经花费了2天了,期间得到了美丽的学姐的帮助,初步整理了一下. 首先,学习MVC呢就先以一个标准的MVC的简单的例子来入手,然后根据学姐的PPT,我用vs2012建立了一个项目. 1.建立一个MVC架构的项目: File->New Project->Visual C#->ASP.NET MVC 4 Web Application 可以直接运行这个网站 2.Adding a Controller 右键单击Controller->add-

MVC架构简介及其测试策略

最近在WEB端测试工作中陷入了瓶颈,单纯的手动功能测试在没有成熟的代码规范之前还是很容易坑的,WEB自动化测试一时半会还没有什么进展,所以决定先学习一下网站用的MVC架构,跟着教程写了一个小网站,大概也找到了WEB测试工作的几个突破口. MVC即为按照分层解耦的思想,将网站结构分成了Model(模型)-View(视图)-Controller(控制器)三层架构,三层架构的职责如下: Model层:是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据:简单来说,就是在Mod

【JAVA】基于MVC架构Java技术荟萃案例演练

基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servlet运行原理.Get/Post请求的区别.jsp的基本原理和运行框架.jsp的9大隐含对象的使用.MVC开发模式的使用.构建封装自己dao代码库.以及基于MVC的增删改查操作等:小结最后还有面向接口编程的多数据源配置与存储,以及工厂模式的使用.除此之外,后续文章会对cookie.session.Jav

ExtJS 4 MVC架构讲解

大规模客户端应用通常不好实现不好组织也不好维护,因为功能和人力的不断增加,这些应用的规模很快就会超出掌控能力,ExtJS 4 带来了一个新的应用架构,不但可以组织代码,还可以减少实现的内容新的应用架构遵照一个类MVC的模式,模型(Models)和控制器(Controllers)首次被引入.业界有很多种MVC架构,基本大同小异,ExtJS 4的定义如下: Model模型 是字段和它们的数据的集合,例如User模型带有username和password字段,模型知道如何持久化自己的数据,并且可以和其

从MVC框架看MVC架构的设计

转自:http://blog.csdn.net/bluishglc/article/details/6690693 从MVC框架看MVC架构的设计 尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点.本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念. MVC回顾   作为一种经典到不能再经典的架构模式,MVC的成功有其必然的道理,这个道理不同的人会有不同

浅谈MVC架构—你到底有什么本事

一.什么是MVC 1.概念 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 小编点睛:MVC就是类似三层的一种架构,主要还是采用封装(分层)的思想,来降低耦合

运用 Ext JS 4 的 MVC 架构

http://www.open-open.com/lib/view/open1350386395227.html http://www.ibm.com/developerworks/cn/web/1210_wangzh_extjsmvc/index.html Ext JS 4 简介 Ext JS 4 目前是 Sencha 的产品,4.x 的正式版本号是 4.0.7.Ext JS 4 提供商业版本,但如果您的项目是开源的,则可以免费使用 Ext JS 4.Ext JS 的论坛目前非常活跃:Ext

【转】MVC架构

虽然MVC架构已经火了很多年了..但我一直没有机会真正去体会其本质,借现在得机会,转一篇MVC架构的初学篇 控制器(books_controller.php)以HTTP GET或者POST的方式接收到用户的请求(我们也可以有一个主控制器,比如index.php 来接收请求,然后它再调用ooks_controller.php). 控制器检查请求以及对应的参数,然后调用模型(book_model.php),请求模型返回幻想类的图书.模型负责从数据库中调取信息,如有需要它可以加入过滤和逻辑,然后返回图

基于j2ee的程序代写MVC架构

人力资源管理系统 完成系统静态页面设计,页面数量不少于10个,页面需用CSS进行美化,并为需要验证的信息利用JavaScript提供客户端验证.要求至少包含部门信息及部门内员工信息的添加.修改.删除和查询以及员工培训信息维护等功能页. 35 页面内容饱满.页面数量超过15个 设计数据库表部门信息表.员工信息表及员工培训信息表至少三张表,数据库信息设计合理.基于第一次作业所做静态页面使用JSP+JavaBean实现部门信息及部门内员工信息的添加.修改.删除和查询以及员工培训信息维护等功能. 40