1 Star 0 Fork 13

yjnnan / Thinkphp Restful API

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

ThinkPHP 5.1

ThinkPHP5.1对底层架构做了进一步的改进,减少依赖,其主要特性包括:

  • 采用容器统一管理对象
  • 支持Facade
  • 注解路由支持
  • 路由跨域请求支持
  • 配置和路由目录独立
  • 取消系统常量
  • 助手函数增强
  • 类库别名机制
  • 增加条件查询
  • 改进查询机制
  • 配置采用二级
  • 依赖注入完善
  • 中间件支持(V5.1.6+)

ThinkPHP5的运行环境要求PHP5.6以上。

目录结构

初始的目录结构如下:

www  WEB部署目录(或者子目录)
├─application           应用目录
│  ├─common             公共模块目录(可以更改)
│  ├─module_name        模块目录
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  └─ ...            更多类库目录
│  │
│  ├─command.php        命令行定义文件
│  ├─common.php         公共函数文件
│  └─tags.php           应用行为扩展定义文件

├─config                应用配置目录
│  ├─module_name        模块配置目录
│  │  ├─database.php    数据库配置
│  │  ├─cache           缓存配置
│  │  └─ ...            
│  │
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─log.php            日志配置
│  ├─session.php        Session配置
│  ├─template.php       模板引擎配置
│  └─trace.php          Trace配置

├─route                 路由定义目录
│  ├─route.php          路由定义
│  └─...                更多

├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写

├─thinkphp              框架系统目录
│  ├─lang               语言文件目录
│  ├─library            框架类库目录
│  │  ├─think           Think类库包目录
│  │  └─traits          系统Trait目录
│  │
│  ├─tpl                系统模板目录
│  ├─base.php           基础定义文件
│  ├─console.php        控制台入口文件
│  ├─convention.php     框架惯例配置文件
│  ├─helper.php         助手函数文件
│  ├─phpunit.xml        phpunit配置文件
│  └─start.php          框架入口文件

├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                第三方类库目录(Composer依赖库)
├─build.php             自动生成定义文件(参考)
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件

router.php用于php自带webserver支持,可用于快速测试 切换到public目录后,启动命令:php -S localhost:8888 router.php 上面的目录结构和名称是可以改变的,这取决于你的入口文件和配置参数。

升级指导

原有下面系统类库的命名空间需要调整:

  • think\App => think\facade\App (或者 App )
  • think\Cache => think\facade\Cache (或者 Cache )
  • think\Config => think\facade\Config (或者 Config )
  • think\Cookie => think\facade\Cookie (或者 Cookie )
  • think\Debug => think\facade\Debug (或者 Debug )
  • think\Hook => think\facade\Hook (或者 Hook )
  • think\Lang => think\facade\Lang (或者 Lang )
  • think\Log => think\facade\Log (或者 Log )
  • think\Request => think\facade\Request (或者 Request )
  • think\Response => think\facade\Reponse (或者 Reponse )
  • think\Route => think\facade\Route (或者 Route )
  • think\Session => think\facade\Session (或者 Session )
  • think\Url => think\facade\Url (或者 Url )

原有的配置文件config.php 拆分为app.php cache.php 等独立配置文件 放入config目录。 原有的路由定义文件route.php 移动到route目录

命名规范

ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:

目录和文件

  • 目录不强制规范,驼峰和小写+下划线模式均支持;
  • 类库、函数文件统一以.php为后缀;
  • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
  • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

函数和类、属性命名

  • 类的命名采用驼峰法,并且首字母大写,例如 UserUserType,默认不需要添加后缀,例如UserController应该直接命名为User
  • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip
  • 方法的命名使用驼峰法,并且首字母小写,例如 getUserName
  • 属性的命名使用驼峰法,并且首字母小写,例如 tableNameinstance
  • 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call__autoload

常量和配置

  • 常量以大写字母和下划线命名,例如 APP_PATHTHINK_PATH
  • 配置参数以小写字母和下划线命名,例如 url_route_onurl_convert

数据表和字段

  • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表字段命名。

参与开发

请参阅 ThinkPHP5 核心框架包

版权信息

ThinkPHP遵循Apache2开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有Copyright © 2006-2018 by ThinkPHP (http://thinkphp.cn)

All rights reserved。

ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。

更多细节参阅 LICENSE.txt

关于dawn-api更改的部分

这里再次对dawn-api进行了改动,下面就更改的一些地方进行说明

  1. 优化并使用了自动加载扩展函数,解放了每次都要手动在extraActionList书写的问题

  2. Wiki文档可以使用注解进行标记了,解放了需要在getRules()中写参数才能显示的问题,当然,只是做优化,您还可以写在里面,在这里我主要使用注解方式.下面是注解的用法,以login为例:

    /**
          * @title 用户登录
          * @method login 
          * @param string $phone 账号 true
          * @param string $password 密码 true md5
          * @route('v1/user/login')
          * @return Object User 用户信息
        */
    • @title 接口名称
    • @method 注解的方法,表现为Wiki方法login的接口参数说明
    • @param 参数列表,以一个空格隔开.形如:[数据类型 形参 参数名称 是否必须 备注说明 取值范围]
    • @route 注解路由,在wiki的表现形式是将路由显示在方法后面
    • @return 返回的数据类型,以一个空格隔开.形如:[数据类型 参数名称 备注说明]
    • 完成后的效果:

    注解显示效果

  3. 配合使用ThinkPHP5.1.X的注解路由更家灵活多变,上面的例子就用到了注解路由,更多有关于注解路由请参考

关于dawn-api说明

  1. 为了方便使用这里讲修改过的dawn-api也提交到项目中了
  2. 原先下载是的是没有适配后的dawn-api所以不支持ThinkPHP5.1.X
  3. 关于其他的配置以及wiki的配置,请参见dawn-api的说明
  4. 修改的不太成熟,如有问题请提出

新增了命令行工具

为了方便使用在这里新增了命令行工具,使用命令行工具可以快速的创建API控制器,下面做简单的介绍

  1. 进入项目目录后,输入php ./think可以查看可以使用的命令行,看到了api,就表示可以使用提供的命令行工具了,显示如图:

命令行

  1. 使用命令php ./think api -s first -c news创建一个命名空间为first 名称为news的控制器,运行命令后出现了Success就创建成功了.如图:

wiki文档

  1. 命令执行成功后你会看到在项目中application\first\controller中多出了一个名为News.php的文件,这个就是为你生成的一些方法.

  2. 在生成控制器的同时还在配置文件api_doc.php生成了相应的文档的相关配置,如图:

wiki文档

  1. 打开wiki这时就可以看见基本的相关api的文档说明,如图:

wiki文档

  1. 这时候点击api地址可以测试是否成功(这里使用的是BaseAuth,浏览器提示登录窗口).如图:

wiki文档

需要注意的是因为开启了注解路由,创建成功之后最好执行路由生成工具,重新生成路由.

api命令号的说明

下面主要介绍一下提供的参数,方便您使用

  1. 首先,你可以使用php ./think api -h查看帮助,您将得到的结果如下:

wiki文档

  • -s or --namespace 生成的控制器的命名空间
  • -c or --controller 生成的控制器的名称
  • -i or --id 生成的文档配置的id,默认是根据原配置一次增加
  • -p or --parent 作为一个文档的子节点的父亲id,默认是0顶级节点
  • 看一些列子
  1. php ./think api -s first -c sub -p 5 #为id为5的创建一个字文档,id自增
  2. php ./think api -s first -c sub1 -i 8 #创建一个id为8的文档节点,父级为顶级
  3. php ./think api -s first -c sub2 -i 9 -p 5 #创建一个id为5的创建一个id为9的子级文档节点

运行成功后:

wiki文档02

wiki文档03

wiki文档04

wiki文档04

在线的例子

在线示例WIKI

Postman接口文档

ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) All rights reserved。 ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 Apache Licence是著名的非盈利开源组织Apache采用的协议。 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 允许代码修改,再作为开源或商业软件发布。需要满足 的条件: 1. 需要给代码的用户一份Apache Licence ; 2. 如果你修改了代码,需要在被修改的文件中说明; 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 带有原来代码中的协议,商标,专利声明和其他原来作者规 定需要包含的说明; 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 件中需要带有本协议内容。你可以在Notice中增加自己的 许可,但不可以表现为对Apache Licence构成更改。 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

基于最新的ThinkPHP5.1.10和dawn-api完成的快速搭建restfulAPI,这里修改了一些移植到ThinkPHP5.1.10版本的bug和去除了官方不建议使用的mcrypt_module_open(),改而使用OpenSSL加密方式 展开 收起
PHP
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/yjnnan/Thinkphp_restful_api.git
git@gitee.com:yjnnan/Thinkphp_restful_api.git
yjnnan
Thinkphp_restful_api
Thinkphp Restful API
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891