habil / microservice-remote-models
一个为分布式数据提供熟悉模型范式的Lumen包。
v0.6.2
2018-10-17 13:24 UTC
Requires
- php: >=5.6.4
- grpc/grpc: ^1.2
- guzzlehttp/guzzle: ^6.2
- guzzlehttp/promises: ^1.3
- lushdigital/microservice-model-utils: ^1.0
Requires (Dev)
- apigen/apigen: v5.0.0-RC5
- phpunit/phpunit: ~5.0
README
一个为分布式数据提供熟悉模型范式的Lumen包。
描述
此包提供了一个模型系统,类似于Eloquent,但关键关注点在于分布式数据。每个模型类都与一个具有预期RESTful API的远程微服务绑定。这允许开发者创建服务聚合器,通过模型操纵数据,就像数据在本地数据库中一样简单。
为了使此功能正常工作,该包对远程服务中的请求/响应数据持有一致的看法。这些数据应始终符合以下标准
https://github.com/LUSHDigital/microservice-core/blob/master/spec/swagger.yaml
此包旨在在Kubernetes集群中运行,其中服务发现由DNS名称处理。
关系
该包还通过使用gRPC处理远程模型之间的关系。除了为远程模型提供动力的微服务外,还预期将有一个gRPC应用程序来管理关系。此gRPC应用程序基于以下协议缓冲区。
请参阅配置文档,了解DNS和端口的详细信息。
安装
按正常方式安装包
$ composer require lushdigital/microservice-remote-models
在bootstrap/app.php文件中将服务提供者注册到Lumen
$app->register(LushDigital\MicroServiceRemoteModels\RemoteModelServiceProvider::class);
该包要求在bootstrap/app.php中对Lumen配置进行以下更改
<?php // Uncomment the line below to enable Facade support. $app->withFacades(); // Uncomment the line below to enable Eloquent ORM support. $app->withEloquent(); // Add the line below to load database config. This is required for caching to work. $app->configure('database');