PHPackages                             jhq0113/roach-rest-app - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. jhq0113/roach-rest-app

ActiveLibrary[HTTP &amp; Networking](/categories/http)

jhq0113/roach-rest-app
======================

roach-rest-app

v1.0.0(5y ago)14MITPHP

Since Jul 25Pushed 5y ago1 watchersCompare

[ Source](https://github.com/jhq0113/roach-rest-app)[ Packagist](https://packagist.org/packages/jhq0113/roach-rest-app)[ Docs](https://github.com/jhq0113/roach-rest-app)[ RSS](/packages/jhq0113-roach-rest-app/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

roach-rest示例应用
==============

[](#roach-rest示例应用)

使用方式
----

[](#使用方式)

```
composer create-project jhq0113/roach-rest-app yourpath ^1.0
```

目录
==

[](#目录)

- [1. 目录结构介绍](#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D)
- [2. 部署](#%E9%83%A8%E7%BD%B2)
- [3. rest接口示例应用](#rest%E6%8E%A5%E5%8F%A3%E7%A4%BA%E4%BE%8B%E5%BA%94%E7%94%A8)
- [4. 添加模块](#%E6%B7%BB%E5%8A%A0%E6%A8%A1%E5%9D%97)
- [5. 路由](#%E8%B7%AF%E7%94%B1)
    - [5.1 项目默认路由规则如下](#%E9%A1%B9%E7%9B%AE%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%A6%82%E4%B8%8B)
    - [5.2 自定义路由](#%E8%87%AA%E5%AE%9A%E4%B9%89%E8%B7%AF%E7%94%B1)
- [6. Controller](#Controller)
    - [6.1 REQUEST\_METHOD控制](#REQUEST_METHOD%E6%8E%A7%E5%88%B6)
    - [6.2 控制器生命周期](#%E6%8E%A7%E5%88%B6%E5%99%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)
- [7. 应用生命周期](#%E5%BA%94%E7%94%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)
- [8. console应用](#console%E5%BA%94%E7%94%A8)
- [9. 多环境管理](#%E5%A4%9A%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86)
    - [9.1 环境选择](#%E7%8E%AF%E5%A2%83%E9%80%89%E6%8B%A9)
    - [9.2 配置选择](#%E9%85%8D%E7%BD%AE%E9%80%89%E6%8B%A9)
- [10. 使用orm](#%E4%BD%BF%E7%94%A8orm)
- [11. 异常错误处理](#%E5%BC%82%E5%B8%B8%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86)

目录结构介绍
------

[](#目录结构介绍)

```
- common              项目公用目录
  -- config           项目公共配置
  -- extensions       项目公共扩展类
  -- ErrorHandler.php 项目默认公共异常错误处理类

- console             控制台应用目录
  -- base             控制台应用基础类
  -- config           控制台应用配置目录
  -- controllers      控制器应用控制器
  -- roach            控制台应用入口文件，给予执行权限时在linux平台为可执行文件

- rest                rest应用目录
  -- base             rest应用基础类
  -- config           rest应用配置目录
  -- modules          rest应用模块目录
    -- v1             v1模块目录
      -- controllers  v1模块控制器目录
      -- Module.php   模块类文件，当创建模块是此文件是必须的
  -- web              rest应用项目web目录
    -- index.php      rest应用入口文件
- vendor              项目composer依赖目录

```

[回到目录](#%E7%9B%AE%E5%BD%95)

部署
--

[](#部署)

> `nginx`部署`server`示例

```
server {
    listen 80;
    server_name roach.360tryst.com;
    root /yourpath/rest/web;
    index index.php;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
         rewrite ^/(.*)$ /index.php?_url=/$1;
    }

    location ~ \.php {
            fastcgi_index  /index.php;
            fastcgi_pass   127.0.0.1:9000;
            include fastcgi_params;
            fastcgi_split_path_info       ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO       $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* \.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
         expires  1h;
    }

    access_log /logs/roach.log main;
}
```

[回到目录](#%E7%9B%AE%E5%BD%95)

rest接口示例应用
----------

[](#rest接口示例应用)

> rest接口示例代码文件为`rest/modules/v1/controllers/ProductController.php`

> 在项目根目录有个`product-test.php`文件，里面编写了默认rest接口的测试调用，如果您使用的是`phpstorm`IDE的话，可以直接使用

```
### 添加商品
POST http://roach.360tryst.com/v1/product/create
Content-Type: application/x-www-form-urlencoded

name=roach-rest-app

### 商品列表
GET http://roach.360tryst.com/v1/product/index

### 商品详情
GET http://roach.360tryst.com/v1/product/info?id=1

### 修改商品
PUT http://roach.360tryst.com/v1/product/update?id=2
Content-Type: application/json

{"name":"roach-rest-app"}

### 删除商品
DELETE http://roach.360tryst.com/v1/product/delete?id=2

```

[回到目录](#%E7%9B%AE%E5%BD%95)

添加模块
----

[](#添加模块)

> 添加自定义模块分为以下几步

- a.在`modules`目录添加模块目录，如:`v2`
- b.在`v2`目录中添加类文件`Module.php`，内容如下

```
