这个是我自己用来写api
的,只有一些简单的功能
目前有的方法有 get
, post
, put
, delete
, options
, patch
, controller
, group
Route::get('/test', 'TestController@getIndex');
Route::post('/test', function () {
return 123;
});
//适应正则匹配
Route::put('/test/{id:\d+}', 'TestController@putIndex');
......
Route::controller('/test', 'TestController');
//控制器中的方法 getXXX, postXXX, deleteXXX ... ...
//App\Controllers\TestController\getIndex
Route::group(['namespace' => 'App\Controllers'], function () {
Route::get('test', 'TestController@getIndex');
});
// host/v4/test
Route::group(['prefix' => 'v4'], function () {
Route::post('test', 'App\Controllers\TestController@postIndex');
});
// 中间件
Route::group(['middleware' => 'TestMiddleware'], function () {
Route::controller('/test', 'App\Controllers\TestController');
});
// 可以单个都加
Route::group(['middleware' => 'TestMiddleware', 'namespace' => 'App\Controllers', 'prefix' => 'prefix'], function () {
Route::controller('test', 'TestController');
});
控制器的话, path 参数和Request被注入到控制器方法中
Route::put('/test/{id:\d+}', 'TestController@putIndex');
use Lib\Request;
class TestController
{
public function putIndex(Request $request, $id)
{
return success($request->id === $id);
}
}
app\Middleware
namespace App\MiddleWare;
use Closure;
class TestMiddleWare
{
public function handle($request, Closure $next) {
//前置中间件
$before = $request->get('before');
if ($before) {
$request->hh = 'tt';
}
$response = $next($request);
// 后置操作
$ret = json_decode($response);
$ret->test = 'middleware1';
return json_encode($ret);
}
}
读取配置文件的类
读取的文件是根目录下的config
目录下的文件,返回的是数组
<?php
return [
//redis 配置
'redis' => [
'host' => '192.168.199.206',
'port' => 5302,
'pwd' => null
]
];
通过Lib\Config
类操作
// file.option
Config::get('redis');
['host'=>'127.0.0.1', 'port'=> 5302, ....]
可以通过.
操作符获取层级中配置
Config::get('redis.host');
'127.0.0.1'
Config::set(key, value)
Config::set('redis', ['host'=>'10.10.10.1', 'port'=>'123','pwd'=>'pass']);
#也可以用`.`来标识层级关系
Config::set('redis.pwd', 'pass');
使用了第三方的ORM的包, laravel用的也是这个包
namespace App\Models;
use think\Model;
class Link extends Model
{
protected $table = 'links';
}
Link::find(4);
namespace App\Controllers;
use App\Models\Link;
use Lib\Request;
use think\Db;
class TestController
{
public function getIndex(Request $request, $id = null)
{
$info = LinK::find(26);
return success($info);
}
public function getTest(Request $request) {
$info = Db::table('links')->find(3);
return success($info);
}
}