计算机知识

当前位置:澳门新葡萄京 > 计算机知识 >     controller文件夹存放控制器文件

    controller文件夹存放控制器文件

来源:http://www.hhmtch.com 作者:澳门新葡萄京 时间:2019-06-27 03:24

 从本篇初叶介绍怎么着用php来贯彻MVC格局开垦,而且一而再的稿子也是在那几个基础上不断改动优化。关于MVC这里就非常少说了,并且在其后的文章里也是以讲技能为主。

    本篇先介绍一下php的MVC完结原理,大家框架的MVC部分也是基于此原理达成的,但是前日的代码并不是框架内的代码,仅仅为证实原理。

一、文件结构

    创立3个公文夹

    controller文件夹存放调节器文件

    view文件夹存放视图像和文字件

    model文件夹存放数据文件

    创设1个index.php 作为唯一入口

二、控制器

    大家在controller文件夹下营造一个democontroller.php文件,文件内容如下

<?php

class DemoController

{

function index()

{

echo('hello world');

}

}

/* End of file democontroller.php */

    那几个文件之中大家只是塑造了三个名字为德姆oController的靶子并涵盖一个index的章程,该措施输出hello world。上面在index.php中实行德姆oController中index方法。

    index.php的代码如下

<?php

require('controller/democontroller.php');

$controller=new DemoController();

$controller->index();

/* End of file index.php */

    运维index.php,ok如愿我们看到了我们久违的hello world。那四个文本特别轻易,但也发布了一丢丢mvc的本色,通过唯一入口运营大家要运转的调控器。当然controller部分应该是由uri来支配的,那么大家来改写一下index.php使她能通过uri来调节运营这几个controller。

    index.php改写代码如下:

<?php

$c_str=$_GET['c'];

//获取要运转的controller

$c_name=$c_str.'Controller';

//依照约定url中赢得的controller名字不分包Controller,此处补齐。

$c_path='controller/'.$c_name.'.php';

//根据预订controller文件要成立在controller文件夹下,类名要与公事名同样,且文件名要全体大写。

$method=$_GET['a'];

//获取要运营的action

require($c_path);

//加载controller文件

$controller=new $c_name;

//实例化controller文件

$controller->$method();

//运维该实例下的action

/* End of file index.php */

    在浏览器中输入 world。当然假诺大家有另外的controller并且要运转它,只要修改url参数中的c和a的值就可以了。

    这里有多少个难题要说明一(Beingmate)(Karicare)下。

    一、php是动态语言,大家平素能够因而字符串new出大家想要的靶子和平运动转我们想要的法子,即上边的new $c_name,大家得以领略成new '德姆oController',因为$c_name本人的值正是'德姆oController',当然一直new '德姆oController'这么写是极度的,其中的'德姆oController'字符串必须透过二个变量来中间转播一下。方法也是一致的。

    二、咱们在url中c的值是demo,也正是说$c_name的值应该是demoController呀,php不是分别轻重缓急写啊,那样也能运作吧?php区分高低写这句话不完整,在php中唯有变量(前面带$的)和常量(define定义的)是分别轻重缓急写的,而类名方,法名以致有的关键字都以不区分轻重缓急写的。而true,false,null等只可以全部大写或任何大写。当然大家最辛亏其实编码进度中分化轻重缓急写。

三、视图

    大家在如今的controller中只是出口了三个“hello world”,并不曾达到规定的标准mvc的职能,上面小编将要此基础上平添视图成效,相信到那边大家基本已经能想到什么增添视图作用了。对,正是经过万恶的require或然include来完成。

    首先我们在view文件夹下创立贰个index.php,随意写点什么(呵呵,小编写的要么hello world)。之后大家改写一下我们事先的德姆oController。代码如下:

    

<?php

class DemoController

{

function index()

{

require('view/index.php');

}

}

/* End of file democontroller.php */

    再在浏览器中运转一下,看看是还是不是一度出口了笔者们想要的原委了。

    接着大家透过controller向view传递一些数码看看,代码如下:

<?php

class DemoController

{

function index()

{

$data['title']='First Title';

$data['list']=array('A','B','C','D');

require('view/index.php');

}

}

/* End of file democontroller.php */

    view文件夹下index.php文件代码如下:

<html>

<head>

<title>demo</title>

</head>

<body>

<h1><?php echo $data['title'];?></h1>

<?php 

foreach ($data['list'] as $item)

{

echo $item.'<br>';

}

?>

</body>

</html>

 


本文由澳门新葡萄京发布于计算机知识,转载请注明出处:    controller文件夹存放控制器文件

关键词:

上一篇:作为css文件引入到html的markup中

下一篇:没有了