vikio88/nicu

维护者

详细信息

github.com/vikkio88/nicu

源代码

问题

安装: 10

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

开放问题: 0

类型:项目

v0.0.3 2019-05-11 21:52 UTC

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
]

每个路由指定三个参数

  1. 路由 路由的语法在此处指定:这里
  2. 方法 这是一个 HTTP 动词,可以是任何 HTTP 请求类型(options、post、get)。
  3. 操作 当匹配到路由时将调用的操作,只要它扩展了 ApiAction 并实现了返回 arrayaction() 方法,它就可以正常工作。

添加新的/从操作中读取配置

配置库由 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服务器。