通过URL访问php对应的类中的方法

主要是一个小项目,没必要使用框架,就简单处理了使用一个文件类调用多个方法,避免重复创建php文件去实现这些类方法的问题,写好了还是记录一下,方便日后继续使用:
pathinfo模式 ,例如:index.php/job/get_list?a=1&b=2&c=3
通过这个URI可以访问到 Job.php中 Job类的getList()方法,其中传入了参数[‘a’=>’1’,’b’=>’2’,’c’=>’3’]
具体实现:

<?php
/**
 * Created by PhpStorm.
 * User: zheng
 * Date: 2018/7/12
 * Time: 10:32
 */

try{
    //获取类名与方法
    $uri    = parse_url($_SERVER['PATH_INFO']);
    $query  = $uri['path'];
    $pathInfo = array_values(array_filter(explode('/',$query)));
    $className = ucfirst(isset($pathInfo[0])?$pathInfo[0]:'');
    $methodName = isset($pathInfo[1])?$pathInfo[1]:'';
    if(!$className||!$methodName){
        throw new \Exception();
    }
    $methodNameArr = explode('_',$methodName);
    $method = '';
    foreach ($methodNameArr as $key=>$value){
        if($key!=0){
            $method.=ucfirst($value);
        }else{
            $method=$value;
        }
    }
//获取查询参数
   $params = $_GET;
    $fileDir = $className.'.php';
    include_once $fileDir;
    $classObj = new $className();
    $data = $classObj->$method($params);
    exit($data);
}catch (\Exception $e){
    Header("HTTP/1.0 404 Not Found");
}

注意使用的apche或者nginx要支持pathinfo模式。
(其他:对数据库的封装使用的是Medoo,这个类非常小,就20KB左右,使用起来也很方便。)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值