MVC架构学习之EasyFirst——快点夸我爱学习~
2016-04-28 15:13
417 查看
iMooc上的MVC教程练习。
MVC是PHP基础和进阶的分界点吧应该说是
一、准备
工欲善其事~
个人环境:windows10+wamp2.5+ZendStudio12;
项目名称:MVCEasyFirst;
文件命名:testController.class.php
文件名 控制器 类文件类型
代码标准:PSR-2;
二、搭建
Controller
Model
View
三、调用
四、小结
简单的小例子,直观的了解MVC模型!!!
注意区分清楚各个模块的“职责”!
再有就是规范开发的情况:
五、入口程序与系统目录的规范化
把 MVC应用到生产中;
单一入口机制:在一个web应用中,所有的请求都指向一个脚本文件,比如alksdjfklajfklj.php,也就是说,所有对程序的访问都是必须通过这个入口。
优点:得以实现MVC;对什么安全什么的也似乎比较方便控制。
系统目录的规范化:
我就打算先这么干,至于以后那再说。
六、简化M\V\C调用
前面说过,MVC大量以来引用/调用,所以对于调用,不如写一个函数来集成/封装
其中,eval函数我也是第一次用,视频中讲不安全,就换成下面这些就好。
--------4/28更新---------------
我的环境问题或者其他什么,动态实例化类不可行,暂时放弃了,有哪个大师知道为什么,烦请告知啊~
环境:zend12+PHP5.5
这部分暂时这样,下一部分是smarty
MVC是PHP基础和进阶的分界点吧应该说是
一、准备
工欲善其事~
个人环境:windows10+wamp2.5+ZendStudio12;
项目名称:MVCEasyFirst;
文件命名:testController.class.php
文件名 控制器 类文件类型
代码标准:PSR-2;
二、搭建
Controller
<?php namespace MVCEasyFirst\Controller\test; use MVCEasyFirst\Model\test\testModel; use MVCEasyFirst\View\test\testView; //控制器是唯一需要和用户进行连接的地方 //控制器“承上启下” //控制器负责:1、接收指令;2、调用模型并接收模型处理好的数据;3、调用视图(传递数据给视图) class testController { public function show() { $testModel=new testModel(); $data=$testModel->get(); $testView=new testView(); $testView->display($data); } }
Model
<?php namespace MVCEasyFirst\Model\test; //模型负责:1、接收指令;2、处理并返回数据 //双向,但仅与控制器相连接 class testModel { public function get() { return "Hello world!"; } }
View
<?php namespace MVCEasyFirst\View\test; //视图负责:1、接受指令;2、显示相关结果给浏览器/用户; //单向通路,C->V->User class testView { public function display($data) { echo $data; } }
三、调用
<?php use MVCEasyFirst\Controller\test\testController; require_once 'testController.class.php'; require_once 'testModel.class.php'; require_once 'testView.class.php'; //MVC大量依赖引入,推荐require,和我之前想的不太一样 //其实这个问题我个人觉得还是要分情况来说的,看是什么需求,需要运行(警告)还是发现问题所在(错误) $testController=new testController(); $testController->show();
四、小结
简单的小例子,直观的了解MVC模型!!!
注意区分清楚各个模块的“职责”!
再有就是规范开发的情况:
五、入口程序与系统目录的规范化
把 MVC应用到生产中;
单一入口机制:在一个web应用中,所有的请求都指向一个脚本文件,比如alksdjfklajfklj.php,也就是说,所有对程序的访问都是必须通过这个入口。
优点:得以实现MVC;对什么安全什么的也似乎比较方便控制。
系统目录的规范化:
我就打算先这么干,至于以后那再说。
六、简化M\V\C调用
前面说过,MVC大量以来引用/调用,所以对于调用,不如写一个函数来集成/封装
<?php namespace MVC\func; //一些框架中简化用到的函数 function C($name,$method) { require_once '/libs/Controller/'.$name.'Controller.class.php'; //eval('$obj=new '.$name.'Controller();$obj->'.$method.'();'); $controller=$name.'Controller'; $obj=new $controller(); $obj->$method(); } function M($name) { require_once 'libs/Model/'.$name.'Model.class.php'; $model=$name.'Model'; $obj=new $model(); return $obj; } function V($name) { require_once 'libs/View/'.$name.'View.class.php'; $view=$name.'View'; $obj=new $view(); return $obj; }
其中,eval函数我也是第一次用,视频中讲不安全,就换成下面这些就好。
<?php require_once 'func.php'; \MVC\func\C('test', 'show');
<?php class testController { public function show() { echo "hello"; } }
--------4/28更新---------------
我的环境问题或者其他什么,动态实例化类不可行,暂时放弃了,有哪个大师知道为什么,烦请告知啊~
环境:zend12+PHP5.5
这部分暂时这样,下一部分是smarty
相关文章推荐
- 架构设计:系统间通信(27)——其他消息中间件及场景应用(上)
- X86架构IO端口表
- mysql主从复制及高可用
- 分布式服务架构之java远程调用技术浅析
- 提升网站性能的35条建议
- 用CSS开启硬件加速来提高网站性能
- 一些IT行业可能需要用到的网站(随时更新)
- Java应用架构的演化之路
- 威联通NAS 网站无法登录,可以ssh情况下重启设备方法
- 对架构的初步认识和理解
- 一些网站后台模板源码分析
- 学习网站
- 初识软件体系架构
- Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
- 做网站用UTF-8编码还是GB2312编码?
- 阿里 Dubbo架构设计攻略
- 阿里 Dubbo架构设计攻略
- 了解一下架构设计 ==在首席架构师眼里,架构的本质是?
- 从架构漫谈九篇文章看软件体系结构
- 基于Flume的美团日志收集系统(一)架构和设计