自定义mvc php,自定义常用函数

本文介绍了一位开发者在PHP项目中封装的一系列实用函数,包括配置读取、输入获取、调试输出、第三方类库加载等功能,简化了开发流程并提高了代码复用率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#### 我们在开发中经常会用到很多的函数,有些是PHP内置的,有些需要自己去实现,为了减少代码冗余,我就自己封装了一些常用的函数,如下:

1. C()函数

可能ThinkPHP里最有标志性的就是它的这些大写字母的函数了吧,C函数在系统配置类中已经写过了,需要的请去前面的章节中查看

2. I()函数

~~~

function I($a){

$b = array_merge($_GET,$_POST);

return $b[$a];

}

~~~

这里只是简单的把``$_GET和$_POST``合并后返回,如果需要的话也可以自己去添加过滤函数等等,这里为了方便,不再赘述

3.dump()函数

~~~

function dump($arr){

if (is_array($arr)){

echo '

';

print_r($arr);

echo '

';

}else{

echo $arr;

}

}

~~~

这个函数主要是因为调试的时候,到处``var_dump() print_r()``和``echo``,很乱,而且有时候因为参数类型的问题还会报错,因为echo不能打印数组类型,所以会报错,现在把他们都封装起来,方便调试(pre标签会保证把数组格式化输出,而不会连在一起,不容易看清楚)

4.import()函数:

~~~

function import($str){

$path = C('extend_path') . $str;

if (file_exists($path)){

require $path;

return true;

}else{

throw new \S\S_Exception('您要导入的类文件不存在!');

}

}

~~~

这个函数用来引入第三方类库,比如我在配置文件中添加配置项如下:`` 'extend_path' => S_PATH . 'S/Extend/',`` 那么我将Smarty类放在``Extend/``路径下,这样,我只需要使用``import('Smarty.class.php');``这样就把Smarty类包含进来了,下面就可以进行实例化等操作了

5.session()函数

~~~

function session($parm1,$parm2 = null){

if (is_null($parm2)){

if (isset($_SESSION[$parm1])){

return $_SESSION[$parm1];

}else{

return false;

}

}else{

$_SESSION[$parm1] = $parm2;

return true;

}

}

~~~

这个函数是为了操控session的,session比cookies更加安全,广泛用在验证码验证上,前提是要使用``session_start()``开启``session``

6.redirect()函数

~~~

function redirect($url, $time=0, $msg='') {

$url = __ROOT__.$url;

if (empty($msg)){

$msg = "系统将在{$time}秒之后自动跳转到{$url}!";

}

if (!headers_sent()) {

// redirect

if (0 === $time) {

header('Location: ' . $url);

} else {

header('refresh:'.$time .';url=' . $url);

echo($msg);

}

exit();

} else {

$str = "";

if ($time != 0)

$str .= $msg;

exit($str);

}

}

~~~

这个函数用与自动跳转,跟TP中的``$this->redirect()``功能一样,主要是通过设置``header()``达到跳转的目的,代码也很简单

7.isAjax、isPost、isGet函数

~~~

function isAjax(){

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){

return true;

}else{

return false;

}

}

function isGet(){

return $_SERVER['REQUEST_METHOD'] == 'GET' ? true : false;

}

function isPost() {

return ($_SERVER['REQUEST_METHOD'] == 'POST' && (empty($_SERVER['HTTP_REFERER']) || preg_replace("~https?:\/\/([^\:\/]+).*~i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("~([^\:]+).*~", "\\1", $_SERVER['HTTP_HOST']))) ? 1 : 0;

}

~~~

这三个函数是用来判断当前提交的类型,代码来源于网络。

8.这个函数是重中之重:M()函数

~~~

function M($table_name,$dsn = null){

if (is_null($dsn)){

$obj = \S\Model::getInstance($table_name);

}

return $obj;

}

~~~

这个函数功能和TP中的M函数一样,都是用于连接数据库,这里面获取了Model类的单例,穿件来的第一个参数是表名,第二个参数是使用PDO链接数据库时的dsn,默认为空,在Model类中会从配置文件中调取dsn。

下一章就详细讲解数据库操作类Model

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值