vikio88 / nicu
Requires
- vikkio88/nicu-framework: 0.0.1
This package is auto-updated.
Last update: 2024-09-12 09:47:09 UTC
README
几秒钟内开发微REST API,兼容共享主机。这是一个简单的用于构建 nicu RESTful API 的启动项目。
创建项目
composer create-project vikkio88/nicu NAME_OF_PROJECT
本地运行
要使用 PHP 服务器本地运行此应用程序,只需键入
php start.php
这将使用 router.php
模拟简单的 URL 重写
要更改默认端口,请编辑 config/app.json
{
"app": {
"version": 0.1,
"port": 8088 <--
}
}
或将它作为参数传递给 start.php
脚本
php start.php 8090
通过 Docker 运行
你可以编辑 docker-compose.yml
文件以更改镜像名称。
docker-compose up -d
应用程序将通过你在 docker-compose.yml
文件中指定的端口可访问。
如何使用
添加新路由
只需进入 config/routes.php
并添加遵循以下语法的路由
[ 'route' => '/NAME_OF_THE_ROUTE', 'method' => 'get', 'action' => AppSampleAction::class ]
每个路由指定三个参数
- 路由 路由的语法在此处指定:这里。
- 方法 这是一个 HTTP 动词,可以是任何 HTTP 请求类型(options、post、get)。
- 操作 当匹配到路由时将调用的操作,只要它扩展了
ApiAction
并实现了返回array
的action()
方法,它就可以正常工作。
添加新的/从操作中读取配置
配置库由 hassankhan/config 提供,这里 可以找到支持的配置文件示例。
设置
要添加配置,向指定的文件或数组键中添加文件或简单的数组键
'someStuff' => 'Stuff'
获取
// $config being an instance of Config $config->get('someStuff', 'fallback value');
获取
如果将 Config 注入到构造函数中,您将能够访问 'config/' 文件夹中的所有配置
class MyAction extends ApiAction { public function __construct(Config $config) { $this->config = $config; } protected function action(): array { return [ 'test' => $this->config->get('stuff') ]; } }
设置 Di 容器
这个小框架集成 PhpDi 而不是 Pimple,因为自动注入使一切更容易阅读。
要链接接口和实现,您需要在 config/providers
中指定一个提供者。
提供者主体将类似于 Laravel 提供者,您需要使用 php-di 语法指定接口和实现之间的绑定。
php-di 注入将自动注入在那些提供者中配置的任何内容,并将实现注入到您创建并注入到 Action 构造函数中的任何内容中。
示例
config/providers.php
return [
'providers' => [
SampleProvider::class
]
];
SampleProvider.php
class SampleProvider extends Provider { public function boot() { $this->bind(Interface::class, function(ContainerInterface $c){ return new Implementation($c->get(AnotherInterface::class)); }); } }
中间件
nicu 支持 Slim (PSR) 中间件。要了解更多信息,请阅读 这里。
要添加新的中间件,您需要将其指定为 config/app.php
文件中 app.middlewares
键下的配置
'middlewares' => [ Cors::class => [ "origin" => ["*"], "methods" => ["GET", "POST", "PUT", "PATCH", "DELETE"], ], function(RequestInterface $request, ResponseInterface $response,closure $next){ // do something $next($request,$response); return $response; } ]
如↑所示,配置可以通过两种方式提供,要么作为 Middleware 类,指定数组中的配置值(配置本身也是一个数组),要么作为简单的 \Callable
。
DotEnv
您可以在 .env 文件中将配置指定为环境变量。
SOME_STUFF="I like trains"
这些将在引导阶段加载到 index.php
中。
然后您可以这样将其注入到配置中。
'stuff' => getenv('SOME_STUFF')
有关更多信息,请查看 vlucas/phpdotenv 文档。
构建
此框架允许您创建一个REST API的构建版本,并且它会清理供应商文件夹,以减少上传的文件数量。
要运行构建,只需输入以下命令
composer run build
这将创建一个经过清理/生产就绪的应用程序版本,位于子文件夹./dist/
,准备上传到您的Apache或Nginx服务器。