index.php act main,PHP MVC 从零学起(2)

PHP MVC 从零学起,带你编写自己的框架。

想拥有属于自己的框架吗?来吧,带你装B,带你飞。

项目默认访问:http://虚拟域名/index.php?act=main&mod=index

第1集,简单入门 MVC

第2集,配置smarty模版引擎、 过滤HTTP请求防止注入

目录结构:

application

------cache

------components

------------controller.php

------------functions.php

------configs

------------config.php

------controllers

------------main.php

------views

------------default

------------------index.php

plugin

------smarty

index.php

标签:

1.[文件]

mvc_2.zip ~ 223KB

下载(0)

[全屏预览]

if(!defined('MVC_PATH')){

exit('Access Denied');

}

class controller {

public $tpl; // 模版对象

public $config; // 配置对象

/**

* 初始化

*/

public function init()

{

$this->initConfig();

$this->initViews();

}

/**

* 加载配置

*/

public function initConfig()

{

session_start();

require CONFIGS_PATH . '/config.php';

$this->config = $config;

}

public function initViews()

{

require PLUGIN_PATH . '/smarty/Smarty.class.php';

$this->tpl = new Smarty();

$data = $this->config['smarty'];

foreach ($data as $key => $val) {

$this->tpl->$key = $val;

}

}

/**

* smarty同名方法assign

*

* @param string $tpl_var

* @param mixed $value

*/

public function assign($tpl_var, $value = null)

{

$this->tpl->assign($tpl_var, $value);

}

/**

* smarty同名方法display

*

* @param string $resource_name

* @param string $cache_id

* @param string $compile_id

*/

public function display($resource_name, $cache_id = null, $compile_id = null)

{

$this->tpl->display($resource_name, $cache_id, $compile_id);

}

}

/* Smarty配置 */

$config['smarty']['left_delimiter'] = '{{';

$config['smarty']['right_delimiter'] = '}}';

$config['smarty']['template_dir'] = VIEWS_PATH . '/default';

$config['smarty']['compile_dir'] = CACHE_PATH . '/smarty/template_c';

$config['smarty']['cache_dir'] = CACHE_PATH . '/smarty/cache_c';

$config['smarty']['caching'] = false;

$config['smarty']['cache_lifetime'] = 3600;

$config['smarty']['debugging'] = false;

class main extends controller {

public function __construct(){

parent::init();

}

public function index(){

$this->assign('hi', 'holle smarty!');

$this->display('index.html');

}

}

header('Content-type: text/html; charset=utf-8');

date_default_timezone_set('Asia/Shanghai');

error_reporting(E_ALL ^ E_NOTICE);

// 定义路径

define('MVC_PATH', dirname(__FILE__));

define('PLUGIN_PATH', MVC_PATH.'/plugin');

define('SMARTY_PATH', PLUGIN_PATH.'/smarty');

define('APPLICATION_PATH', MVC_PATH.'/application');

define('COMPONENTS_PATH', APPLICATION_PATH.'/components');

define('CONTROLLERS_PATH', APPLICATION_PATH.'/controllers');

define('VIEWS_PATH', APPLICATION_PATH.'/views');

define('CONFIGS_PATH', APPLICATION_PATH.'/configs');

define('CACHE_PATH', APPLICATION_PATH.'/cache');

// 定义常量

define('TIMESTAMP', time());

define('DAYTIMES', date('Y-m-d', TIMESTAMP));

define('DATETIMES', date('Y-m-d H:i:s', TIMESTAMP));

require_once COMPONENTS_PATH.'/functions.php'; //加载函数类

require_once COMPONENTS_PATH.'/controller.php'; //加载主控制器

/**

* 过滤特殊符号

* 该方法在GBK数据表下有漏洞

*/

foreach(array('_REQUEST', '_GET', '_POST', '_COOKIE') as $value) {

foreach(${$value} as $k => $v){

${$value}[$k] = Func::saddslashes($v);

}

unset($value);

}

$act = $_REQUEST['act'] = !empty($_REQUEST['act']) ? $_REQUEST['act'] : 'main';

$mod = $_REQUEST['mod'] = !empty($_REQUEST['mod']) ? $_REQUEST['mod'] : 'index';

$controller_file = CONTROLLERS_PATH.'/'.$act.'.php';

if(!file_exists($controller_file)){

die('没有找到对应的程序文件');

}

require $controller_file;

$controller = new $act();

$controller->$mod();

PHP+Socket--tcp-->DDpushServer--udp-->Client(Android)我分享的代码只是实现PHP+Socket应该比这篇Blog强一些吧:http://blog.csdn.net/brok1n/article/details/45272573标签:-->-->-->1.

php大象真的跑起来了(有屏幕录像)我屏幕录像了下来,放在我的博客上,没有见过的可以去看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值