mirror of https://gitee.com/topnuomi/framework
125 lines
3.1 KiB
PHP
125 lines
3.1 KiB
PHP
<?php
|
|
use top\base\Application;
|
|
use top\base\Request;
|
|
use top\base\Response;
|
|
use top\base\response\Redirect;
|
|
use top\base\Route;
|
|
use apps\home\controllers\News;
|
|
use top\base\response\Json;
|
|
use Whoops\Handler\PrettyPageHandler;
|
|
use Whoops\Run;
|
|
|
|
require './vendor/autoload.php';
|
|
|
|
// 美化异常输出
|
|
// $whoops = new Run();
|
|
// $whoops->pushHandler(new PrettyPageHandler);
|
|
// $whoops->register();
|
|
|
|
|
|
$app = new Application();
|
|
// 执行应用
|
|
$app->namespace('apps')
|
|
->path('./applications/')
|
|
->name('home')
|
|
->boot();
|
|
|
|
Route::get('/', function () {
|
|
return \response('测试');
|
|
});
|
|
// 测试注册路由
|
|
Route::get('news', [News::class, 'add?id=122']);
|
|
Route::post('news/:id', function () use ($app): Response {
|
|
$parameters = $app->request->getParameters();
|
|
return $app->response->setType(Json::class)->setContent([
|
|
'msg' => $parameters['id'] . '获取成功',
|
|
'code' => 10000,
|
|
'data' => new stdClass(),
|
|
]);
|
|
});
|
|
Route::put('news/:id', [News::class, 'edit']);
|
|
Route::delete('news/:id', [News::class, 'delete']);
|
|
|
|
Route::group('admin', function () {
|
|
Route::get('member/edit/:category/:id', '/news');
|
|
});
|
|
function aaa($data)
|
|
{
|
|
return $data . '-top-nuomi';
|
|
}
|
|
// 中间件
|
|
class TestMiddleware
|
|
{
|
|
public function handler(Request $request, $next)
|
|
{
|
|
// print_r(param(name: 'name', filter: 'aaa'));
|
|
// return \response('https://topnuomi.com', \top\base\response\Text::class);
|
|
// echo 'TestMiddleware' . PHP_EOL;
|
|
// echo 'TestMiddleware' . PHP_EOL;
|
|
// print_r($next);
|
|
return $next();
|
|
}
|
|
}
|
|
|
|
class TestMiddleware1
|
|
{
|
|
public function handler(Request $request, $next)
|
|
{
|
|
// echo 'TestMiddleware1' . PHP_EOL;
|
|
// echo 'TestMiddleware1' . PHP_EOL;
|
|
return $next();
|
|
}
|
|
}
|
|
|
|
// 路由调度,获得打包后的应用
|
|
$closure = $app->route->dispatch();
|
|
|
|
// 测试添加中间件
|
|
$app->middleware->addMiddleware([
|
|
TestMiddleware::class,
|
|
TestMiddleware1::class
|
|
]);
|
|
$response = $app->middleware->handler($closure);
|
|
|
|
// print_r($response);
|
|
|
|
// 响应输出
|
|
echo $app->response->send();
|
|
|
|
// class NewsModel extends Request
|
|
// {
|
|
// }
|
|
// class Request
|
|
// {
|
|
// }
|
|
// class News
|
|
// {
|
|
// public function lists(int $a, Request $request, int $page, News $news, int $t = 12345)
|
|
// {
|
|
// var_dump($a);
|
|
// var_dump($page);
|
|
// var_dump($request);
|
|
// var_dump($news);
|
|
// var_dump($t);
|
|
// }
|
|
// }
|
|
// $container = Container::getInstance();
|
|
// $container->invokeMethod('News', 'lists', [
|
|
// 100, 1, 321
|
|
// ]);
|
|
// $container->bind('test', function ($name = '') {
|
|
// return new A($name);
|
|
// });
|
|
// var_dump($container->make('A', ['王麻子1']));
|
|
// $a = $container->make('A', ['王麻子'], true);
|
|
// var_dump($container->make('A', ['王麻子'], true));
|
|
// var_dump($container->make('A', ['王麻子2']));
|
|
// var_dump($container->invokeMethod('B', 'method', [
|
|
// 'i' => 1,
|
|
// 'a' => new B,
|
|
// 'j' => 2,
|
|
// ]));
|
|
// var_dump($container->make('test'));
|
|
// var_dump($container->make('test'));
|
|
// var_dump($container->make('test', ['王麻子3'], true));
|