moffhub/cli 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

moffhub/cli

最新稳定版本:v0.1.0

Composer 安装命令:

composer create-project moffhub/cli

包简介

Moffhub Payment Standard CLI - scaffold, validate, and certify MPS connectors.

README 文档

README

Command-line companion for the Moffhub Payment Standard. Scaffold a new connector, validate its manifest, and run the certification suite — without bringing any of it into your application code.

The CLI is connector-agnostic: it works with any class that implements Moffhub\MpsSpec\Contracts\ConnectorInterface, regardless of who wrote it.

Installation

Global (recommended for connector authors)

composer global require moffhub/cli

Make sure Composer's global bin directory is on your PATH:

export PATH="$HOME/.composer/vendor/bin:$PATH"      # bash/zsh
# or, on newer setups:
export PATH="$HOME/.config/composer/vendor/bin:$PATH"

Verify:

moffhub --version

Project-local (when you want it pinned per-repo)

composer require --dev moffhub/cli
./vendor/bin/moffhub --version

Commands

moffhub init-connector <name> [namespace]

Scaffolds a new connector package in the current directory.

moffhub init-connector acme-payments "Acme\\Connector\\Acme"
cd acme-payments
composer install

You get a composer.json, a starter connector class extending BaseConnector, and a tests/ directory.

moffhub validate <connector-class>

Loads the class, calls manifest(), and checks that all required fields are populated and well-typed.

moffhub validate "Acme\\Connector\\Acme\\AcmeConnector"

Prints a table of manifest fields and exits non-zero if anything is missing.

moffhub certify <connector-class> [--config=path] [--sandbox]

Runs the full certification suite: spec compliance, lifecycle, capability conformance (charge/refund/webhook/settlement), error handling, and idempotency.

# Sandbox mode — skips real API calls, validates contract only
moffhub certify "Acme\\Connector\\Acme\\AcmeConnector" --sandbox

# Live mode — exercises the real provider with credentials from a JSON file
moffhub certify "Acme\\Connector\\Acme\\AcmeConnector" --config=./credentials.json

credentials.json is whatever your connector expects in initialize():

{
    "api_key": "sk_test_...",
    "environment": "sandbox"
}

Exits 0 on PASS, 1 if any test fails. Wire this into CI on your connector's repo.

Resolving connector classes

The CLI needs to be able to autoload your connector. There are three ways it finds your code:

  1. Run from your project directory. If ./vendor/autoload.php exists in the current working directory, the CLI loads it automatically. This is the common case.

  2. Pass an explicit autoloader with --bootstrap.

    moffhub certify "Acme\\AcmeConnector" --bootstrap=/path/to/project/vendor/autoload.php
  3. Install your connector globally alongside the CLI:

    composer global require vendor/connector-acme
    moffhub certify "Acme\\AcmeConnector"

If the CLI prints Class ... not found, one of the above is missing.

Typical workflow for connector authors

# 1. Scaffold
moffhub init-connector my-gateway "MyVendor\\Connector\\MyGateway"
cd my-gateway && composer install

# 2. Implement createCharge(), queryCharge(), etc.

# 3. Validate the manifest as you go
moffhub validate "MyVendor\\Connector\\MyGateway\\MyGatewayConnector"

# 4. Run the certification suite in sandbox mode (CI-friendly)
moffhub certify "MyVendor\\Connector\\MyGateway\\MyGatewayConnector" --sandbox

# 5. Run against real credentials before tagging a release
moffhub certify "MyVendor\\Connector\\MyGateway\\MyGatewayConnector" --config=secrets.json

Related packages

License

MIT. See LICENSE.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固