ycrao / tinyme
一个基于 flight 和 medoo 的微型 PHP 框架。
Requires
- php: >=5.5.9
- catfan/medoo: 1.6.*
- doctrine/cache: 1.4.*
- katzgrau/klogger: 1.*
- mikecao/flight: 1.3.*
- vlucas/phpdotenv: 2.0.*
This package is auto-updated.
Last update: 2024-09-16 21:48:38 UTC
README
一个基于 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 (403
、500
等) 数字。
{ "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.html , https://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/medoo , http://medoo.in/doc .
参考
许可
TinyMe 框架是开源软件,许可协议为 MIT 协议。