ycrao/tinyme

一个基于 flight 和 medoo 的微型 PHP 框架。

安装: 52

依赖: 0

建议: 0

安全: 0

星星: 39

关注者: 6

分支: 5

公开问题: 0

类型:项目

1.3 2019-03-30 12:00 UTC

This package is auto-updated.

Last update: 2024-09-16 21:48:38 UTC


README

Latest Stable Version Latest Unstable Version License Total Downloads

一个基于 flight 和 medoo 的微型 PHP 框架。

简介页面 | 简体中文读我

安装

类似于 Laravel 的安装,将 public 目录设置为服务器根路径在 vhost.conf 中,并使用 composer 安装或更新包等。你可以在你的终端中这样做,如下所示

//using git
git clone https://github.com/ycrao/tinyme.git tinyme
//or using composer, but skip `composer install` command below
composer create-project --prefer-dist ycrao/tinyme tinyme
cd tinyme
cp .env.example .env
vim .env
composer install
cd app
chmod -R 755 storage
php -S 127.0.0.1:9999 -t public

你可以在浏览器中通过输入 http://127.0.0.1:9999 url 来查看这个项目页面。

API 服务

请将 sql\tinyme.sql 导入到你的本地 MySQL 数据库中,然后修改 .env 文件配置。

路由

API 错误码

post api/login

使用电子邮件和密码登录并获取访问令牌。当令牌过期时,请记得调用登录 API,当旧令牌未过期时,不要频繁调用此 API。

请求示例

curl -X POST http://127.0.0.1:9999/api/login --data "email=foo@example.com&password=123456"

响应示例

当成功时使用 200 作为 code

{
    "code": 200,
    "msg": "OK",
    "data": {
        "uid": "1",
        "token": "TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D",
        "expire_at": 1510233022
    }
}

当失败或出错时使用非 2xx (403500 等) 数字。

{
    "code": 403,
    "msg": "illegal or incorrect credentials",
    "data": []
}

get api/pages

获取当前用户的分页页面。

请求示例

curl http://127.0.0.1:9999/api/pages -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

# with page
curl http://127.0.0.1:9999/api/pages?page=2&per_page=2 -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

响应示例

{
    "code": 200,
    "msg": "OK",
    "data": {
        "total": 2,
        "per_page": 2,
        "current_page": 2,
        "next_page_url": "/api/pages/?page=3&per_page=2",
        "prev_page_url": "/api/pages/?page=1&per_page=2",
        "from": "1",
        "to": "1",
        "data": [
            {
                "id": "1",
                "content": "# Hello world\n\nThis is a demo page.",
                "created_at": "2017-11-09 13:54:39",
                "updated_at": "2017-11-09 13:54:39"
            }
        ]
    }
}

post api/page

创建一个新的页面。

请求示例

# POST raw data (in `json` format)
curl -X POST http://127.0.0.1:9999/api/page --data '{"content":"# Hello world\n\nThis is another demo page."}' -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

# POST data (in form string)
curl -X POST http://127.0.0.1:9999/api/page --data "content=# Hello world\n\nThis is another demo page." -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

响应示例

{
    "code":200,
    "msg":"OK",
    "data":{
        "result":"create success!",
        "view_url":"/api/page/4"
    }
}

get api/page/@id

通过指定的 id 获取页面。

请求示例

curl http://127.0.0.1:9999/api/page/4 -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

响应示例

{
    "code":200,
    "msg":"OK",
    "data":{
        "id":"4",
        "uid":"1",
        "content":"# Hello world\n\nThis is another demo page.",
        "created_at":"2017-11-09 20:36:52",
        "updated_at":"2017-11-09 20:36:52"
    }
}

put api/page/@id

通过指定的 id 更新页面。

请求示例

# PUT raw data (in `json` format)
curl -X PUT http://127.0.0.1:9999/api/page/4 --data '{"content":"# Demo\n\nThis is another demo page."}' -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

# hijack PUT method by passing `_method=put` parameter with POST
curl -X POST http://127.0.0.1:9999/api/page/4 --data "_method=put&content=# Demo\n\nThis is another demo page." -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

响应示例

{
    "code":200,
    "msg":"OK",
    "data":{
        "result":"update success!"
    }
}

delete /api/page/@id

通过指定的 id 删除页面。

请求示例

# DELETE
curl -X DELETE http://127.0.0.1:9999/api/page/4 -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

# hijack DELETE method by passing `_method=delete` parameter with POST
curl -X POST http://127.0.0.1:9999/api/page/4 --data "_method=delete" -H "AUTHORIZATION: Bearer TVC66rtXnv7pw3jge4EtyC7qtyKKPxjjGyVUi4K2D"

响应示例

{
    "code":200,
    "msg":"OK",
    "data":{
        "result":"delete success!"
    }
}

文档

内核

基于 mikecao/flight,官方网站: http://flightphp.com/https://github.com/mikecao/flight .

缓存

if (Flight::cache('data')->contains('foo')) {
    $unit = Flight::cache('data')->fetch('foo');
} else {
    $bar = 'bar cache';
    Flight::cache('data')->save('foo', $bar);
}

基于 doctrine/cache,官方网站: http://docs.doctrine-project.org/en/latest/reference/caching.htmlhttps://github.com/doctrine/cache .

日志

$logger = Flight::log()->debug('debug log');

基于 katzgrau/klogger,官方网站: https://github.com/katzgrau/KLogger .

数据库和模型

Flight::model('Page')->getPageByID(1);
Flight::db()->get('tm_page', '*', [
            'id' => 1
            ]);

基于 catfan/medoo,官方网站: https://github.com/catfan/medoohttp://medoo.in/doc .

参考

flight-app-demo

许可

TinyMe 框架是开源软件,许可协议为 MIT 协议