这就是mvc框架 so easy!!!

时间:2021-04-04 22:28:40

1

通常我们会在根目录下,建立两个文件,index.php   admin.php

我们通过在index.php  和 admin.php分别定义APP_NAME常量来实现

2,判断用户有没有输入 和 ,以及自己定制默认的控制器和 默认的动作

3,防止非法访问

要区分出前台和后台,index.php展示是前台;admin.php展示的是后台

思路:

我们通常在入口文件定义一个常量(在整个页面都起作用),如果index.php加载init.php的话,常量的值是home/

例如,当我们在地址栏输入index.php的时候,

<?php

//通常我们定义一个常量作为标记,常量在整个页面都起作用

define("APP_NAME","home/");  

//定义一个常量,define('常量名','常量值');判断常量是否被定义defined("常量名")

require "init.php";

然后,当我们实例化smarty对象,设置smarty的模板目录的时候,

$this -> smarty ->template_dir = ROOT_PATH."views/".APP_NAME;

这时,smarty会调用home(前台的木板文件)

Admin一样的道理

如何定义当我们没有在地址栏输入ca的时候的一个默认页面?

if(isset($_REQUEST['c'])){

$controller_name = $_REQUEST['c'].'Controller';

}else{

if(APP_NAME =="home/"){

$controller_name = "indexController";

}else if(APP_NAME =="admin/"){

$controller_name = "adminController";

}

}

$controller = new $controller_name();

//规定默认的动作

if(isset($_REQUEST['a'])){

$action_name = $_REQUEST['a'].'Action';

}else{

if(APP_NAME =="home/"){

$action_name = "indexAction";

}else if(APP_NAME =="admin/"){

$action_name = "adminAction";

}

}

$controller ->$action_name();

最后一点:防止非法访问

如果不是通过index.php或者admin.php来访问,我们认为就是非法访问

短路算法:

||   或运算,有一个条件成立 就为真

&&  与运算,必须两个条件都为真,才成立