Files
phalapi-pro/public/docs.php
2022-03-21 11:16:38 +08:00

138 lines
6.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// ---------------------------------------------------------------------------------
// _____ _ _ _ _____
// | __ \ | | | | /\ (_) | __ \
// | |__) || |__ __ _ | | / \ _ __ _ | |__) |_ __ ___
// | ___/ | '_ \ / _` || | / /\ \ | '_ \ | | | ___/| '__|/ _ \
// | | | | | || (_| || | / ____ \ | |_) || | | | | | | (_) |
// |_| |_| |_| \__,_||_|/_/ \_\| .__/ |_| |_| |_| \___/
// | |
// |_|
// PhalApi Pro 专业版
// 广州果创网络科技有限公司
//
// ---------------------------------------------------------------------------------
//
// 一、协议的许可和权利
// 1. 您可以在完全遵守本协议的基础上,将本软件应用于商业用途;
// 2. 您可以在协议规定的约束和限制范围内修改本产品源代码或界面风格以适应您的要求;
// 3. 您拥有使用本产品中的全部内容资料、商品信息及其他信息的所有权,并独立承担与其内容相关的
// 法律义务;
// 4. 获得商业授权之后,您可以将本软件应用于商业用途,自授权时刻起,在技术支持期限内拥有通过
// 指定的方式获得指定范围内的技术支持服务;
//
// 二、协议的约束和限制
// 1. 未获商业授权之前,禁止将本软件用于商业用途(包括但不限于企业法人经营的产品、经营性产品
// 以及以盈利为目的或实现盈利产品);
// 2. 未获商业授权之前,禁止在本产品的整体或在任何部分基础上发展任何派生版本、修改版本或第三
// 方版本用于重新开发;
// 3. 如果您未能遵守本协议的条款,您的授权将被终止,所被许可的权利将被收回并承担相应法律责任;
//
// 三、有限担保和免责声明
// 1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的;
// 2. 用户出于自愿而使用本软件,您必须了解使用本软件的风险,在尚未获得商业授权之前,我们不承
// 诺提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任;
// 3. 广州果创网络科技有限公司不对使用本产品构建的商城中的内容信息承担责任,但在不侵犯用户隐
// 私信息的前提下,保留以任何方式获取用户信息及商品信息的权利;
//
// 有关本产品最终用户授权协议、商业授权与技术服务的详细内容,均由广州果创网络科技有限公司独家
// 提供。广州果创网络科技有限公司拥有在不事先通知的情况下,修改授权协议的权力,修改后的协议对
// 改变之日起的新授权用户生效。电子文本形式的授权协议如同双方书面签署的协议一样,具有完全的和
// 等同的法律效力。您一旦开始修改、安装或使用本产品,即被视为完全理解并接受本协议的各项条款,
// 在享有上述条款授予的权力的同时,受到相关的约束和限制。协议许可范围以外的行为,将直接违反本
// 授权协议并构成侵权,我们有权随时终止授权,责令停止损害,并保留追究相关责任的权力。
//
// ---------------------------------------------------------------------------------
/**
* PhalApi在线接口列表文档 - 自动生成
*
* - 对Api_系列的接口进行罗列
* - 按service进行字典排序
* - 支持多级目录扫描
*
* <br>使用示例:<br>
* ```
* <?php
* // 左侧菜单说明
* class Demo extends Api {
* /**
* * 接口服务名称
* * @desc 更多说明
* * /
* public function index() {
* }
* }
* ```
* @license http://www.phalapi.net/license GPL 协议
* @link http://www.phalapi.net/
* @author xiaoxunzhao 2015-10-25
* @modify Aevit 2014-10-29
* @modify shwy 2017-03-02
* @modify dogstar 2017-06-17
*/
require_once dirname(__FILE__) . '/init.php';
if (!empty($_GET['language'])) {
\PhalApi\SL($_GET['language']);
setcookie('language', $_GET['language'], time() + 86400 * 360, '/');
}
$projectName = \PhalApi\DI()->config->get('app.project.name'); // 项目名称
$docViewCode = \PhalApi\DI()->config->get('app.project.doc_view_code'); // 查看文档密码,为空时不限制
if (substr(PHP_SAPI, 0, 3) == 'cli') {
// 生成离线文档
$apiHtml = new \PhalApi\Helper\ApiStaticCreate($projectName, 'fold', API_ROOT . '/src/view/docs/api_desc_tpl.php');
$apiHtml->render(API_ROOT . '/src/view/docs/api_list_tpl.php');
} else if (!empty($_GET['detail'])) {
checkViewCode();
// 接口详情页
$apiDesc = new \PhalApi\Helper\ApiDesc($projectName);
$apiDesc->render(API_ROOT . '/src/view/docs/api_desc_tpl.php');
} else {
checkViewCode();
// 对外排除的命名空间,如果需要增加项目,需要在此追加
$globalExcludeNamespaces = array('Task', 'Platform', 'Admin');
// 管理员登录后可查看全部接口
if (!empty($_COOKIE['admin_code']) && $_COOKIE['admin_code'] == md5('admin' . \PhalApi\DI()->config->get('app.member.salt') . date('Ymd'))) {
$globalExcludeNamespaces = array();
}
// 接口列表页
$apiList = new \PhalApi\Helper\ApiList($projectName);
$apiList->render(API_ROOT . '/src/view/docs/api_list_tpl.php');
}
/**
* 检测查看密码
*/
function checkViewCode() {
// 不设置查看密码,则不限制
global $projectName, $docViewCode;
if (empty($docViewCode)) {
return;
}
$docViewCode = strval($docViewCode);
session_start();
$submitError = NULL;
if (!empty($_POST['view_code'])) {
if ($_POST['view_code'] == $docViewCode) {
$_SESSION['doc_view_code'] = $docViewCode;
} else {
$submitError = \PhalApi\T('wrong view password');
}
}
if (empty($_SESSION['doc_view_code']) || $_SESSION['doc_view_code'] != $docViewCode) {
include API_ROOT . '/src/view/docs/check_view_code.php';
die();
}
}