gepard/gepard-php

gepard的PHP客户端:适用于分布式应用的通用通信,JavaScript、Java、Python和PHP的事件、信号量和消息

dev-master 2017-08-09 21:35 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:09:34 UTC


README

适用于分布式应用/微服务/事件、信号量、锁和消息的通用通信和同步层,支持JavaScript、Java、Python和PHP

概述

PHP 模块实现了用于通用分布式应用的 GEPARD 中间件的一个简单客户端。

要使用此 PHP 客户端,您必须已安装 GEPARD 中间件。这可以通过执行以下命令来完成:

	npm install gepard

执行此命令的前提是已安装 node 和 npm。有关更多信息,请参阅 npm上的gepardGitHub上的gessinger-hj/gepard

如果您对Python客户端感兴趣,请参阅 PyPI上的gepard-pythonGitHub上的gepard-python

安装

如果您还没有 composer.json 文件,请创建该文件并添加以下内容

{
    "require": {
        "gepard/gepard-php": ">=1.0"
    },
    "minimum-stability": "dev" 
}

如果此 composer.json 文件已经存在于您的项目目录中,请添加上述内容。完成后,执行以下命令:

composer install

用例

更新数据库中的客户记录

假设有一个包含客户基础数据的数据库,例如名称、ID、启用状态等...

例如,可以通过 laravel/eloquent 访问数据库。以下代码片段展示了如何进行更新操作:

$customer_Id = 1 ;
$customer = App\Customer::find($customer_id);

$customer->name = 'New Customer Name';

$customer->save();

通过发送事件来通知感兴趣的第三方

Client::getInstance()->emit('CUSTOMER_CHANGED', ['CUSTOMER_ID' => $customer_id]);

感兴趣的第三方,例如:

  • 一个发送电子邮件的Java程序。

     Client.getInstance().on ( new String[] { "CUSTOMER_CHANGED" }, (e) -> {
     	Integer customer_id = e.getValue ( "CUSTOMER_ID" ) ;
    
     	*select customer from database with customer_id*
     	*use any mail-api to send mail*
     } ) ;
  • 一个发送电子邮件的JavaScript程序。

     gepard.getClient().on ( 'CUSTOMER_CHANGED', (e) => {
     	let customer_id = e.getValue ( 'CUSTOMER_ID' ) ;
    
     	*select customer from database with customer_id*
     	*use any mail-api to send mail*
     } ) ;
  • 一个发送电子邮件的Python程序。

     def on_CUSTOMER_CHANGED ( event ):
     	customer_id = event.getValue ( 'CUSTOMER_ID' ) ;
    
     	*select customer from database with customer_id*
     	*use any mail-api to send mail*
    
     gepard.Client.getInstance().on ( 'CUSTOMER_CHANGED', on_CUSTOMER_CHANGED ) ;
  • 一个单页Web应用或React-native应用。

     gepard.getWebClient().on ( 'CUSTOMER_CHANGED', (e) => {
     	let customer_id = e.getValue ( 'CUSTOMER_ID' ) ;
    
     	if ( customer-data are displayed in any part of the page ) {
     		*select customer from database with customer_id via a REST call*
     		*update appropriate display*
     	}
     } ) ;