Ⅰ 自己写php的MVC框架时怎样让他在地址栏输入 http://localhost/login就直接跳到views里的login.php里去
1,检查web服务是不是真的有开 2,ping localhost 看下IP是否是本机IP或127.0.0.X 3,关掉防火墙
Ⅱ 自己用PHP写的类似MVC结构的程序,如何实现m=test&a=show这样的功能
<?php
//把这个php保存为index.php
//尝试访问index.php?m=test&a=show
//尝试访问index.php?m=test&a=show2
$cls=isset($_GET['m'])?$_GET['m']:null;
$action=isset($_GET['a'])?$_GET['a']:null;
classtest{
functionshow(){
echo'callshow!';
}
functionshow2(){
echo'callshow2!';
}
}
if(!$cls||!class_exists($cls))
die('请求的类不存在!');
//这里可以根据类名参数加载类这里写了test类就不用加载了
$inst=new$cls();
if(!is_callable(array($inst,$action)))
die('请求的方法不存在或不能调用!');
//如果还要有方法有参数可以用反射调用方法来处理
$inst->$action();
Ⅲ 自己建立php mvc框架问题
这个问题不会有人闲着给你讲解的、除非复制的!结贴吧!
Ⅳ php如何实现mvc+l,思路是什么
M model 一般是控制数据库、资源、对象属性的
V view 视图,也就是给客户呈现的UI
C controller 逻辑事务处理器,主要针对客户端传来的数据该怎么处理、输出,
L Language 国内的人比较少听说,我们河南新社 经常给国外的客户做,他们要求前台UI的多数文本,是可以轻松修改,或者支持多国语言。这时候,M和C就不能简单的把文本固定写到代码里,而是用$this->language->get['text_customer'] 这个变量来替代以前的 "客户"这样一个文本;然后建立一个language库,结构上跟MCV平行。
当然我也听某群里的“大神”给别人解释是lib,我是不赞同的,说到底这个大神没有接触到国外的业务,而国内小型业务还不要去语言分离或者多语言。如果是是lib,那就是引擎层面的了,跟mvc在结构上不是平行的,不如说 Catalog(MVC)+System(Lib+Engine)
Ⅳ 如何入门一个PHP MVC框架
一。选择 一个框架
至于选哪一种框架,主要看个人,1)最好是身边朋友都有人在用,因为你不懂的时候方便解决。有时候论坛,手册上的解答你未必理解的通透,特别是没有接触过框架的phper来说,更是不知所云。2)选择此框架论坛比较活跃的,这是身有同感,前一段时间玩qeephp框架的时间,论坛冷冷清清的,工作需要,没办法,只能硬着上了,遇到问题的时候,回答的问题的人很少,同时手册之类只写了某部分,还有很多部分并没有写上去。对于一个新手来说,直接KO了。
二。熟悉数据库的操作
每一个框架都有自己的操作方法,这是必须要学会的。select,delete,insert,update这几种用法摸熟。最快的方法是看手册,查找对应的操作。同时要知道其中的调试方法,你就可以看到原生的操作有没有错误。基本都会了,这个框架至少可以开始开发项目了。
三。论坛官方网站
这个很重要,先看手册,遇到问题先在论坛里查找一下有没有人遇到过你这种情况,有就不用发问了。然后同一个问题,很少人再去回答一遍。有时候遇到自己能解决的问题,也回答一下,这样可以加深你的理解,不要觉得浪费你的时间,这前提是你有时间的情况下。所以本着人人为我,我为人人的精神
四。下载一个案例。
我经常是这样,不知道某个功能怎样调用的时候,直接找案例里相对应的功能看代码,看人家是怎样调用的,再加上自己的见解。
五。手册的类
MVC一般都有自带一些类了,方便用户操作,有了自己就不用再写对应的代码了。
六。要有“拿来主义”精神
别人的东西,你自己融会贯通了,东西就是你的了。
Ⅵ 如何用PHP实现自己的MVC
MVC三个字母的含义: M:Model 模型,负责数据库操作。 V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。 C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。 下面是一个超级简单的MVC结构实现: Controller.php include 'Model.php'; include 'View.php'; class Controller { private $model = ''; private $view = ''; public function Controller(){ $this->model = new Model(); $this->view = new View(); } public function doAction( $method = 'defaultMethod', $params = array() ){ if( empty($method) ){ $this->defaultMethod(); }else if( method_exists($this, $method) ){ call_user_func(array($this, $method), $params); }else{ $this->nonexisting_method(); } } public function link_page($name = ''){ $links = $this->model->getLinks(); $this->view->display($links); $result = $this->model->getResult($name); $this->view->display($result); } public function defaultMethod(){ $this->br(); echo "This is the default method. "; } public function nonexisting_method(){ $this->br(); echo "This is the noexisting method. "; } public function br(){ echo ""; } } $controller = new Controller(); $controller->doAction('link_page', 'b'); $controller->doAction(); Model.php class Model { private $database = array( "a" => "hello world", "b" => "ok well done", "c" => "good bye", ); //@TODO connect the database //run the query and get the result public function getResult($name){ if( empty($name) ){ return FALSE; } if( in_array($name, array_keys( $this->database ) ) ){ return $this->database[$name]; } } public function getLinks(){ $links = "Link A "; $links.= "Link B "; $links.= "Link C "; return $links; } } View.php class View { public function display($output){ // ob_start(); echo $output; }
Ⅶ PHP程序,不用框架,如何写成MVC模式的程序呢
至于M层,即model层,是要对数据库的操作即一些数据相关操作,可以单独抽
出来封装函数或者是一个类,由C层调用其中的方法来实现与页面交互的操作请
求,所有接受或者受到的数据经过C层调用M层进行操作,并反馈C层,提示在V
层; 通俗点讲,就是说你把一些具体的方法及操作数据库的执行方法都封装成
函数或者类,在另一个文件中,然后由C层去引用调用或者继承,从而实现传统
的MVC。
Ⅷ php怎么实现mvc
MVC三个字母的含义:
M:Model 模型,负责数据库操作。
V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。
C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。
下面是一个超级简单的MVC结构实现:
Controller.php
include'Model.php';
include'View.php';
classController{
private$model='';
private$view='';
publicfunctionController(){
$this->model=newModel();
$this->view=newView();
}
publicfunctiondoAction($method='defaultMethod',$params=array()){
if(empty($method)){
$this->defaultMethod();
}elseif(method_exists($this,$method)){
call_user_func(array($this,$method),$params);
}else{
$this->nonexisting_method();
}
}
publicfunctionlink_page($name=''){
$links=$this->model->getLinks();
$this->view->display($links);
$result=$this->model->getResult($name);
$this->view->display($result);
}
publicfunctiondefaultMethod(){
$this->br();
echo"Thisisthedefaultmethod.";
}
publicfunctionnonexisting_method(){
$this->br();
echo"Thisisthenoexistingmethod.";
}
publicfunctionbr(){
echo"<br/>";
}
}
$controller=newController();
$controller->doAction('link_page','b');
$controller->doAction();
Model.php
classModel{
private$database=array(
"a"=>"helloworld",
"b"=>"okwelldone",
"c"=>"goodbye",
);
//@TODOconnectthedatabase
//runthequeryandgettheresult
publicfunctiongetResult($name){
if(empty($name)){
returnFALSE;
}
if(in_array($name,array_keys($this->database))){
return$this->database[$name];
}
}
publicfunctiongetLinks(){
$links="<ahref='#'>LinkA</a> ";
$links.="<ahref='#'>LinkB</a> ";
$links.="<ahref='#'>LinkC</a> ";
return$links;
}
}
View.php
classView{
publicfunctiondisplay($output){
//ob_start();
echo$output;
}
}
Ⅸ 什么是MVC以及PHP怎样实现MVC
其实你的问题一开始就问错了,即然你问了,我就随便说说好了。
MVC 是一种设计风格,并不是一种具体手法。每个人写代码都有自己习惯的一种设计风格。MVC 是应用程序开发常用的一种风格,实际上并不适合 PHP,因为 PHP 的工作环境注定了它很难做出像样的控制器,也就是 Controll 。
MVC 本来的设计风格是:整个系统由一个程序启动,再根据用户操作调用各个处理模块,根据数据结果来决定显示成什么样给用户看。就像我们平时用的各种程序的主界面。这样程序员创建好主程序以后,只要把注意力集中在开发各个子功能上就可以了。。
可是 php 大多数情况下工作于 web 环境,有“页”的概念,每次执行都是一个新的请求。这就注定了很难实现真正的 MVC,因为用户看到页面时,PHP 已经执行完了,不可能再切换去调另一个 模型M 和 视图V 。
目前自称 MVC 的各种框架。也只不过是用一个程序判断请求,加载不同的功能块。只能称之为“单点入口”,在思路上是“请求相同的部份,而包含不同的部份”。这个入口程序实际上啥也没做,所以算不上是 MVC。反而 JS 开发的富客户端更接近一些。由一个 JS 主程序,跟据用户请求决定调用哪些数据,再把界面改变成什么样。
设计风格是前人总结出来的东西,在当前语言,当然环境,当前思维方式下。比较容易继续思考的一种设计方式。MVC 只不过是其中一种,而且并不是最适合 PHP 的一种。偏偏被炒作得好像标准似的。。
如果你一定要, 就去看一下 “PHP 单点入口实现”吧,已经是比较接近的东西了。如果一次性的控制器也能算控制器的话……
Ⅹ php如何实现mvc框架,一定要突出php实现,不是其他语言!!!求大神(最好有步骤)
第一步,单一入口,任何页面都请求的是根目录index.php文件,通过querystring或者pathinfo两种方式任选一种或两种都用来获取参数。如果能用URL重写隐藏URL地址中的index.php更好。
第二步,在index.php中处理接受到的参数,至少要从这些参数中获得控制器(MVC中的C)的名称,和方法的名称,控制器是一个类,有了控制器的名称就可以调用这个类,并通过方法的名称来执行控制器里面的某一个方法,其它参数可以作为这个方法的参数。如果项目较大,还可以把控制器分成不同模块,放在不同目录里。
第三步,在控制器里面处理用户提交数据,执行流程控制,最后将结果输出到视图文件(MVC中的V)上,视图文件也可以叫模板,可以在控制器里直接include,也可以使用模板引擎。
补充1:模型(MVC中的M)指的是数据库模型,也就是各个数据表的数据处理逻辑,你可以做一个数据库的操作类,也可以做一个ORM对象关系映射框架,在控制器中需要处理数据的时候直接调用就行了。其实PHP中的M比较模糊,看你的习惯,本来MVC开发模式就是为了提高开发效率的,所以你觉得怎么方便怎么来。
补充2:你还可以把常用的功能都封装成类,一个类实现一个功能,这些类的集合就是类库,就是我们常说的轮子。简单的功能也可以做成函数。总之,在需要的时候调用就行了。
补充3:现在几乎所有主流的PHP框架都是MVC,你如果已经明白了PHP的编程基础,不妨可以学习一两种框架,这样你很快就明白MVC了,并且可以开发自己的框架。
补充4:你以为这么多字我是复制的吗?我可真的都是手打出来的,我一定是太闲了,采纳吧!