endlessdreams / easy-smta-toolkit
Requires
- php: >=7.0
- ext-curl: *
- ext-xmlwriter: *
- ext-zlib: *
- curl/curl: ~1.9
- zendframework/zend-config: ~3.2
- zendframework/zend-db: ~2.9
- zendframework/zendxml: ~1.1
- zfcampus/zf-console: ~1.4
This package is auto-updated.
Last update: 2022-02-01 13:13:43 UTC
README
用于种子库的预期用途
Easysmta 是一个 HTTP POST 工具程序,用于注册您机构的标准材料转让协议 (SMTA)。要使其工作,您需要以下内容:
- 在 FAO 的 Planttreaty 网站 上有一个账户。
- 两个数据库表或数据视图,包含 SMTA 和 SMTA 材料数据。
- 在此应用程序的配置文件中进行配置。
- 运行 bin/easysmta post 命令。该命令使用参数限制您打算发布/注册哪些 SMTA。
安装
要使用 composer 安装此库,请在控制台中运行以下命令
composer require endlessdreams/easy-smta-toolkit
或将包手动添加到 composer.json 文件的 require 部分
"endlessdreams/easy-smta-toolkit": "^1.0"
或全局安装
composer global require endlessdreams/easy-smta-toolkit
这将安装 easysmta 到 ~/.composer/vendor/ 目录中,最重要的是,easysmta CLI 工具安装在 ~/.composer/vendor/bin/。
只需将此目录添加到您的 PATH,例如在 ~/.bash_profile (或 ~/.bashrc) 中这样
export PATH=~/.composer/vendor/bin:$PATH
现在 easysmta 就可在您的命令行上使用了。
要使您的工具保持最新,您只需这样做
composer global update
composer global install
要删除包,请编辑 ~/.composer/composer.json,然后运行 composer global update。
配置
配置文件位于 easysmta 应用程序文件夹中:config/local.php。在此文件中,您将看到以下结构
return [
'database' => [
'driver' => getenv('EASYSMTA_DRIVER'),
'database' => getenv('EASYSMTA_DATABASE'),
'username' => getenv('EASYSMTA_USERNAME'),
'password' => getenv('EASYSMTA_PASSWORD'),
'hostname' => getenv('EASYSMTA_HOSTNAME'),
],
'map' => [
'table_order' => 'easysmta',
'table_item' => 'easysmtaitem',
'columns_order' => [
'id' => 'id',
'symbole' => 'symbole',
'date' => 'date',
'type' => 'type',
'language' => 'language',
'shipName' => 'shipname',
'recipient_type' => 'recipient_type',
'recipient_pid' => 'recipient_pid',
'recipient_name' => 'recipient_name',
'recipient_address' => 'recipient_address',
'recipient_country' => 'recipient_country',
'document_location' => 'document_location',
'document_retInfo' => 'document_retinfo'
],
'columns_item' => [
'crop' => 'crop',
'sampleid' => 'sampleid',
'pud' => 'pud',
'ancestry' => 'ancestry'
],
],
'provider' => [
'type' => 'or',
'pid' => getenv('PROVIDER_INSTITUTE_CODE') ?? 'YOUR INSTITUTE CODE',
'name' => getenv('PROVIDER_INSTITUTE_NAME') ?? 'YOUR INSTITUTE NAME',
'address' => getenv('PROVIDER_INSTITUTE_ADDRESS') ?? 'YOUR INSTITUTE ADDRESS',
'country' => getenv('PROVIDER_INSTITUTE_COUNTRY_CODE') ?? 'XXX',
'email' => getenv('PROVIDER_INSTITUTE_EMAIL') ?? 'contact@any.institute'
],
'fao' => [
'username' => getenv('EASYSMTA_FAO_USERNAME'),
'password' => getenv('EASYSMTA_FAO_PASSWORD'),
'testusername' => getenv('EASYSMTA_FAO_TEST_USERNAME'),
'testpassword' => getenv('EASYSMTA_FAO_TEST_PASSWORD'),
],
];
在配置文件中设置数据库和 FAO HTTPS API 凭据,或导出到 ~/.bash_profile (或 ~/.bashrc) 的环境变量中。
用法
以下示例假设您的当前工作目录为 bin 或应用程序已全局安装。
要测试生成到终端的 xml。
easysmta xml-dry-run
要测试生成到 2018-01-01 的所有 SMTA xml。(此处不需要 https 凭据,只需您的数据库即可)
easysmta xml-dry-run --to=2018-01-01
要测试发布到 2018-01-01 的所有 SMTA。
easysmta register --to=2018-01-01 -t
要测试从 2017-01-01 到 2018-01-01 发布所有 SMTA。
easysmta register --from=2017-01-01 --to=2018-01-01 -t
实际发布到 2018-01-01 的所有 SMTA。(无需测试)
easysmta register --to=2018-01-01
鸣谢
ir. R (Roel) Hoekstra 和 dr.ir. TJL (Theo) van Hintum 在荷兰遗传资源中心,让我查看他们的 dos cmd 工具包。
FAO 气候、生物多样性、土地和水部门 IT 的 Marco Marsella 先生,给予大力支持。