ThinkPHP 入口模塊綁定

場景案例:當在開發有時候會對外開放接口(API),我們不希望用戶訪問到其他模塊,只能訪問api模塊.

我們可以爲API開一個單獨的入口api.php(public目錄下),就像public下的index.php一樣。

如果不希望配置文件放到應用目錄下面,可以在入口文件中定義獨立的配置目錄,添加
CONF_PATH常量
定義即可,這樣讓模塊更加分明,例如:

// 定義配置文件目錄和應用目錄同級
define('CONF_PATH', __DIR__.'/../config/');

這裏我的目錄是按上面的方式配置過的。


首先,爲了讓模塊自動綁定,即api.php入口文件自動綁定到app/api模塊,我們需要在config中開啓:

    // 入口自動綁定模塊
    'auto_bind_module'       => true,
就像public/index.php自動綁定到app/Index目錄。

添加api.php入口文件:

<?php

// 定義應用目錄
define('APP_PATH', __DIR__ . '/../application/');
//定義配置文件目錄
define('CONF_PATH', __DIR__.'/../conf/');
//define('BIND_MODULE','api');
// 加載框架引導文件
require __DIR__ . '/../thinkphp/start.php';

在api模塊目錄下新建控制器index.php:

<?php

namespace app\api\controller;

use think\Controller;
use think\Request;

class Index extends Controller
{
    public function index()
    {
        $data=[
          'name'=>'LEE',
          'age'=>14,
           'data'=> [
                'hh'=>'hh',
                'aa'=>'aa'
            ]
        ];
        return $data;
    }
PS:對於開放的接口一般我們會返回一些json數據給客戶端,我們可以直接指定返回數據的類型,就像上面的return $data;

而不是每次都用return json_encode($data);我們可以爲接口指定返回類型。
方法:在conf/api/config里加上配置。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章