alexz707/invoiceninja-module

Laminas模块,提供InvoiceNinja API功能

0.1.6 2023-08-03 10:07 UTC

This package is auto-updated.

Last update: 2024-09-10 20:02:25 UTC


README

Laminas模块,用于使用InvoiceNinja V5 API (https://www.invoiceninja.com).

GitHub release CI Code Coverage Scrutinizer Code Quality Dependency Status Total Downloads Latest Stable Version

描述

最新版本可处理以下API服务

  • 客户
  • 发票
  • 产品
  • 税率

可以使用basicdigest服务器授权。

已知问题

  • Invoice Ninja API V5(大部分)返回的是字符串而不是真实的数据类型,但请求中却需要真实的数据类型。如果你发现任何字段有这样的行为,请提交一个问题!
  • 并非所有端点都已实现 -> 如果你需要其中一个,请发送一个PR或提交一个问题。
  • Humbug已被弃用,应更改为Infection

安装

建议的安装方法是通过composer

php composer.phar require alexz707/invoiceninja-module

配置模块

  • /vendor/alexz707/invoiceninja-module/config/invoiceninja.global.php.dist复制到你的全局autoload文件夹中,移除dist扩展,以便Laminas能够识别它
  • 如果你使用自己的Invoice Ninja实例,请更改host url
  • token替换为你的Invoice Ninja令牌
  • 如果你使用basicdigest授权,取消注释使用的方法并填写你的凭证
    Module::INVOICE_NINJA_CONFIG => [
        Module::API_TIMEOUT     => 100,
        Module::TOKEN           => 'YOURTOKEN',
        Module::HOST_URL        => 'https://ninja.dev/api/v1',

        /*
         * If the api is protected by htaccess uncomment
         * ONE of the following code blocks and use your credentials.
         */
        Module::AUTHORIZATION   => [
            /*
             * BASIC authorization
             * \Zend\Http\Client::AUTH_BASIC => [
             *    Module::AUTH_USER => 'YOURUSER',
             *    Module::AUTH_PASS => 'YOURPASSWORD'
             * ]
             */

            /*
             * DIGEST authorization
             * \Zend\Http\ClientClient::AUTH_DIGEST => [
             *    Module::AUTH_USER => 'YOURUSER',
             *    Module::AUTH_PASS => 'YOURPASSWORD'
             * ]
             */
        ]
    ]

启用模块

config/application.config.php文件中将模块注册为Laminas模块

    'modules' => [
        'Laminas\Router',
        'InvoiceNinjaModule',
        'YourApplicationModule',
    ],

使用服务管理器

        /** @var ClientManager $clientManager */
        $clientManager = $sm->get(ClientManager::class);
        $client = $clientManager->getClientById('1');