framework/index.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));